@redocly/cli 2.12.2 → 2.12.3
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/lib/utils/constants.d.ts +1 -0
- package/lib/utils/constants.d.ts.map +1 -1
- package/lib/utils/constants.js +1 -0
- package/lib/utils/constants.js.map +1 -1
- package/lib/utils/otel.d.ts +4 -6
- package/lib/utils/otel.d.ts.map +1 -1
- package/lib/utils/otel.js +36 -14
- package/lib/utils/otel.js.map +1 -1
- package/lib/utils/telemetry.d.ts +4 -22
- package/lib/utils/telemetry.d.ts.map +1 -1
- package/lib/utils/telemetry.js +74 -17
- package/lib/utils/telemetry.js.map +1 -1
- package/lib/wrapper.d.ts.map +1 -1
- package/lib/wrapper.js +7 -0
- package/lib/wrapper.js.map +1 -1
- package/package.json +5 -3
package/lib/utils/constants.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const OTEL_URL = "https://otel.cloud.redocly.com";
|
|
2
2
|
export declare const OTEL_TRACES_URL: string;
|
|
3
3
|
export declare const DEFAULT_FETCH_TIMEOUT = 3000;
|
|
4
|
+
export declare const ANONYMOUS_ID_CACHE_FILE = "redocly-cli-anonymous-id";
|
|
4
5
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,mCAAmC,CAAC;AACzD,eAAO,MAAM,eAAe,QAAyD,CAAC;AACtF,eAAO,MAAM,qBAAqB,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,mCAAmC,CAAC;AACzD,eAAO,MAAM,eAAe,QAAyD,CAAC;AACtF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,uBAAuB,6BAA6B,CAAC"}
|
package/lib/utils/constants.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export const OTEL_URL = 'https://otel.cloud.redocly.com';
|
|
2
2
|
export const OTEL_TRACES_URL = process.env.OTEL_TRACES_URL || `${OTEL_URL}/v1/traces`;
|
|
3
3
|
export const DEFAULT_FETCH_TIMEOUT = 3000;
|
|
4
|
+
export const ANONYMOUS_ID_CACHE_FILE = 'redocly-cli-anonymous-id';
|
|
4
5
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,QAAQ,YAAY,CAAC;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,QAAQ,YAAY,CAAC;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC"}
|
package/lib/utils/otel.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
type Events = {
|
|
3
|
-
[key: string]: Analytics;
|
|
4
|
-
};
|
|
1
|
+
import type { CloudEvents } from '@redocly/cli-otel';
|
|
5
2
|
export declare class OtelServerTelemetry {
|
|
6
|
-
|
|
3
|
+
private nodeTracerProvider;
|
|
4
|
+
constructor();
|
|
5
|
+
send(cloudEvent: CloudEvents.Messages): void;
|
|
7
6
|
}
|
|
8
7
|
export declare const otelTelemetry: OtelServerTelemetry;
|
|
9
|
-
export {};
|
|
10
8
|
//# sourceMappingURL=otel.d.ts.map
|
package/lib/utils/otel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/utils/otel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/utils/otel.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAAqB;;IAqB/C,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI;CA0C7C;AAED,eAAO,MAAM,aAAa,qBAA4B,CAAC"}
|
package/lib/utils/otel.js
CHANGED
|
@@ -4,12 +4,14 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
|
4
4
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
5
5
|
import { version } from './package.js';
|
|
6
6
|
import { OTEL_TRACES_URL, DEFAULT_FETCH_TIMEOUT } from './constants.js';
|
|
7
|
+
import { ulid } from 'ulid';
|
|
7
8
|
export class OtelServerTelemetry {
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
constructor() {
|
|
10
|
+
this.nodeTracerProvider = new NodeTracerProvider({
|
|
10
11
|
resource: resourceFromAttributes({
|
|
11
12
|
[ATTR_SERVICE_NAME]: `redocly-cli`,
|
|
12
13
|
[ATTR_SERVICE_VERSION]: `@redocly/cli@${version}`,
|
|
14
|
+
session_id: `ses_${ulid()}`,
|
|
13
15
|
}),
|
|
14
16
|
spanProcessors: [
|
|
15
17
|
new SimpleSpanProcessor(new OTLPTraceExporter({
|
|
@@ -19,22 +21,42 @@ export class OtelServerTelemetry {
|
|
|
19
21
|
})),
|
|
20
22
|
],
|
|
21
23
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
}
|
|
25
|
+
send(cloudEvent) {
|
|
26
|
+
const time = cloudEvent.time ? new Date(cloudEvent.time) : new Date();
|
|
27
|
+
const tracer = this.nodeTracerProvider.getTracer('CliTelemetry');
|
|
28
|
+
const spanName = `event.${cloudEvent.data.command}`;
|
|
29
|
+
const attributes = {
|
|
30
|
+
'cloudevents.event_id': cloudEvent.id,
|
|
31
|
+
'cloudevents.event_type': cloudEvent.type,
|
|
32
|
+
'cloudevents.event_source': cloudEvent.source,
|
|
33
|
+
'cloudevents.event_spec_version': cloudEvent.specversion,
|
|
34
|
+
'cloudevents.productType': cloudEvent.productType,
|
|
35
|
+
'cloudevents.event_data_content_type': cloudEvent.datacontenttype || 'application/json; charset=utf-8',
|
|
36
|
+
'cloudevents.event_time': time.toISOString(),
|
|
37
|
+
'cloudevents.event_version': '1.0.0',
|
|
38
|
+
'cloudevents.origin': cloudEvent.origin,
|
|
39
|
+
'cloudevents.project.id': '',
|
|
40
|
+
'cloudevents.project.slug': '',
|
|
41
|
+
'cloudevents.organization.id': '',
|
|
42
|
+
'cloudevents.organization.slug': '',
|
|
43
|
+
'cloudevents.event_origin': cloudEvent.productType,
|
|
44
|
+
'cloudevents.event_source_details.id': cloudEvent.sourceDetails?.id ?? `ann_${ulid()}`,
|
|
45
|
+
'cloudevents.event_source_details.object': cloudEvent.sourceDetails?.object ?? 'anonymous',
|
|
46
|
+
'cloudevents.event_source_details.uri': cloudEvent.sourceDetails?.uri ?? '',
|
|
47
|
+
'cloudevents.event_data.os_platform': cloudEvent.os_platform,
|
|
48
|
+
'cloudevents.event_data.environment': cloudEvent.environment,
|
|
49
|
+
};
|
|
50
|
+
for (const [key, value] of Object.entries(cloudEvent.data)) {
|
|
33
51
|
const keySnakeCase = key.replace(/([A-Z])/g, '_$1').toLowerCase();
|
|
34
52
|
if (value !== undefined) {
|
|
35
|
-
|
|
53
|
+
attributes[`cloudevents.event_data.${keySnakeCase}`] = value;
|
|
36
54
|
}
|
|
37
55
|
}
|
|
56
|
+
const span = tracer.startSpan(spanName, {
|
|
57
|
+
attributes,
|
|
58
|
+
startTime: time,
|
|
59
|
+
});
|
|
38
60
|
span.end(time);
|
|
39
61
|
}
|
|
40
62
|
}
|
package/lib/utils/otel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/utils/otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/utils/otel.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/telemetry.d.ts
CHANGED
|
@@ -2,31 +2,11 @@ import type { ExitCode } from './miscellaneous.js';
|
|
|
2
2
|
import type { ArazzoDefinition, Config } from '@redocly/openapi-core';
|
|
3
3
|
import type { Arguments } from 'yargs';
|
|
4
4
|
import type { CommandArgv } from '../types.js';
|
|
5
|
-
export
|
|
6
|
-
event: string;
|
|
7
|
-
event_time: string;
|
|
8
|
-
logged_in: 'yes' | 'no';
|
|
9
|
-
command: string;
|
|
10
|
-
arguments: string;
|
|
11
|
-
node_version: string;
|
|
12
|
-
npm_version: string;
|
|
13
|
-
os_platform: string;
|
|
14
|
-
version: string;
|
|
15
|
-
exit_code: ExitCode;
|
|
16
|
-
environment?: string;
|
|
17
|
-
metadata?: string;
|
|
18
|
-
environment_ci?: string;
|
|
19
|
-
raw_input: string;
|
|
20
|
-
has_config?: 'yes' | 'no';
|
|
21
|
-
spec_version?: string;
|
|
22
|
-
spec_keyword?: string;
|
|
23
|
-
spec_full_version?: string;
|
|
24
|
-
respect_x_security_auth_types?: string;
|
|
25
|
-
};
|
|
26
|
-
export declare function sendTelemetry({ config, argv, exit_code, spec_version, spec_keyword, spec_full_version, respect_x_security_auth_types, }: {
|
|
5
|
+
export declare function sendTelemetry({ config, argv, exit_code, execution_time, spec_version, spec_keyword, spec_full_version, respect_x_security_auth_types, }: {
|
|
27
6
|
config: Config | undefined;
|
|
28
7
|
argv: Arguments<CommandArgv> | undefined;
|
|
29
8
|
exit_code: ExitCode;
|
|
9
|
+
execution_time: number;
|
|
30
10
|
spec_version: string | undefined;
|
|
31
11
|
spec_keyword: string | undefined;
|
|
32
12
|
spec_full_version: string | undefined;
|
|
@@ -37,4 +17,6 @@ export declare function cleanArgs(parsedArgs: CommandArgv, rawArgv: string[]): {
|
|
|
37
17
|
arguments: string;
|
|
38
18
|
raw_input: string;
|
|
39
19
|
};
|
|
20
|
+
export declare const cacheAnonymousId: (anonymousId: string) => void;
|
|
21
|
+
export declare const getCachedAnonymousId: () => string | undefined;
|
|
40
22
|
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAS,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,wBAAsB,aAAa,CAAC,EAClC,MAAM,EACN,IAAI,EACJ,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,GAC9B,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,QAAQ,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,6BAA6B,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACrD,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFhB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACnC,sCAAsC,EAAE,MAAM,EAAE,QAkCjD;AA+ED,wBAAgB,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE;;;EAiCnE;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,KAAG,IAYtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,MAAM,GAAG,SAiBhD,CAAC"}
|
package/lib/utils/telemetry.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import * as os from 'node:os';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { execSync } from 'node:child_process';
|
|
4
|
-
import { isAbsoluteUrl } from '@redocly/openapi-core';
|
|
4
|
+
import { isAbsoluteUrl, isPlainObject } from '@redocly/openapi-core';
|
|
5
5
|
import { version } from './package.js';
|
|
6
6
|
import { getReuniteUrl } from '../reunite/api/index.js';
|
|
7
7
|
import { respondWithinMs } from './network-check.js';
|
|
8
|
+
import { tmpdir } from 'node:os';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { existsSync, writeFileSync, readFileSync } from 'node:fs';
|
|
11
|
+
import { ANONYMOUS_ID_CACHE_FILE } from './constants.js';
|
|
12
|
+
import { ulid } from 'ulid';
|
|
8
13
|
const SECRET_REPLACEMENT = '***';
|
|
9
|
-
export async function sendTelemetry({ config, argv, exit_code, spec_version, spec_keyword, spec_full_version, respect_x_security_auth_types, }) {
|
|
14
|
+
export async function sendTelemetry({ config, argv, exit_code, execution_time, spec_version, spec_keyword, spec_full_version, respect_x_security_auth_types, }) {
|
|
10
15
|
try {
|
|
11
16
|
if (!argv) {
|
|
12
17
|
return;
|
|
@@ -16,23 +21,26 @@ export async function sendTelemetry({ config, argv, exit_code, spec_version, spe
|
|
|
16
21
|
return;
|
|
17
22
|
}
|
|
18
23
|
const { _: [command], $0: _, ...args } = argv;
|
|
19
|
-
const event_time = new Date().toISOString();
|
|
20
24
|
const { RedoclyOAuthClient } = await import('../auth/oauth-client.js');
|
|
21
25
|
const oauthClient = new RedoclyOAuthClient();
|
|
22
26
|
const reuniteUrl = getReuniteUrl(config, args.residency);
|
|
23
27
|
const logged_in = await oauthClient.isAuthorized(reuniteUrl);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
let anonymous_id = getCachedAnonymousId();
|
|
29
|
+
if (!anonymous_id) {
|
|
30
|
+
anonymous_id = `ann_${ulid()}`;
|
|
31
|
+
cacheAnonymousId(anonymous_id);
|
|
32
|
+
}
|
|
33
|
+
const eventData = {
|
|
34
|
+
id: 'cli-command-run',
|
|
35
|
+
object: 'command',
|
|
27
36
|
logged_in: logged_in ? 'yes' : 'no',
|
|
28
37
|
command: `${command}`,
|
|
29
38
|
...cleanArgs(args, process.argv.slice(2)),
|
|
30
39
|
node_version: process.version,
|
|
31
40
|
npm_version: execSync('npm -v').toString().replace('\n', ''),
|
|
32
|
-
os_platform: os.platform(),
|
|
33
41
|
version,
|
|
34
42
|
exit_code,
|
|
35
|
-
|
|
43
|
+
execution_time,
|
|
36
44
|
metadata: process.env.REDOCLY_CLI_TELEMETRY_METADATA,
|
|
37
45
|
environment_ci: process.env.CI,
|
|
38
46
|
has_config: typeof config?.document?.parsed === 'undefined' ? 'no' : 'yes',
|
|
@@ -43,8 +51,34 @@ export async function sendTelemetry({ config, argv, exit_code, spec_version, spe
|
|
|
43
51
|
? JSON.stringify(respect_x_security_auth_types)
|
|
44
52
|
: undefined,
|
|
45
53
|
};
|
|
54
|
+
const cloudEvent = {
|
|
55
|
+
id: `evt_${ulid()}`,
|
|
56
|
+
time: new Date().toISOString(),
|
|
57
|
+
type: 'command.ran',
|
|
58
|
+
object: 'event',
|
|
59
|
+
specversion: '1.0',
|
|
60
|
+
datacontenttype: 'application/json',
|
|
61
|
+
source: 'com.redocly.cli',
|
|
62
|
+
origin: 'cli',
|
|
63
|
+
productType: 'redocly-cli',
|
|
64
|
+
os_platform: os.platform(),
|
|
65
|
+
subjects: [
|
|
66
|
+
{
|
|
67
|
+
id: ulid(),
|
|
68
|
+
object: 'command.ran',
|
|
69
|
+
uri: '',
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
environment: process.env.REDOCLY_ENVIRONMENT,
|
|
73
|
+
sourceDetails: {
|
|
74
|
+
id: anonymous_id,
|
|
75
|
+
object: 'user',
|
|
76
|
+
uri: '',
|
|
77
|
+
},
|
|
78
|
+
data: eventData,
|
|
79
|
+
};
|
|
46
80
|
const { otelTelemetry } = await import('./otel.js');
|
|
47
|
-
otelTelemetry.send(
|
|
81
|
+
otelTelemetry.send(cloudEvent);
|
|
48
82
|
}
|
|
49
83
|
catch (err) {
|
|
50
84
|
// Do nothing.
|
|
@@ -111,18 +145,12 @@ function replaceArgs(commandInput, targets, replacement) {
|
|
|
111
145
|
return commandInput;
|
|
112
146
|
}
|
|
113
147
|
function cleanObject(obj, keysToClean) {
|
|
114
|
-
if (typeof obj !== 'object' || obj === null) {
|
|
115
|
-
return obj;
|
|
116
|
-
}
|
|
117
|
-
if (Array.isArray(obj)) {
|
|
118
|
-
return obj.map((item) => cleanObject(item, keysToClean));
|
|
119
|
-
}
|
|
120
148
|
const cleaned = {};
|
|
121
149
|
for (const [key, value] of Object.entries(obj)) {
|
|
122
150
|
if (keysToClean.includes(key)) {
|
|
123
151
|
cleaned[key] = SECRET_REPLACEMENT;
|
|
124
152
|
}
|
|
125
|
-
else if (
|
|
153
|
+
else if (isPlainObject(value)) {
|
|
126
154
|
cleaned[key] = cleanObject(value, keysToClean);
|
|
127
155
|
}
|
|
128
156
|
else {
|
|
@@ -172,7 +200,7 @@ export function cleanArgs(parsedArgs, rawArgv) {
|
|
|
172
200
|
}
|
|
173
201
|
}
|
|
174
202
|
}
|
|
175
|
-
else if (
|
|
203
|
+
else if (isPlainObject(value)) {
|
|
176
204
|
const sensitiveValues = collectSensitiveValues(value, KEYS_TO_CLEAN);
|
|
177
205
|
for (const sensitiveValue of sensitiveValues) {
|
|
178
206
|
commandInput = replaceArgs(commandInput, sensitiveValue, SECRET_REPLACEMENT);
|
|
@@ -185,4 +213,33 @@ export function cleanArgs(parsedArgs, rawArgv) {
|
|
|
185
213
|
}
|
|
186
214
|
return { arguments: JSON.stringify(commandArguments), raw_input: commandInput };
|
|
187
215
|
}
|
|
216
|
+
export const cacheAnonymousId = (anonymousId) => {
|
|
217
|
+
const isCI = !!process.env.CI;
|
|
218
|
+
if (isCI || !anonymousId) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
const anonymousIdFile = join(tmpdir(), ANONYMOUS_ID_CACHE_FILE);
|
|
223
|
+
writeFileSync(anonymousIdFile, anonymousId);
|
|
224
|
+
}
|
|
225
|
+
catch (e) {
|
|
226
|
+
// Do nothing
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
export const getCachedAnonymousId = () => {
|
|
230
|
+
const isCI = !!process.env.CI;
|
|
231
|
+
if (isCI) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const anonymousIdFile = join(tmpdir(), ANONYMOUS_ID_CACHE_FILE);
|
|
236
|
+
if (!existsSync(anonymousIdFile)) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
return readFileSync(anonymousIdFile).toString().trim();
|
|
240
|
+
}
|
|
241
|
+
catch (e) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
188
245
|
//# sourceMappingURL=telemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"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"}
|
package/lib/wrapper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAA2B,MAAM,uBAAuB,CAAC;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI;IAC/C,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAClD,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAEpD,MAAM,SAAS,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAA2B,MAAM,uBAAuB,CAAC;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI;IAC/C,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAClD,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAEpD,MAAM,SAAS,CAAC,CAAC,CAAC,mBAiFjC"}
|
package/lib/wrapper.js
CHANGED
|
@@ -5,6 +5,7 @@ import { sendTelemetry, collectXSecurityAuthTypes } from './utils/telemetry.js';
|
|
|
5
5
|
import { AbortFlowError, exitWithError } from './utils/error.js';
|
|
6
6
|
export function commandWrapper(commandHandler) {
|
|
7
7
|
return async (argv) => {
|
|
8
|
+
const startedAt = performance.now();
|
|
8
9
|
let code = 2;
|
|
9
10
|
let telemetry;
|
|
10
11
|
let specVersion = 'unknown';
|
|
@@ -35,6 +36,10 @@ export function commandWrapper(commandHandler) {
|
|
|
35
36
|
if (specKeyword) {
|
|
36
37
|
specFullVersion = document[specKeyword];
|
|
37
38
|
}
|
|
39
|
+
else {
|
|
40
|
+
// Ensure specFullVersion is undefined if specKeyword is not found
|
|
41
|
+
specFullVersion = undefined;
|
|
42
|
+
}
|
|
38
43
|
if (specVersion === 'arazzo1') {
|
|
39
44
|
collectXSecurityAuthTypes(document, respectXSecurityAuthTypes);
|
|
40
45
|
}
|
|
@@ -66,10 +71,12 @@ export function commandWrapper(commandHandler) {
|
|
|
66
71
|
}
|
|
67
72
|
finally {
|
|
68
73
|
if (process.env.REDOCLY_TELEMETRY !== 'off' && telemetry !== 'off') {
|
|
74
|
+
const executionTime = Math.round(performance.now() - startedAt);
|
|
69
75
|
await sendTelemetry({
|
|
70
76
|
config,
|
|
71
77
|
argv,
|
|
72
78
|
exit_code: code,
|
|
79
|
+
execution_time: executionTime,
|
|
73
80
|
spec_version: specVersion,
|
|
74
81
|
spec_keyword: specKeyword,
|
|
75
82
|
spec_full_version: specFullVersion,
|
package/lib/wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/cli",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"@opentelemetry/resources": "2.0.1",
|
|
43
43
|
"@opentelemetry/sdk-trace-node": "2.0.1",
|
|
44
44
|
"@opentelemetry/semantic-conventions": "1.34.0",
|
|
45
|
-
"@redocly/openapi-core": "2.12.
|
|
46
|
-
"@redocly/respect-core": "2.12.
|
|
45
|
+
"@redocly/openapi-core": "2.12.3",
|
|
46
|
+
"@redocly/respect-core": "2.12.3",
|
|
47
47
|
"abort-controller": "^3.0.0",
|
|
48
48
|
"chokidar": "^3.5.1",
|
|
49
49
|
"colorette": "^1.2.0",
|
|
@@ -62,10 +62,12 @@
|
|
|
62
62
|
"set-cookie-parser": "^2.3.5",
|
|
63
63
|
"simple-websocket": "^9.0.0",
|
|
64
64
|
"styled-components": "^6.0.7",
|
|
65
|
+
"ulid": "^3.0.1",
|
|
65
66
|
"undici": "^6.21.3",
|
|
66
67
|
"yargs": "17.0.1"
|
|
67
68
|
},
|
|
68
69
|
"devDependencies": {
|
|
70
|
+
"@redocly/cli-otel": "^0.0.4",
|
|
69
71
|
"@types/configstore": "^5.0.1",
|
|
70
72
|
"@types/cookie": "0.6.0",
|
|
71
73
|
"@types/har-format": "^1.2.16",
|