@datadog/datadog-ci-plugin-synthetics 5.12.1 → 5.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +2392 -0
- package/dist/bundle.js +144545 -0
- package/dist/bundle.js.LEGAL.txt +2412 -0
- package/dist/bundle.js.map +1 -0
- package/dist/commands/deploy-tests.js +2 -125
- package/dist/commands/import-tests.js +2 -118
- package/dist/commands/run-tests.js +2 -319
- package/dist/commands/upload-application.js +2 -138
- package/package.json +19 -19
- package/dist/api.d.ts +0 -52
- package/dist/api.js +0 -333
- package/dist/api.js.map +0 -1
- package/dist/batch.d.ts +0 -9
- package/dist/batch.js +0 -325
- package/dist/batch.js.map +0 -1
- package/dist/build-and-test.d.ts +0 -25
- package/dist/build-and-test.js +0 -196
- package/dist/build-and-test.js.map +0 -1
- package/dist/commands/deploy-tests.d.ts +0 -19
- package/dist/commands/deploy-tests.js.map +0 -1
- package/dist/commands/import-tests.d.ts +0 -19
- package/dist/commands/import-tests.js.map +0 -1
- package/dist/commands/run-tests.d.ts +0 -19
- package/dist/commands/run-tests.js.map +0 -1
- package/dist/commands/upload-application.d.ts +0 -18
- package/dist/commands/upload-application.js.map +0 -1
- package/dist/deploy-tests-lib.d.ts +0 -2
- package/dist/deploy-tests-lib.js +0 -96
- package/dist/deploy-tests-lib.js.map +0 -1
- package/dist/errors.d.ts +0 -19
- package/dist/errors.js +0 -31
- package/dist/errors.js.map +0 -1
- package/dist/import-tests-lib.d.ts +0 -2
- package/dist/import-tests-lib.js +0 -71
- package/dist/import-tests-lib.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -46
- package/dist/index.js.map +0 -1
- package/dist/interfaces.d.ts +0 -759
- package/dist/interfaces.js +0 -27
- package/dist/interfaces.js.map +0 -1
- package/dist/local-test-definition.d.ts +0 -2
- package/dist/local-test-definition.js +0 -16
- package/dist/local-test-definition.js.map +0 -1
- package/dist/mobile.d.ts +0 -28
- package/dist/mobile.js +0 -275
- package/dist/mobile.js.map +0 -1
- package/dist/multilocator.d.ts +0 -2
- package/dist/multilocator.js +0 -88
- package/dist/multilocator.js.map +0 -1
- package/dist/reporters/constants.d.ts +0 -6
- package/dist/reporters/constants.js +0 -14
- package/dist/reporters/constants.js.map +0 -1
- package/dist/reporters/default.d.ts +0 -33
- package/dist/reporters/default.js +0 -461
- package/dist/reporters/default.js.map +0 -1
- package/dist/reporters/junit.d.ts +0 -100
- package/dist/reporters/junit.js +0 -425
- package/dist/reporters/junit.js.map +0 -1
- package/dist/reporters/mobile/app-upload.d.ts +0 -14
- package/dist/reporters/mobile/app-upload.js +0 -54
- package/dist/reporters/mobile/app-upload.js.map +0 -1
- package/dist/run-tests-lib.d.ts +0 -28
- package/dist/run-tests-lib.js +0 -281
- package/dist/run-tests-lib.js.map +0 -1
- package/dist/test.d.ts +0 -29
- package/dist/test.js +0 -200
- package/dist/test.js.map +0 -1
- package/dist/tunnel/crypto.d.ts +0 -6
- package/dist/tunnel/crypto.js +0 -48
- package/dist/tunnel/crypto.js.map +0 -1
- package/dist/tunnel/index.d.ts +0 -1
- package/dist/tunnel/index.js +0 -6
- package/dist/tunnel/index.js.map +0 -1
- package/dist/tunnel/tunnel.d.ts +0 -49
- package/dist/tunnel/tunnel.js +0 -329
- package/dist/tunnel/tunnel.js.map +0 -1
- package/dist/tunnel/websocket.d.ts +0 -39
- package/dist/tunnel/websocket.js +0 -154
- package/dist/tunnel/websocket.js.map +0 -1
- package/dist/utils/internal.d.ts +0 -58
- package/dist/utils/internal.js +0 -317
- package/dist/utils/internal.js.map +0 -1
- package/dist/utils/public.d.ts +0 -81
- package/dist/utils/public.js +0 -524
- package/dist/utils/public.js.map +0 -1
package/dist/interfaces.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExecutionRule = exports.Operator = void 0;
|
|
4
|
-
var Operator;
|
|
5
|
-
(function (Operator) {
|
|
6
|
-
Operator["contains"] = "contains";
|
|
7
|
-
Operator["doesNotContain"] = "doesNotContain";
|
|
8
|
-
Operator["is"] = "is";
|
|
9
|
-
Operator["isNot"] = "isNot";
|
|
10
|
-
Operator["isInLessThan"] = "isInLessThan";
|
|
11
|
-
Operator["isInMoreThan"] = "isInMoreThan";
|
|
12
|
-
Operator["lessThan"] = "lessThan";
|
|
13
|
-
Operator["lessThanOrEqual"] = "lessThanOrEqual";
|
|
14
|
-
Operator["moreThan"] = "moreThan";
|
|
15
|
-
Operator["moreThanOrEqual"] = "moreThanOrEqual";
|
|
16
|
-
Operator["matches"] = "matches";
|
|
17
|
-
Operator["doesNotMatch"] = "doesNotMatch";
|
|
18
|
-
Operator["validatesJSONPath"] = "validatesJSONPath";
|
|
19
|
-
Operator["validatesXPath"] = "validatesXPath";
|
|
20
|
-
})(Operator || (exports.Operator = Operator = {}));
|
|
21
|
-
var ExecutionRule;
|
|
22
|
-
(function (ExecutionRule) {
|
|
23
|
-
ExecutionRule["BLOCKING"] = "blocking";
|
|
24
|
-
ExecutionRule["NON_BLOCKING"] = "non_blocking";
|
|
25
|
-
ExecutionRule["SKIPPED"] = "skipped";
|
|
26
|
-
})(ExecutionRule || (exports.ExecutionRule = ExecutionRule = {}));
|
|
27
|
-
//# sourceMappingURL=interfaces.js.map
|
package/dist/interfaces.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAocA,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,6CAAiC,CAAA;IACjC,qBAAS,CAAA;IACT,2BAAe,CAAA;IACf,yCAA6B,CAAA;IAC7B,yCAA6B,CAAA;IAC7B,iCAAqB,CAAA;IACrB,+CAAmC,CAAA;IACnC,iCAAqB,CAAA;IACrB,+CAAmC,CAAA;IACnC,+BAAmB,CAAA;IACnB,yCAA6B,CAAA;IAC7B,mDAAuC,CAAA;IACvC,6CAAiC,CAAA;AACnC,CAAC,EAfW,QAAQ,wBAAR,QAAQ,QAenB;AAqOD,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findUniqueLocalTestDefinition = void 0;
|
|
4
|
-
const internal_1 = require("./utils/internal");
|
|
5
|
-
const findUniqueLocalTestDefinition = (testConfig, publicId) => {
|
|
6
|
-
const matchingTests = testConfig.tests.flatMap((t) => (0, internal_1.isLocalTriggerConfig)(t) && t.localTestDefinition.public_id === publicId ? [t] : []);
|
|
7
|
-
if (matchingTests.length > 1) {
|
|
8
|
-
throw new Error(`Cannot have multiple local test definitions with same publicId: ${publicId}.`);
|
|
9
|
-
}
|
|
10
|
-
if (matchingTests.length === 0) {
|
|
11
|
-
throw new Error(`No local test definition found with publicId ${publicId}.`);
|
|
12
|
-
}
|
|
13
|
-
return matchingTests[0];
|
|
14
|
-
};
|
|
15
|
-
exports.findUniqueLocalTestDefinition = findUniqueLocalTestDefinition;
|
|
16
|
-
//# sourceMappingURL=local-test-definition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-test-definition.js","sourceRoot":"","sources":["../src/local-test-definition.ts"],"names":[],"mappings":";;;AAEA,+CAAqD;AAE9C,MAAM,6BAA6B,GAAG,CAAC,UAAsB,EAAE,QAAgB,EAAsB,EAAE;IAC5G,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnD,IAAA,+BAAoB,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACnF,CAAA;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,mEAAmE,QAAQ,GAAG,CAAC,CAAA;KAChG;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,GAAG,CAAC,CAAA;KAC7E;IAED,OAAO,aAAa,CAAC,CAAC,CAAC,CAAA;AACzB,CAAC,CAAA;AAdY,QAAA,6BAA6B,iCAczC"}
|
package/dist/mobile.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { APIHelper } from './api';
|
|
2
|
-
import type { MobileAppExtractedMetadata, MobileAppUploadResult, MobileApplicationUploadPart, TestPayload, UploadApplicationCommandConfig, MobileApplicationNewVersionParams, TriggerConfig, AppUploadDetails, MobileTestWithOverride } from './interfaces';
|
|
3
|
-
import { AppUploadReporter } from './reporters/mobile/app-upload';
|
|
4
|
-
export declare const APP_UPLOAD_POLLING_INTERVAL = 1000;
|
|
5
|
-
export declare const MAX_APP_UPLOAD_POLLING_TIMEOUT: number;
|
|
6
|
-
export declare const getSizeAndPartsFromFile: (filePath: string) => Promise<{
|
|
7
|
-
appSize: number;
|
|
8
|
-
parts: MobileApplicationUploadPart[];
|
|
9
|
-
}>;
|
|
10
|
-
export declare const uploadMobileApplication: (api: APIHelper, applicationPathToUpload: string, applicationId: string, newVersionParams?: MobileApplicationNewVersionParams) => Promise<{
|
|
11
|
-
appUploadResponse: MobileAppUploadResult;
|
|
12
|
-
fileName: string;
|
|
13
|
-
}>;
|
|
14
|
-
type AppUploadCacheEntry = {
|
|
15
|
-
fileName: string;
|
|
16
|
-
extractedMetadata?: MobileAppExtractedMetadata;
|
|
17
|
-
};
|
|
18
|
-
export declare class AppUploadCache {
|
|
19
|
-
private cache;
|
|
20
|
-
setAppCacheKeys(triggerConfigs: TriggerConfig[], testsAndConfigsOverride: MobileTestWithOverride[]): void;
|
|
21
|
-
getAppsToUpload(): AppUploadDetails[];
|
|
22
|
-
getUploadedAppFileName(appPath: string, appId: string): AppUploadCacheEntry | undefined;
|
|
23
|
-
setUploadedAppFileName(appPath: string, appId: string, fileName: string, extractedMetadata?: MobileAppExtractedMetadata): void;
|
|
24
|
-
}
|
|
25
|
-
export declare const overrideMobileConfig: (overriddenTest: TestPayload, appId: string, tempFileName?: string, mobileApplicationVersion?: string, extractedMetadata?: MobileAppExtractedMetadata) => void;
|
|
26
|
-
export declare const uploadMobileApplicationVersion: (config: UploadApplicationCommandConfig, appUploadReporter: AppUploadReporter) => Promise<MobileAppUploadResult>;
|
|
27
|
-
export declare const uploadMobileApplicationsAndUpdateOverrideConfigs: (api: APIHelper, triggerConfigs: TriggerConfig[], testsAndConfigsOverride: MobileTestWithOverride[]) => Promise<void>;
|
|
28
|
-
export {};
|
package/dist/mobile.js
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
35
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
36
|
-
var m = o[Symbol.asyncIterator], i;
|
|
37
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
38
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
39
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
40
|
-
};
|
|
41
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
-
};
|
|
44
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.uploadMobileApplicationsAndUpdateOverrideConfigs = exports.uploadMobileApplicationVersion = exports.overrideMobileConfig = exports.AppUploadCache = exports.uploadMobileApplication = exports.getSizeAndPartsFromFile = exports.MAX_APP_UPLOAD_POLLING_TIMEOUT = exports.APP_UPLOAD_POLLING_INTERVAL = void 0;
|
|
46
|
-
const crypto = __importStar(require("crypto"));
|
|
47
|
-
const fs_1 = __importDefault(require("fs"));
|
|
48
|
-
const api_1 = require("./api");
|
|
49
|
-
const errors_1 = require("./errors");
|
|
50
|
-
const app_upload_1 = require("./reporters/mobile/app-upload");
|
|
51
|
-
const internal_1 = require("./utils/internal");
|
|
52
|
-
const UPLOAD_FILE_MAX_PART_SIZE = 10 * 1024 * 1024; // MiB
|
|
53
|
-
exports.APP_UPLOAD_POLLING_INTERVAL = 1000; // 1 second
|
|
54
|
-
exports.MAX_APP_UPLOAD_POLLING_TIMEOUT = 5 * 60 * 1000; // 5 minutes
|
|
55
|
-
const getSizeAndPartsFromFile = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
-
var _a, e_1, _b, _c;
|
|
57
|
-
const readStreamOptions = {
|
|
58
|
-
// Limit the chunk size for the stream
|
|
59
|
-
// https://nodejs.org/api/stream.html#buffering
|
|
60
|
-
highWaterMark: UPLOAD_FILE_MAX_PART_SIZE,
|
|
61
|
-
};
|
|
62
|
-
const fileStream = fs_1.default.createReadStream(filePath, readStreamOptions);
|
|
63
|
-
const parts = [];
|
|
64
|
-
try {
|
|
65
|
-
for (var _d = true, fileStream_1 = __asyncValues(fileStream), fileStream_1_1; fileStream_1_1 = yield fileStream_1.next(), _a = fileStream_1_1.done, !_a; _d = true) {
|
|
66
|
-
_c = fileStream_1_1.value;
|
|
67
|
-
_d = false;
|
|
68
|
-
const chunk = _c;
|
|
69
|
-
if (!(chunk instanceof Buffer)) {
|
|
70
|
-
// this should never happen, but for-await-of creates an any that we don't want
|
|
71
|
-
throw new Error('Unexpected chunk type from file stream');
|
|
72
|
-
}
|
|
73
|
-
parts.push({
|
|
74
|
-
md5: crypto.createHash('md5').update(chunk).digest('base64'),
|
|
75
|
-
partNumber: parts.length + 1,
|
|
76
|
-
blob: chunk,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
81
|
-
finally {
|
|
82
|
-
try {
|
|
83
|
-
if (!_d && !_a && (_b = fileStream_1.return)) yield _b.call(fileStream_1);
|
|
84
|
-
}
|
|
85
|
-
finally { if (e_1) throw e_1.error; }
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
appSize: fileStream.bytesRead,
|
|
89
|
-
parts,
|
|
90
|
-
};
|
|
91
|
-
});
|
|
92
|
-
exports.getSizeAndPartsFromFile = getSizeAndPartsFromFile;
|
|
93
|
-
const uploadMobileApplication = (api, applicationPathToUpload, applicationId, newVersionParams) => __awaiter(void 0, void 0, void 0, function* () {
|
|
94
|
-
var _e, _f, _g, _h, _j, _k;
|
|
95
|
-
const { appSize, parts } = yield (0, exports.getSizeAndPartsFromFile)(applicationPathToUpload);
|
|
96
|
-
let multipartPresignedUrlsResponse;
|
|
97
|
-
try {
|
|
98
|
-
multipartPresignedUrlsResponse = yield api.getMobileApplicationPresignedURLs(applicationId, appSize, parts);
|
|
99
|
-
}
|
|
100
|
-
catch (e) {
|
|
101
|
-
throw new api_1.EndpointError(`Failed to get presigned URL: ${(0, api_1.formatBackendErrors)(e)}\n`, (_e = e.response) === null || _e === void 0 ? void 0 : _e.status);
|
|
102
|
-
}
|
|
103
|
-
let uploadPartResponses;
|
|
104
|
-
try {
|
|
105
|
-
uploadPartResponses = yield api.uploadMobileApplicationPart(parts, multipartPresignedUrlsResponse.multipart_presigned_urls_params);
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
throw new api_1.EndpointError(`Failed to upload mobile application: ${(0, api_1.formatBackendErrors)(e)}\n`, (_f = e.response) === null || _f === void 0 ? void 0 : _f.status);
|
|
109
|
-
}
|
|
110
|
-
const { upload_id: uploadId, key } = multipartPresignedUrlsResponse.multipart_presigned_urls_params;
|
|
111
|
-
let jobId;
|
|
112
|
-
try {
|
|
113
|
-
jobId = yield api.completeMultipartMobileApplicationUpload(applicationId, uploadId, key, uploadPartResponses, newVersionParams);
|
|
114
|
-
}
|
|
115
|
-
catch (e) {
|
|
116
|
-
throw new api_1.EndpointError(`Failed to complete upload mobile application: ${(0, api_1.formatBackendErrors)(e)}\n`, (_g = e.response) === null || _g === void 0 ? void 0 : _g.status);
|
|
117
|
-
}
|
|
118
|
-
let appUploadResponse;
|
|
119
|
-
const maxPollingDate = Date.now() + exports.MAX_APP_UPLOAD_POLLING_TIMEOUT;
|
|
120
|
-
while (true) {
|
|
121
|
-
if (Date.now() >= maxPollingDate) {
|
|
122
|
-
throw new errors_1.CriticalError('MOBILE_APP_UPLOAD_TIMEOUT', 'Timeout while polling for mobile application upload');
|
|
123
|
-
}
|
|
124
|
-
try {
|
|
125
|
-
appUploadResponse = yield api.pollMobileApplicationUploadResponse(jobId);
|
|
126
|
-
}
|
|
127
|
-
catch (e) {
|
|
128
|
-
throw new api_1.EndpointError(`Failed to validate mobile application: ${(0, api_1.formatBackendErrors)(e)}\n`, (_h = e.response) === null || _h === void 0 ? void 0 : _h.status);
|
|
129
|
-
}
|
|
130
|
-
if (appUploadResponse.status !== 'pending') {
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
yield (0, internal_1.wait)(exports.APP_UPLOAD_POLLING_INTERVAL);
|
|
134
|
-
}
|
|
135
|
-
if (appUploadResponse.status === 'complete' && !appUploadResponse.is_valid) {
|
|
136
|
-
throw new errors_1.CriticalError('INVALID_MOBILE_APP', `Mobile application failed validation for reason: ${(_j = appUploadResponse.invalid_app_result) === null || _j === void 0 ? void 0 : _j.invalid_message}`);
|
|
137
|
-
}
|
|
138
|
-
if (appUploadResponse.status === 'user_error') {
|
|
139
|
-
throw new errors_1.CriticalError('INVALID_MOBILE_APP_UPLOAD_PARAMETERS', `Mobile application failed validation for reason: ${(_k = appUploadResponse.user_error_result) === null || _k === void 0 ? void 0 : _k.user_error_message}`);
|
|
140
|
-
}
|
|
141
|
-
if (appUploadResponse.status === 'error') {
|
|
142
|
-
throw new errors_1.CriticalError('UNKNOWN_MOBILE_APP_UPLOAD_FAILURE', `Unknown mobile application upload error.`);
|
|
143
|
-
}
|
|
144
|
-
return { appUploadResponse, fileName: multipartPresignedUrlsResponse.file_name };
|
|
145
|
-
});
|
|
146
|
-
exports.uploadMobileApplication = uploadMobileApplication;
|
|
147
|
-
class AppUploadCache {
|
|
148
|
-
constructor() {
|
|
149
|
-
this.cache = {};
|
|
150
|
-
}
|
|
151
|
-
setAppCacheKeys(triggerConfigs, testsAndConfigsOverride) {
|
|
152
|
-
var _a;
|
|
153
|
-
for (const [index, item] of testsAndConfigsOverride.entries()) {
|
|
154
|
-
if ('test' in item && item.test.type === 'mobile' && !('errorMessage' in item)) {
|
|
155
|
-
const appId = item.test.options.mobileApplication.applicationId;
|
|
156
|
-
const userConfigOverride = (_a = triggerConfigs[index].testOverrides) !== null && _a !== void 0 ? _a : {};
|
|
157
|
-
const appPath = userConfigOverride.mobileApplicationVersionFilePath;
|
|
158
|
-
if (appPath && (!this.cache[appPath] || !this.cache[appPath][appId])) {
|
|
159
|
-
this.cache[appPath] = Object.assign(Object.assign({}, (this.cache[appPath] || {})), { [appId]: undefined });
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
getAppsToUpload() {
|
|
165
|
-
const appsToUpload = [];
|
|
166
|
-
for (const appPath of Object.keys(this.cache)) {
|
|
167
|
-
for (const appId of Object.keys(this.cache[appPath])) {
|
|
168
|
-
appsToUpload.push({ appId, appPath });
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return appsToUpload;
|
|
172
|
-
}
|
|
173
|
-
getUploadedAppFileName(appPath, appId) {
|
|
174
|
-
return this.cache[appPath][appId];
|
|
175
|
-
}
|
|
176
|
-
setUploadedAppFileName(appPath, appId, fileName, extractedMetadata) {
|
|
177
|
-
this.cache[appPath][appId] = { fileName, extractedMetadata };
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
exports.AppUploadCache = AppUploadCache;
|
|
181
|
-
const overrideMobileConfig = (overriddenTest, appId, tempFileName, mobileApplicationVersion, extractedMetadata) => {
|
|
182
|
-
if (tempFileName) {
|
|
183
|
-
overriddenTest.mobileApplication = {
|
|
184
|
-
applicationId: appId,
|
|
185
|
-
referenceId: tempFileName,
|
|
186
|
-
referenceType: 'temporary',
|
|
187
|
-
};
|
|
188
|
-
overriddenTest.appExtractedMetadata = extractedMetadata;
|
|
189
|
-
}
|
|
190
|
-
else if (mobileApplicationVersion) {
|
|
191
|
-
overriddenTest.mobileApplication = {
|
|
192
|
-
applicationId: appId,
|
|
193
|
-
referenceId: mobileApplicationVersion,
|
|
194
|
-
referenceType: 'version',
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
exports.overrideMobileConfig = overrideMobileConfig;
|
|
199
|
-
const uploadMobileApplicationVersion = (config, appUploadReporter) => __awaiter(void 0, void 0, void 0, function* () {
|
|
200
|
-
var _l;
|
|
201
|
-
const api = (0, api_1.getApiHelper)(config);
|
|
202
|
-
if (!config.mobileApplicationVersionFilePath) {
|
|
203
|
-
throw new errors_1.CiError('MISSING_MOBILE_APPLICATION_PATH', 'Mobile application path is required.');
|
|
204
|
-
}
|
|
205
|
-
if (!config.mobileApplicationId) {
|
|
206
|
-
throw new errors_1.CiError('MISSING_MOBILE_APPLICATION_ID', 'Mobile application id is required.');
|
|
207
|
-
}
|
|
208
|
-
if (!config.versionName) {
|
|
209
|
-
throw new errors_1.CiError('MISSING_MOBILE_VERSION_NAME', 'Version name is required.');
|
|
210
|
-
}
|
|
211
|
-
config.latest = (_l = config.latest) !== null && _l !== void 0 ? _l : false;
|
|
212
|
-
const newVersionParams = {
|
|
213
|
-
originalFileName: config.mobileApplicationVersionFilePath,
|
|
214
|
-
versionName: config.versionName,
|
|
215
|
-
isLatest: config.latest,
|
|
216
|
-
};
|
|
217
|
-
const appRenderingInfo = {
|
|
218
|
-
appId: config.mobileApplicationId,
|
|
219
|
-
appPath: config.mobileApplicationVersionFilePath,
|
|
220
|
-
versionName: config.versionName,
|
|
221
|
-
};
|
|
222
|
-
appUploadReporter.start([appRenderingInfo]);
|
|
223
|
-
appUploadReporter.renderProgress(1);
|
|
224
|
-
let appUploadResponse;
|
|
225
|
-
try {
|
|
226
|
-
;
|
|
227
|
-
({ appUploadResponse } = yield (0, exports.uploadMobileApplication)(api, config.mobileApplicationVersionFilePath, config.mobileApplicationId, newVersionParams));
|
|
228
|
-
appUploadReporter.reportSuccess();
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
appUploadReporter.reportFailure(appRenderingInfo);
|
|
232
|
-
throw error;
|
|
233
|
-
}
|
|
234
|
-
return appUploadResponse;
|
|
235
|
-
});
|
|
236
|
-
exports.uploadMobileApplicationVersion = uploadMobileApplicationVersion;
|
|
237
|
-
const uploadMobileApplicationsAndUpdateOverrideConfigs = (api, triggerConfigs, testsAndConfigsOverride) => __awaiter(void 0, void 0, void 0, function* () {
|
|
238
|
-
var _m, _o;
|
|
239
|
-
if (!testsAndConfigsOverride.length) {
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
if (!triggerConfigs.filter((config) => { var _a; return (_a = config.testOverrides) === null || _a === void 0 ? void 0 : _a.mobileApplicationVersionFilePath; }).length) {
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
const appUploadCache = new AppUploadCache();
|
|
246
|
-
const appUploadReporter = new app_upload_1.AppUploadReporter(process);
|
|
247
|
-
appUploadCache.setAppCacheKeys(triggerConfigs, testsAndConfigsOverride);
|
|
248
|
-
const appsToUpload = appUploadCache.getAppsToUpload();
|
|
249
|
-
appUploadReporter.start(appsToUpload, true);
|
|
250
|
-
for (const [index, item] of appsToUpload.entries()) {
|
|
251
|
-
appUploadReporter.renderProgress(appsToUpload.length - index);
|
|
252
|
-
try {
|
|
253
|
-
const { appUploadResponse, fileName } = yield (0, exports.uploadMobileApplication)(api, item.appPath, item.appId);
|
|
254
|
-
appUploadCache.setUploadedAppFileName(item.appPath, item.appId, fileName, (_m = appUploadResponse.valid_app_result) === null || _m === void 0 ? void 0 : _m.extracted_metadata);
|
|
255
|
-
}
|
|
256
|
-
catch (error) {
|
|
257
|
-
appUploadReporter.reportFailure(item);
|
|
258
|
-
throw error;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
appUploadReporter.reportSuccess();
|
|
262
|
-
for (const [index, item] of testsAndConfigsOverride.entries()) {
|
|
263
|
-
if ('test' in item) {
|
|
264
|
-
const appId = item.test.options.mobileApplication.applicationId;
|
|
265
|
-
const userConfigOverride = (_o = triggerConfigs[index].testOverrides) !== null && _o !== void 0 ? _o : {};
|
|
266
|
-
const appPath = userConfigOverride.mobileApplicationVersionFilePath;
|
|
267
|
-
const cacheEntry = appPath ? appUploadCache.getUploadedAppFileName(appPath, appId) : undefined;
|
|
268
|
-
const fileName = cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.fileName;
|
|
269
|
-
const extractedMetadata = cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.extractedMetadata;
|
|
270
|
-
(0, exports.overrideMobileConfig)(item.overriddenConfig, appId, fileName, userConfigOverride.mobileApplicationVersion, extractedMetadata);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
});
|
|
274
|
-
exports.uploadMobileApplicationsAndUpdateOverrideConfigs = uploadMobileApplicationsAndUpdateOverrideConfigs;
|
|
275
|
-
//# sourceMappingURL=mobile.js.map
|
package/dist/mobile.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mobile.js","sourceRoot":"","sources":["../src/mobile.ts"],"names":[],"mappings":"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"}
|
package/dist/multilocator.d.ts
DELETED
package/dist/multilocator.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.updateLTDMultiLocators = void 0;
|
|
13
|
-
const promises_1 = require("fs/promises");
|
|
14
|
-
const ci_1 = require("@datadog/datadog-ci-base/helpers/ci");
|
|
15
|
-
const prompt_1 = require("@datadog/datadog-ci-base/helpers/prompt");
|
|
16
|
-
const local_test_definition_1 = require("./local-test-definition");
|
|
17
|
-
const constants_1 = require("./reporters/constants");
|
|
18
|
-
const test_1 = require("./test");
|
|
19
|
-
const internal_1 = require("./utils/internal");
|
|
20
|
-
const updateLTDMultiLocators = (reporter, config, results) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
reporter.log('Checking for MultiLocator updates...\r'); // replaced by next log
|
|
22
|
-
const multiLocatorMap = getMultiLocatorsFromResults(results);
|
|
23
|
-
const hasMLUpdates = Object.values(multiLocatorMap).some((steps) => steps.some((ml) => ml !== undefined));
|
|
24
|
-
if (!hasMLUpdates) {
|
|
25
|
-
return reporter.log('No MultiLocator updates found. No changes will be made.\n');
|
|
26
|
-
}
|
|
27
|
-
if (!(0, ci_1.isInteractive)()) {
|
|
28
|
-
return reporter.log('MultiLocator updates found, but cannot apply them in non-interactive mode.\n');
|
|
29
|
-
}
|
|
30
|
-
const userConfirmed = yield (0, prompt_1.requestConfirmation)('MultiLocator updates found. Do you want to apply them to your local test definition?', false);
|
|
31
|
-
if (!userConfirmed) {
|
|
32
|
-
return reporter.log('\nMultiLocator updates aborted by user.\n');
|
|
33
|
-
}
|
|
34
|
-
reporter.log('\nApplying MultiLocator updates...\n\n');
|
|
35
|
-
const testConfigFromFile = {
|
|
36
|
-
tests: yield (0, test_1.getTestConfigs)(config, reporter),
|
|
37
|
-
};
|
|
38
|
-
const testConfig = overwriteMultiLocatorsInTestConfig(multiLocatorMap, testConfigFromFile);
|
|
39
|
-
try {
|
|
40
|
-
yield (0, promises_1.writeFile)(config.files[0], JSON.stringify(testConfig, undefined, 2), 'utf8');
|
|
41
|
-
reporter.log(`${constants_1.ICONS.SUCCESS} MultiLocator updates have been successfully applied in ${config.files[0]}\n`);
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
reporter.error(`${constants_1.ICONS.FAILED} Error writing to file: ${error}\n`);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
exports.updateLTDMultiLocators = updateLTDMultiLocators;
|
|
48
|
-
const getMultiLocatorsFromResults = (results) => {
|
|
49
|
-
var _a;
|
|
50
|
-
const multiLocatorMap = {};
|
|
51
|
-
for (const result of results) {
|
|
52
|
-
const publicId = result.test.public_id;
|
|
53
|
-
if (publicId === undefined) {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
const stepMLUpdates = [];
|
|
57
|
-
if ((0, internal_1.hasDefinedResult)(result) && result.result && (0, internal_1.isBrowserServerResult)(result.result)) {
|
|
58
|
-
const steps = result.result.steps.slice(1); // Skip first step (navigation)
|
|
59
|
-
for (const step of steps) {
|
|
60
|
-
const multiLocator = (_a = step.element_updates) === null || _a === void 0 ? void 0 : _a.multi_locator;
|
|
61
|
-
stepMLUpdates.push(multiLocator);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (stepMLUpdates.some((ml) => ml !== undefined)) {
|
|
65
|
-
multiLocatorMap[publicId] = stepMLUpdates;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return multiLocatorMap;
|
|
69
|
-
};
|
|
70
|
-
const overwriteMultiLocatorsInTestConfig = (multiLocatorMap, testConfigFromFile) => {
|
|
71
|
-
for (const publicId of Object.keys(multiLocatorMap)) {
|
|
72
|
-
const test = (0, local_test_definition_1.findUniqueLocalTestDefinition)(testConfigFromFile, publicId);
|
|
73
|
-
if (test && test.localTestDefinition.steps) {
|
|
74
|
-
const steps = test.localTestDefinition.steps;
|
|
75
|
-
for (const [stepIndex, step] of steps.entries()) {
|
|
76
|
-
const multiLocator = multiLocatorMap[publicId][stepIndex];
|
|
77
|
-
if (multiLocator) {
|
|
78
|
-
if (!step.params.element) {
|
|
79
|
-
step.params.element = {};
|
|
80
|
-
}
|
|
81
|
-
step.params.element.multiLocator = multiLocator;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return testConfigFromFile;
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=multilocator.js.map
|
package/dist/multilocator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multilocator.js","sourceRoot":"","sources":["../src/multilocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
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.ICONS = void 0;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
exports.ICONS = {
|
|
9
|
-
FAILED: chalk_1.default.bold.red('✖'),
|
|
10
|
-
FAILED_NON_BLOCKING: chalk_1.default.bold.yellow('✖'),
|
|
11
|
-
SKIPPED: chalk_1.default.bold.yellow('⇢'),
|
|
12
|
-
SUCCESS: chalk_1.default.bold.green('✓'),
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/reporters/constants.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAEZ,QAAA,KAAK,GAAG;IACnB,MAAM,EAAE,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3B,mBAAmB,EAAE,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC3C,OAAO,EAAE,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC/B,OAAO,EAAE,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;CAC/B,CAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { MainReporter, Result, SyntheticsOrgSettings, Summary, Test, UserConfigOverride, ResultInBatch, TestRequest, ReporterContext, RunTestsCommandConfig, TestPlan } from '../interfaces';
|
|
2
|
-
import type { TunnelReporter } from '../tunnel/tunnel';
|
|
3
|
-
import type { InitialSummary } from '../utils/public';
|
|
4
|
-
import { ExecutionRule } from '../interfaces';
|
|
5
|
-
export declare const renderApiRequestDescription: (subType: string | undefined, { request, steps, }: {
|
|
6
|
-
request?: Partial<Omit<TestRequest, "headers" | "timeout">> | undefined;
|
|
7
|
-
steps?: Test['config']['steps'];
|
|
8
|
-
}) => string;
|
|
9
|
-
export declare const getResultUrlSuffix: (execution: Result) => "" | " (previous attempt)" | " (not yet received)";
|
|
10
|
-
export declare class DefaultReporter implements MainReporter {
|
|
11
|
-
private context;
|
|
12
|
-
private testWaitSpinner?;
|
|
13
|
-
private write;
|
|
14
|
-
private totalDuration?;
|
|
15
|
-
constructor({ context }: {
|
|
16
|
-
context: ReporterContext;
|
|
17
|
-
});
|
|
18
|
-
error(error: string): void;
|
|
19
|
-
initErrors(errors: string[]): void;
|
|
20
|
-
log(log: string): void;
|
|
21
|
-
reportStart(timings: {
|
|
22
|
-
startTime: number;
|
|
23
|
-
}): void;
|
|
24
|
-
resultEnd(result: Result, baseUrl: string, batchId: string): void;
|
|
25
|
-
resultReceived(result: ResultInBatch): void;
|
|
26
|
-
dryRunEnd(summary: InitialSummary, testPlan: TestPlan, config: RunTestsCommandConfig, orgSettings?: SyntheticsOrgSettings): void;
|
|
27
|
-
runEnd(summary: Summary, baseUrl: string, orgSettings?: SyntheticsOrgSettings): void;
|
|
28
|
-
testsWait(tests: Test[], baseUrl: string, batchId: string, skippedCount?: number): void;
|
|
29
|
-
testTrigger(test: Pick<Test, 'name'>, testId: string, executionRule: ExecutionRule, testOverrides: UserConfigOverride): void;
|
|
30
|
-
testWait(test: Test): void;
|
|
31
|
-
private removeSpinner;
|
|
32
|
-
}
|
|
33
|
-
export declare const getTunnelReporter: (reporter: MainReporter) => TunnelReporter;
|