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.
@@ -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"}