farm-runner 1.1.0
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/README.md +80 -0
- package/dist/src/bundle.js +1 -0
- package/dist/src/common/middleware/trace.middleware.d.ts.map +1 -0
- package/dist/src/common/middleware/trace.middleware.js +56 -0
- package/dist/src/common/middleware/trace.middleware.js.map +1 -0
- package/dist/src/scripts/prepare-wda-cli.d.ts +14 -0
- package/dist/src/scripts/prepare-wda-cli.d.ts.map +1 -0
- package/dist/src/scripts/prepare-wda-cli.js +71 -0
- package/dist/src/scripts/prepare-wda-cli.js.map +1 -0
- package/dist/src/scripts/prepare-wda.d.ts +22 -0
- package/dist/src/scripts/prepare-wda.d.ts.map +1 -0
- package/dist/src/scripts/prepare-wda.js +539 -0
- package/dist/src/scripts/prepare-wda.js.map +1 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +394 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/services/tracingUtils.d.ts.map +1 -0
- package/dist/src/services/tracingUtils.js +73 -0
- package/dist/src/services/tracingUtils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.middleware.d.ts","sourceRoot":"","sources":["../../../../src/common/middleware/trace.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI1D;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAwDjF,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.traceMiddleware = void 0;
|
|
4
|
+
const api_1 = require("@opentelemetry/api");
|
|
5
|
+
const trace_utils_1 = require("../utils/trace.utils");
|
|
6
|
+
/**
|
|
7
|
+
* Middleware to extract or generate trace ID from request
|
|
8
|
+
* Uses OpenTelemetry context propagation for distributed tracing
|
|
9
|
+
* Also maintains backward compatibility with traceId on request object
|
|
10
|
+
*/
|
|
11
|
+
const traceMiddleware = (req, res, next) => {
|
|
12
|
+
// Extract trace context from headers (W3C Trace Context format)
|
|
13
|
+
const parentContext = api_1.propagation.extract(api_1.context.active(), req.headers);
|
|
14
|
+
// Start a new span for this request
|
|
15
|
+
const tracer = api_1.trace.getTracer('farm-runner');
|
|
16
|
+
const span = tracer.startSpan(`${req.method} ${req.path}`, {
|
|
17
|
+
kind: 1, // SpanKind.SERVER
|
|
18
|
+
attributes: {
|
|
19
|
+
'http.method': req.method,
|
|
20
|
+
'http.url': req.url,
|
|
21
|
+
'http.route': req.route?.path || req.path,
|
|
22
|
+
'http.target': req.path,
|
|
23
|
+
},
|
|
24
|
+
}, parentContext);
|
|
25
|
+
// Set span context as active
|
|
26
|
+
api_1.context.with(api_1.trace.setSpan(parentContext, span), () => {
|
|
27
|
+
// Extract trace ID for backward compatibility
|
|
28
|
+
const traceRequest = req;
|
|
29
|
+
const spanContextData = span.spanContext();
|
|
30
|
+
const traceId = spanContextData.traceId;
|
|
31
|
+
// Set traceId on request for backward compatibility
|
|
32
|
+
traceRequest.traceId = traceId;
|
|
33
|
+
// Set trace ID in response header (W3C Trace Context format)
|
|
34
|
+
const traceParent = `00-${spanContextData.traceId}-${spanContextData.spanId}-0${spanContextData.traceFlags.toString(16).padStart(2, '0')}`;
|
|
35
|
+
res.setHeader('traceparent', traceParent);
|
|
36
|
+
// Also set X-Trace-Id for backward compatibility
|
|
37
|
+
(0, trace_utils_1.setTraceIdHeader)(res, traceId);
|
|
38
|
+
// Handle request completion
|
|
39
|
+
res.on('finish', () => {
|
|
40
|
+
span.setAttributes({
|
|
41
|
+
'http.status_code': res.statusCode,
|
|
42
|
+
'http.status_text': res.statusMessage || '',
|
|
43
|
+
});
|
|
44
|
+
if (res.statusCode >= 400) {
|
|
45
|
+
span.setStatus({
|
|
46
|
+
code: res.statusCode >= 500 ? api_1.SpanStatusCode.ERROR : api_1.SpanStatusCode.ERROR,
|
|
47
|
+
message: `HTTP ${res.statusCode}`,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
span.end();
|
|
51
|
+
});
|
|
52
|
+
next();
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
exports.traceMiddleware = traceMiddleware;
|
|
56
|
+
//# sourceMappingURL=trace.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.middleware.js","sourceRoot":"","sources":["../../../../src/common/middleware/trace.middleware.ts"],"names":[],"mappings":";;;AAAA,4CAAiF;AAGjF,sDAAwD;AASxD;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;IACvF,gEAAgE;IAChE,MAAM,aAAa,GAAG,iBAAW,CAAC,OAAO,CAAC,aAAO,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAEzE,oCAAoC;IACpC,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAC3B,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAC3B;QACE,IAAI,EAAE,CAAC,EAAE,kBAAkB;QAC3B,UAAU,EAAE;YACV,aAAa,EAAE,GAAG,CAAC,MAAM;YACzB,UAAU,EAAE,GAAG,CAAC,GAAG;YACnB,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI;YACzC,aAAa,EAAE,GAAG,CAAC,IAAI;SACxB;KACF,EACD,aAAa,CACd,CAAC;IAEF,6BAA6B;IAC7B,aAAO,CAAC,IAAI,CAAC,WAAK,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;QACpD,8CAA8C;QAC9C,MAAM,YAAY,GAAG,GAAmB,CAAC;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QAExC,oDAAoD;QACpD,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;QAE/B,6DAA6D;QAC7D,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,KAAK,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3I,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAE1C,iDAAiD;QACjD,IAAA,8BAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE/B,4BAA4B;QAC5B,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC;gBACjB,kBAAkB,EAAE,GAAG,CAAC,UAAU;gBAClC,kBAAkB,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE;aAC5C,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC;oBACb,IAAI,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAc,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAc,CAAC,KAAK;oBACzE,OAAO,EAAE,QAAQ,GAAG,CAAC,UAAU,EAAE;iBAClC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxDW,QAAA,eAAe,mBAwD1B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLI entry point for WebDriverAgent preparation
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npm run prepare-wda -- [options]
|
|
7
|
+
*
|
|
8
|
+
* Options:
|
|
9
|
+
* -m, --mobile-provisioning-file <path> Path to mobile provisioning file
|
|
10
|
+
* -p, --wda-project-path <path> Path to WebDriverAgent xcode project
|
|
11
|
+
* --platform <platform> Platform type: ios, tvos, or both (default: ios)
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=prepare-wda-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-wda-cli.d.ts","sourceRoot":"","sources":["../../../src/scripts/prepare-wda-cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* CLI entry point for WebDriverAgent preparation
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npm run prepare-wda -- [options]
|
|
8
|
+
*
|
|
9
|
+
* Options:
|
|
10
|
+
* -m, --mobile-provisioning-file <path> Path to mobile provisioning file
|
|
11
|
+
* -p, --wda-project-path <path> Path to WebDriverAgent xcode project
|
|
12
|
+
* --platform <platform> Platform type: ios, tvos, or both (default: ios)
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const prepare_wda_1 = require("./prepare-wda");
|
|
16
|
+
// Parse CLI arguments
|
|
17
|
+
const args = process.argv.slice(2);
|
|
18
|
+
const options = {};
|
|
19
|
+
for (let i = 0; i < args.length; i++) {
|
|
20
|
+
const arg = args[i];
|
|
21
|
+
if ((arg === '-m' || arg === '--mobile-provisioning-file') && args[i + 1]) {
|
|
22
|
+
options.mobileProvisioningFile = args[i + 1];
|
|
23
|
+
i++;
|
|
24
|
+
}
|
|
25
|
+
else if ((arg === '-p' || arg === '--wda-project-path') && args[i + 1]) {
|
|
26
|
+
options.wdaProjectPath = args[i + 1];
|
|
27
|
+
i++;
|
|
28
|
+
}
|
|
29
|
+
else if (arg === '--platform' && args[i + 1]) {
|
|
30
|
+
const platform = args[i + 1];
|
|
31
|
+
if (platform === 'ios' || platform === 'tvos' || platform === 'both') {
|
|
32
|
+
options.platform = platform;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.error(`❌ Invalid platform: ${platform}. Must be 'ios', 'tvos', or 'both'.`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
i++;
|
|
39
|
+
}
|
|
40
|
+
else if (arg === '-h' || arg === '--help') {
|
|
41
|
+
console.log(`
|
|
42
|
+
WebDriverAgent Preparation Tool
|
|
43
|
+
|
|
44
|
+
Usage:
|
|
45
|
+
npm run prepare-wda -- [options]
|
|
46
|
+
|
|
47
|
+
Options:
|
|
48
|
+
-m, --mobile-provisioning-file <path> Path to mobile provisioning file
|
|
49
|
+
-p, --wda-project-path <path> Path to WebDriverAgent xcode project
|
|
50
|
+
--platform <platform> Platform type: ios, tvos, or both (default: ios)
|
|
51
|
+
-h, --help Show this help message
|
|
52
|
+
|
|
53
|
+
Examples:
|
|
54
|
+
npm run prepare-wda
|
|
55
|
+
npm run prepare-wda -- -m ~/Library/MobileDevice/Provisioning\\ Profiles/my-profile.mobileprovision
|
|
56
|
+
npm run prepare-wda -- -p ~/WebDriverAgent --platform ios
|
|
57
|
+
npm run prepare-wda -- -m ./profile.mobileprovision -p ./WebDriverAgent --platform both
|
|
58
|
+
`);
|
|
59
|
+
process.exit(0);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Run the prepare-wda script
|
|
63
|
+
(0, prepare_wda_1.prepareWda)(options)
|
|
64
|
+
.then(() => {
|
|
65
|
+
process.exit(0);
|
|
66
|
+
})
|
|
67
|
+
.catch(error => {
|
|
68
|
+
console.error(`\n❌ Error: ${error.message}\n`);
|
|
69
|
+
process.exit(1);
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=prepare-wda-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-wda-cli.js","sourceRoot":"","sources":["../../../src/scripts/prepare-wda-cli.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;GAUG;;AAEH,+CAA2C;AAE3C,sBAAsB;AACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAIT,EAAE,CAAC;AAEP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,4BAA4B,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,EAAE,CAAC;IACN,CAAC;SAAM,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,oBAAoB,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC,EAAE,CAAC;IACN,CAAC;SAAM,IAAI,GAAG,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACrE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,uBAAuB,QAAQ,qCAAqC,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;SAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;KAiBX,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,IAAA,wBAAU,EAAC,OAAO,CAAC;KAChB,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,KAAK,CAAC,KAAK,CAAC,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebDriverAgent (WDA) Preparation Script
|
|
3
|
+
*
|
|
4
|
+
* This script builds, signs, and packages WebDriverAgent for iOS devices.
|
|
5
|
+
* It can be run as a CLI command: `node prepare-wda`
|
|
6
|
+
*
|
|
7
|
+
* Options:
|
|
8
|
+
* --mobile-provisioning-file, -m Path to the mobile provisioning file
|
|
9
|
+
* --wda-project-path, -p Path to WebDriverAgent xcode project
|
|
10
|
+
* --platform Platform type: ios, tvos, or both (default: ios)
|
|
11
|
+
*/
|
|
12
|
+
interface PrepareWdaOptions {
|
|
13
|
+
mobileProvisioningFile?: string;
|
|
14
|
+
wdaProjectPath?: string;
|
|
15
|
+
platform?: 'ios' | 'tvos' | 'both';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Main function to prepare WDA
|
|
19
|
+
*/
|
|
20
|
+
export declare function prepareWda(options: PrepareWdaOptions): Promise<void>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=prepare-wda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-wda.d.ts","sourceRoot":"","sources":["../../../src/scripts/prepare-wda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,UAAU,iBAAiB;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC;AAkTD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuU1E"}
|