wgc 0.78.3 → 0.79.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/README.md +11 -4
- package/dist/package.json +2 -1
- package/dist/src/commands/index.js +22 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/subgraph/commands/check.js +4 -0
- package/dist/src/commands/subgraph/commands/check.js.map +1 -1
- package/dist/src/core/telemetry.d.ts +13 -0
- package/dist/src/core/telemetry.js +109 -0
- package/dist/src/core/telemetry.js.map +1 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -22,10 +22,17 @@ npm install -g wgc --help
|
|
|
22
22
|
|
|
23
23
|
### Telemetry
|
|
24
24
|
|
|
25
|
-
The CLI tool collects
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
```
|
|
25
|
+
The CLI tool collects usage data to help us improve the tool and understand how users interact with it. You can disable telemetry in one of the following ways:
|
|
26
|
+
|
|
27
|
+
1. Set the environment variable:
|
|
28
|
+
```shell
|
|
29
|
+
export COSMO_TELEMETRY_DISABLED=true
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
2. Follow the [Console Do Not Track](https://consoledonottrack.com/) standard:
|
|
33
|
+
```shell
|
|
34
|
+
export DO_NOT_TRACK=1
|
|
35
|
+
```
|
|
29
36
|
|
|
30
37
|
### Development
|
|
31
38
|
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wgc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.79.1",
|
|
4
4
|
"description": "The official CLI tool to manage the GraphQL Federation Platform Cosmo",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"ora": "^8.0.1",
|
|
68
68
|
"pathe": "^1.1.1",
|
|
69
69
|
"picocolors": "^1.0.0",
|
|
70
|
+
"posthog-node": "^4.17.1",
|
|
70
71
|
"trieve-ts-sdk": "^0.0.80",
|
|
71
72
|
"undici": "^6.21.1",
|
|
72
73
|
"zod": "^3.22.4"
|
|
@@ -3,6 +3,7 @@ import { Command } from 'commander';
|
|
|
3
3
|
import { CreateClient } from '../core/client/client.js';
|
|
4
4
|
import { config, configDir } from '../core/config.js';
|
|
5
5
|
import { checkForUpdates } from '../utils.js';
|
|
6
|
+
import { capture } from '../core/telemetry.js';
|
|
6
7
|
import AuthCommands from './auth/index.js';
|
|
7
8
|
import MonographCommands from './graph/monograph/index.js';
|
|
8
9
|
import FederatedGraphCommands from './graph/federated-graph/index.js';
|
|
@@ -76,5 +77,26 @@ program.hook('preAction', async () => {
|
|
|
76
77
|
mkdirSync(configDir, { recursive: true });
|
|
77
78
|
await checkForUpdates();
|
|
78
79
|
});
|
|
80
|
+
// Hook to capture command usage
|
|
81
|
+
program.hook('preAction', (thisCommand, actionCommand) => {
|
|
82
|
+
const commandPath = actionCommand.name();
|
|
83
|
+
const parentNames = [];
|
|
84
|
+
let current = actionCommand.parent;
|
|
85
|
+
// Build the full command path (e.g., "federated-graph publish")
|
|
86
|
+
while (current) {
|
|
87
|
+
if (current.name() !== '') {
|
|
88
|
+
parentNames.unshift(current.name());
|
|
89
|
+
}
|
|
90
|
+
current = current.parent;
|
|
91
|
+
}
|
|
92
|
+
const fullCommandPath = [...parentNames, commandPath].join(' ');
|
|
93
|
+
const args = actionCommand.args || [];
|
|
94
|
+
// Capture command execution event
|
|
95
|
+
capture('command_executed', {
|
|
96
|
+
command_path: fullCommandPath,
|
|
97
|
+
command_options: actionCommand.opts(),
|
|
98
|
+
command_args: args,
|
|
99
|
+
});
|
|
100
|
+
});
|
|
79
101
|
export default program;
|
|
80
102
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { Command, program } from 'commander';
|
|
|
4
4
|
import { resolve } from 'pathe';
|
|
5
5
|
import pc from 'picocolors';
|
|
6
6
|
import { VCSContext } from '@wundergraph/cosmo-connect/dist/platform/v1/platform_pb';
|
|
7
|
+
import { splitLabel } from '@wundergraph/cosmo-shared';
|
|
7
8
|
import { config, getBaseHeaders } from '../../../core/config.js';
|
|
8
9
|
import { verifyGitHubIntegration } from '../../../github.js';
|
|
9
10
|
import { handleCheckResult } from '../../../handle-check-result.js';
|
|
@@ -15,6 +16,8 @@ export default (opts) => {
|
|
|
15
16
|
command.option('--schema <path-to-schema>', 'The path of the new schema file.');
|
|
16
17
|
command.option('--delete', 'Run checks in case the subgraph is deleted.');
|
|
17
18
|
command.option('--skip-traffic-check', 'This will skip checking for client traffic and any breaking change will fail the run.');
|
|
19
|
+
command.option('--label [labels...]', 'The labels to apply to the subgraph. The labels are passed in the format <key>=<value> <key>=<value>.' +
|
|
20
|
+
' This parameter is always ignored if the subgraph already exists.', []);
|
|
18
21
|
command.action(async (name, options) => {
|
|
19
22
|
let schemaFile;
|
|
20
23
|
if (!options.schema && !options.delete) {
|
|
@@ -45,6 +48,7 @@ export default (opts) => {
|
|
|
45
48
|
delete: options.delete,
|
|
46
49
|
skipTrafficCheck: options.skipTrafficCheck,
|
|
47
50
|
vcsContext,
|
|
51
|
+
labels: options.label.map((label) => splitLabel(label)),
|
|
48
52
|
}, {
|
|
49
53
|
headers: getBaseHeaders(),
|
|
50
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../src/commands/subgraph/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,WAAW,CAAC,yFAAyF,CAAC,CAAC;IAC/G,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,2EAA2E,CAAC,CAAC;IACxG,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,CAAC,CAAC;IAChF,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC,CAAC;IAC1E,OAAO,CAAC,MAAM,CACZ,sBAAsB,EACtB,uFAAuF,CACxF,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACrC,IAAI,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,wDAAwD,CAAC,CACzG,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,kCAAkC,EAAE,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnG,IAAI,UAAkC,CAAC;QAEvC,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACtE,UAAU,GAAG,IAAI,UAAU,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,SAAS,EAAE,MAAM,CAAC,cAAc;gBAChC,MAAM,EAAE,MAAM,CAAC,WAAW;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CACzD;YACE,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;YAC9B,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,UAAU;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../src/commands/subgraph/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,WAAW,CAAC,yFAAyF,CAAC,CAAC;IAC/G,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,2EAA2E,CAAC,CAAC;IACxG,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,CAAC,CAAC;IAChF,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC,CAAC;IAC1E,OAAO,CAAC,MAAM,CACZ,sBAAsB,EACtB,uFAAuF,CACxF,CAAC;IACF,OAAO,CAAC,MAAM,CACZ,qBAAqB,EACrB,uGAAuG;QACrG,mEAAmE,EACrE,EAAE,CACH,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACrC,IAAI,UAAU,CAAC;QAEf,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,wDAAwD,CAAC,CACzG,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,kCAAkC,EAAE,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnG,IAAI,UAAkC,CAAC;QAEvC,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACtE,UAAU,GAAG,IAAI,UAAU,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,SAAS,EAAE,MAAM,CAAC,cAAc;gBAChC,MAAM,EAAE,MAAM,CAAC,WAAW;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CACzD;YACE,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;YAC9B,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAChE,EACD;YACE,OAAO,EAAE,cAAc,EAAE;SAC1B,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,IAAI,CAAC,kCAAkC,EAAE,CAAC;YACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,6CAA6C;YAC7C,OAAO;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize PostHog client
|
|
3
|
+
* This should be called once at the start of the CLI
|
|
4
|
+
*/
|
|
5
|
+
export declare const initTelemetry: () => void;
|
|
6
|
+
/**
|
|
7
|
+
* Capture a usage event
|
|
8
|
+
*/
|
|
9
|
+
export declare const capture: (eventName: string, properties?: Record<string, any>) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Shutdown PostHog client - should be called before CLI exits
|
|
12
|
+
*/
|
|
13
|
+
export declare const shutdownTelemetry: () => Promise<void>;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import { PostHog } from 'posthog-node';
|
|
3
|
+
import { config, getBaseHeaders } from './config.js';
|
|
4
|
+
// Environment variables to allow opting out of telemetry
|
|
5
|
+
// Support for COSMO_TELEMETRY_DISABLED and Console Do Not Track standard
|
|
6
|
+
const TELEMETRY_DISABLED = process.env.COSMO_TELEMETRY_DISABLED === 'true' || process.env.DO_NOT_TRACK === '1' || !process.env.POSTHOG_API_KEY;
|
|
7
|
+
let client = null;
|
|
8
|
+
// Detect if running in a CI environment
|
|
9
|
+
const isCI = () => {
|
|
10
|
+
return Boolean(process.env.CI || // Travis CI, CircleCI, GitLab CI, GitHub Actions, etc.
|
|
11
|
+
process.env.CONTINUOUS_INTEGRATION ||
|
|
12
|
+
process.env.BUILD_NUMBER || // Jenkins
|
|
13
|
+
process.env.TEAMCITY_VERSION || // TeamCity
|
|
14
|
+
process.env.GITLAB_CI ||
|
|
15
|
+
process.env.GITHUB_ACTIONS ||
|
|
16
|
+
process.env.BUILDKITE);
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Initialize PostHog client
|
|
20
|
+
* This should be called once at the start of the CLI
|
|
21
|
+
*/
|
|
22
|
+
export const initTelemetry = () => {
|
|
23
|
+
if (TELEMETRY_DISABLED) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const posthogApiKey = process.env.POSTHOG_API_KEY || '';
|
|
27
|
+
const posthogHost = process.env.POSTHOG_HOST || 'https://eu.i.posthog.com';
|
|
28
|
+
client = new PostHog(posthogApiKey, {
|
|
29
|
+
host: posthogHost,
|
|
30
|
+
flushAt: 1, // For CLI, we want to send events immediately
|
|
31
|
+
flushInterval: 0, // Don't wait to flush events
|
|
32
|
+
disableGeoip: false,
|
|
33
|
+
});
|
|
34
|
+
// Handle errors silently to not interrupt CLI operations
|
|
35
|
+
client.on('error', (err) => {
|
|
36
|
+
if (process.env.DEBUG) {
|
|
37
|
+
console.error('Telemetry error:', err);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Capture a usage event
|
|
43
|
+
*/
|
|
44
|
+
export const capture = (eventName, properties = {}) => {
|
|
45
|
+
if (TELEMETRY_DISABLED || !client) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const distinctId = getDistinctId();
|
|
50
|
+
const metadata = getMetadata();
|
|
51
|
+
client.capture({
|
|
52
|
+
distinctId,
|
|
53
|
+
event: eventName,
|
|
54
|
+
properties: {
|
|
55
|
+
...metadata,
|
|
56
|
+
...properties,
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
// Silently fail to not disrupt CLI operations
|
|
62
|
+
if (process.env.DEBUG) {
|
|
63
|
+
console.error('Failed to capture telemetry event:', err);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Generate a consistent distinct ID
|
|
69
|
+
*/
|
|
70
|
+
const getDistinctId = () => {
|
|
71
|
+
// Use organization slug if available
|
|
72
|
+
const headers = getBaseHeaders();
|
|
73
|
+
// Convert HeadersInit to Record to safely access properties
|
|
74
|
+
const headersRecord = Object.fromEntries(Object.entries(headers).map(([key, value]) => [key, value.toString()]));
|
|
75
|
+
const organizationSlug = headersRecord['cosmo-org-slug'] || 'anonymous';
|
|
76
|
+
return `cli_${organizationSlug}`;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Get CLI metadata to include with all events
|
|
80
|
+
*/
|
|
81
|
+
const getMetadata = () => {
|
|
82
|
+
var _a;
|
|
83
|
+
return {
|
|
84
|
+
cli_version: config.version,
|
|
85
|
+
node_version: process.version,
|
|
86
|
+
os_name: process.platform,
|
|
87
|
+
os_version: ((_a = process.release) === null || _a === void 0 ? void 0 : _a.name) || '',
|
|
88
|
+
platform: process.arch,
|
|
89
|
+
machine_id: os.hostname(),
|
|
90
|
+
is_ci: isCI(),
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Shutdown PostHog client - should be called before CLI exits
|
|
95
|
+
*/
|
|
96
|
+
export const shutdownTelemetry = async () => {
|
|
97
|
+
if (client) {
|
|
98
|
+
try {
|
|
99
|
+
await client.shutdown();
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
// Silently fail
|
|
103
|
+
if (process.env.DEBUG) {
|
|
104
|
+
console.error('Failed to shutdown telemetry:', err);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/core/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -3,9 +3,12 @@ import * as dotenv from 'dotenv';
|
|
|
3
3
|
import pc from 'picocolors';
|
|
4
4
|
import boxen from 'boxen';
|
|
5
5
|
import program from './commands/index.js';
|
|
6
|
+
import { initTelemetry, shutdownTelemetry } from './core/telemetry.js';
|
|
6
7
|
dotenv.config();
|
|
8
|
+
initTelemetry();
|
|
7
9
|
try {
|
|
8
10
|
await program.parseAsync(process.argv);
|
|
11
|
+
await shutdownTelemetry();
|
|
9
12
|
}
|
|
10
13
|
catch (e) {
|
|
11
14
|
console.log('');
|
|
@@ -24,5 +27,6 @@ Please try the below steps to solve the issue
|
|
|
24
27
|
borderStyle: 'round',
|
|
25
28
|
}));
|
|
26
29
|
process.exitCode = 1;
|
|
30
|
+
await shutdownTelemetry();
|
|
27
31
|
}
|
|
28
32
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,aAAa,EAAE,CAAC;AAEhB,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,iBAAiB,EAAE,CAAC;AAC5B,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjB,MAAM,OAAO,GAAG;;;;MAIZ,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC;;MAE9B,EAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,EAAE,CAAC;IAExE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,EAAE;QACb,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,OAAO;KACrB,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAErB,MAAM,iBAAiB,EAAE,CAAC;AAC5B,CAAC"}
|