@octaviaflow/telemetry 1.1.1 → 1.1.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/dist/__tests__/mocks/mongodb.mock.d.ts +22 -0
- package/dist/__tests__/mocks/mongodb.mock.d.ts.map +1 -0
- package/dist/__tests__/mocks/mongodb.mock.js +87 -0
- package/dist/__tests__/mocks/mongodb.mock.js.map +1 -0
- package/dist/__tests__/setup.d.ts +10 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +28 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/collect.bundle.js +119 -67
- package/dist/collect.bundle.js.map +3 -3
- package/dist/collect.js +14 -20
- package/dist/collect.js.map +1 -1
- package/dist/config/__tests__/config-loader.test.d.ts +10 -0
- package/dist/config/__tests__/config-loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/config-loader.test.js +374 -0
- package/dist/config/__tests__/config-loader.test.js.map +1 -0
- package/dist/config/__tests__/credential-manager.test.d.ts +10 -0
- package/dist/config/__tests__/credential-manager.test.d.ts.map +1 -0
- package/dist/config/__tests__/credential-manager.test.js +297 -0
- package/dist/config/__tests__/credential-manager.test.js.map +1 -0
- package/dist/config/config-loader.d.ts +3 -3
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +20 -20
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/credential-manager.d.ts +3 -3
- package/dist/config/credential-manager.d.ts.map +1 -1
- package/dist/config/credential-manager.js +49 -49
- package/dist/config/credential-manager.js.map +1 -1
- package/dist/core/telemetry-collector.d.ts +4 -4
- package/dist/core/telemetry-collector.d.ts.map +1 -1
- package/dist/core/telemetry-collector.js +72 -65
- package/dist/core/telemetry-collector.js.map +1 -1
- package/dist/index.d.ts +19 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -7
- package/dist/index.js.map +1 -1
- package/dist/integrations/__tests__/react-telemetry.test.d.ts +10 -0
- package/dist/integrations/__tests__/react-telemetry.test.d.ts.map +1 -0
- package/dist/integrations/__tests__/react-telemetry.test.js +166 -0
- package/dist/integrations/__tests__/react-telemetry.test.js.map +1 -0
- package/dist/integrations/react-telemetry.d.ts +6 -2
- package/dist/integrations/react-telemetry.d.ts.map +1 -1
- package/dist/integrations/react-telemetry.js +64 -42
- package/dist/integrations/react-telemetry.js.map +1 -1
- package/dist/storage/__tests__/file-storage.test.d.ts +10 -0
- package/dist/storage/__tests__/file-storage.test.d.ts.map +1 -0
- package/dist/storage/__tests__/file-storage.test.js +260 -0
- package/dist/storage/__tests__/file-storage.test.js.map +1 -0
- package/dist/storage/__tests__/mongodb-storage.test.d.ts +10 -0
- package/dist/storage/__tests__/mongodb-storage.test.d.ts.map +1 -0
- package/dist/storage/__tests__/mongodb-storage.test.js +308 -0
- package/dist/storage/__tests__/mongodb-storage.test.js.map +1 -0
- package/dist/storage/mongodb-storage.d.ts +4 -4
- package/dist/storage/mongodb-storage.d.ts.map +1 -1
- package/dist/storage/mongodb-storage.js +34 -31
- package/dist/storage/mongodb-storage.js.map +1 -1
- package/dist/storage/resilient-storage.d.ts +8 -5
- package/dist/storage/resilient-storage.d.ts.map +1 -1
- package/dist/storage/resilient-storage.js +35 -26
- package/dist/storage/resilient-storage.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright OctaviaFlow
|
|
3
3
|
* Author: Vishal Kumar
|
|
4
|
-
* Created:
|
|
4
|
+
* Created: 11/November/2025
|
|
5
5
|
*
|
|
6
6
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import * as fs from
|
|
10
|
-
import * as path from
|
|
11
|
-
import * as os from
|
|
9
|
+
import * as fs from "fs";
|
|
10
|
+
import * as path from "path";
|
|
11
|
+
import * as os from "os";
|
|
12
12
|
export class CredentialManager {
|
|
13
13
|
config;
|
|
14
|
-
constructor(config = { source:
|
|
14
|
+
constructor(config = { source: "env" }) {
|
|
15
15
|
this.config = {
|
|
16
|
-
envPrefix:
|
|
17
|
-
...config
|
|
16
|
+
envPrefix: "OCTAVIAFLOW_TELEMETRY_",
|
|
17
|
+
...config,
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
@@ -22,13 +22,13 @@ export class CredentialManager {
|
|
|
22
22
|
*/
|
|
23
23
|
async getMongoDBCredentials() {
|
|
24
24
|
switch (this.config.source) {
|
|
25
|
-
case
|
|
25
|
+
case "env":
|
|
26
26
|
return this.getCredentialsFromEnv();
|
|
27
|
-
case
|
|
27
|
+
case "file":
|
|
28
28
|
return this.getCredentialsFromFile();
|
|
29
|
-
case
|
|
29
|
+
case "keychain":
|
|
30
30
|
return this.getCredentialsFromKeychain();
|
|
31
|
-
case
|
|
31
|
+
case "prompt":
|
|
32
32
|
return this.getCredentialsFromPrompt();
|
|
33
33
|
default:
|
|
34
34
|
throw new Error(`Unsupported credential source: ${this.config.source}`);
|
|
@@ -38,7 +38,7 @@ export class CredentialManager {
|
|
|
38
38
|
* Get credentials from environment variables
|
|
39
39
|
*/
|
|
40
40
|
getCredentialsFromEnv() {
|
|
41
|
-
const prefix = this.config.envPrefix ||
|
|
41
|
+
const prefix = this.config.envPrefix || "OCTAVIAFLOW_TELEMETRY_";
|
|
42
42
|
const username = process.env[`${prefix}DB_USERNAME`];
|
|
43
43
|
const password = process.env[`${prefix}DB_PASSWORD`];
|
|
44
44
|
if (!username || !password) {
|
|
@@ -56,14 +56,14 @@ export class CredentialManager {
|
|
|
56
56
|
throw new Error(`Credential file not found: ${filePath}`);
|
|
57
57
|
}
|
|
58
58
|
try {
|
|
59
|
-
const content = fs.readFileSync(filePath,
|
|
59
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
60
60
|
const credentials = JSON.parse(content);
|
|
61
61
|
if (!credentials.username || !credentials.password) {
|
|
62
62
|
throw new Error('Invalid credential file format. Expected: {"username": "...", "password": "..."}');
|
|
63
63
|
}
|
|
64
64
|
return {
|
|
65
65
|
username: credentials.username,
|
|
66
|
-
password: credentials.password
|
|
66
|
+
password: credentials.password,
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
catch (error) {
|
|
@@ -76,7 +76,7 @@ export class CredentialManager {
|
|
|
76
76
|
async getCredentialsFromKeychain() {
|
|
77
77
|
// This would require platform-specific keychain access
|
|
78
78
|
// For now, fall back to environment variables
|
|
79
|
-
console.warn(
|
|
79
|
+
console.warn("⚠️ Keychain access not implemented, falling back to environment variables");
|
|
80
80
|
return this.getCredentialsFromEnv();
|
|
81
81
|
}
|
|
82
82
|
/**
|
|
@@ -85,7 +85,7 @@ export class CredentialManager {
|
|
|
85
85
|
async getCredentialsFromPrompt() {
|
|
86
86
|
// This would require readline or similar for interactive input
|
|
87
87
|
// For now, fall back to environment variables
|
|
88
|
-
console.warn(
|
|
88
|
+
console.warn("⚠️ Interactive prompt not implemented, falling back to environment variables");
|
|
89
89
|
return this.getCredentialsFromEnv();
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
@@ -93,14 +93,14 @@ export class CredentialManager {
|
|
|
93
93
|
*/
|
|
94
94
|
async storeCredentials(credentials) {
|
|
95
95
|
switch (this.config.source) {
|
|
96
|
-
case
|
|
96
|
+
case "file":
|
|
97
97
|
await this.storeCredentialsToFile(credentials);
|
|
98
98
|
break;
|
|
99
|
-
case
|
|
99
|
+
case "keychain":
|
|
100
100
|
await this.storeCredentialsToKeychain(credentials);
|
|
101
101
|
break;
|
|
102
102
|
default:
|
|
103
|
-
console.warn(
|
|
103
|
+
console.warn("⚠️ Credential storage not supported for source:", this.config.source);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
@@ -127,23 +127,23 @@ export class CredentialManager {
|
|
|
127
127
|
*/
|
|
128
128
|
async storeCredentialsToKeychain(credentials) {
|
|
129
129
|
// Platform-specific keychain storage would go here
|
|
130
|
-
console.warn(
|
|
130
|
+
console.warn("⚠️ Keychain storage not implemented");
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* Get default credential file path
|
|
134
134
|
*/
|
|
135
135
|
getDefaultCredentialFilePath() {
|
|
136
136
|
const homeDir = os.homedir();
|
|
137
|
-
return path.join(homeDir,
|
|
137
|
+
return path.join(homeDir, ".octaviaflow", "telemetry-credentials.json");
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
140
|
* Validate credentials format
|
|
141
141
|
*/
|
|
142
142
|
validateCredentials(credentials) {
|
|
143
|
-
return (typeof credentials ===
|
|
143
|
+
return (typeof credentials === "object" &&
|
|
144
144
|
credentials !== null &&
|
|
145
|
-
typeof credentials.username ===
|
|
146
|
-
typeof credentials.password ===
|
|
145
|
+
typeof credentials.username === "string" &&
|
|
146
|
+
typeof credentials.password === "string" &&
|
|
147
147
|
credentials.username.length > 0 &&
|
|
148
148
|
credentials.password.length > 0);
|
|
149
149
|
}
|
|
@@ -152,21 +152,21 @@ export class CredentialManager {
|
|
|
152
152
|
*/
|
|
153
153
|
async testCredentials(credentials, connectionString) {
|
|
154
154
|
try {
|
|
155
|
-
const { MongoClient } = await import(
|
|
155
|
+
const { MongoClient } = await import("mongodb");
|
|
156
156
|
const testConnectionString = connectionString
|
|
157
|
-
.replace(
|
|
158
|
-
.replace(
|
|
157
|
+
.replace("<db_username>", encodeURIComponent(credentials.username))
|
|
158
|
+
.replace("<db_password>", encodeURIComponent(credentials.password));
|
|
159
159
|
const client = new MongoClient(testConnectionString, {
|
|
160
160
|
serverSelectionTimeoutMS: 5000,
|
|
161
|
-
connectTimeoutMS: 5000
|
|
161
|
+
connectTimeoutMS: 5000,
|
|
162
162
|
});
|
|
163
163
|
await client.connect();
|
|
164
|
-
await client.db(
|
|
164
|
+
await client.db("admin").command({ ping: 1 });
|
|
165
165
|
await client.close();
|
|
166
166
|
return true;
|
|
167
167
|
}
|
|
168
168
|
catch (error) {
|
|
169
|
-
console.error(
|
|
169
|
+
console.error("✗ Credential test failed:", error instanceof Error ? error.message : String(error));
|
|
170
170
|
return false;
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -175,49 +175,49 @@ export class CredentialManager {
|
|
|
175
175
|
*/
|
|
176
176
|
async clearCredentials() {
|
|
177
177
|
switch (this.config.source) {
|
|
178
|
-
case
|
|
178
|
+
case "file":
|
|
179
179
|
const filePath = this.config.filePath || this.getDefaultCredentialFilePath();
|
|
180
180
|
if (fs.existsSync(filePath)) {
|
|
181
181
|
fs.unlinkSync(filePath);
|
|
182
|
-
console.log(
|
|
182
|
+
console.log("✔︎ Credentials cleared from file");
|
|
183
183
|
}
|
|
184
184
|
break;
|
|
185
|
-
case
|
|
186
|
-
console.warn(
|
|
185
|
+
case "keychain":
|
|
186
|
+
console.warn("⚠️ Keychain credential clearing not implemented");
|
|
187
187
|
break;
|
|
188
188
|
default:
|
|
189
|
-
console.warn(
|
|
189
|
+
console.warn("⚠️ Credential clearing not supported for source:", this.config.source);
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
/**
|
|
193
193
|
* Setup credentials interactively
|
|
194
194
|
*/
|
|
195
195
|
async setupCredentials() {
|
|
196
|
-
console.log(
|
|
197
|
-
console.log(
|
|
198
|
-
console.log(
|
|
199
|
-
console.log(
|
|
200
|
-
console.log(
|
|
201
|
-
console.log(
|
|
202
|
-
console.log(
|
|
196
|
+
console.log("🔐 Setting up MongoDB credentials for OctaviaFlow Telemetry...");
|
|
197
|
+
console.log("");
|
|
198
|
+
console.log("Please provide your MongoDB Atlas credentials:");
|
|
199
|
+
console.log("Username: BueFqTBkS0JVtlWp");
|
|
200
|
+
console.log("Password: [Please provide the password]");
|
|
201
|
+
console.log("");
|
|
202
|
+
console.log("You can set these as environment variables:");
|
|
203
203
|
console.log(' export OCTAVIAFLOW_TELEMETRY_DB_USERNAME="BueFqTBkS0JVtlWp"');
|
|
204
204
|
console.log(' export OCTAVIAFLOW_TELEMETRY_DB_PASSWORD="your_password"');
|
|
205
|
-
console.log(
|
|
205
|
+
console.log("");
|
|
206
206
|
// For now, return the known username and expect password from env
|
|
207
|
-
const username =
|
|
207
|
+
const username = "BueFqTBkS0JVtlWp";
|
|
208
208
|
const password = process.env.OCTAVIAFLOW_TELEMETRY_DB_PASSWORD;
|
|
209
209
|
if (!password) {
|
|
210
|
-
throw new Error(
|
|
210
|
+
throw new Error("Please set the OCTAVIAFLOW_TELEMETRY_DB_PASSWORD environment variable with your MongoDB password");
|
|
211
211
|
}
|
|
212
212
|
const credentials = { username, password };
|
|
213
213
|
// Test the credentials
|
|
214
|
-
console.log(
|
|
215
|
-
const connectionString =
|
|
214
|
+
console.log("🧪 Testing credentials...");
|
|
215
|
+
const connectionString = "mongodb+srv://<db_username>:<db_password>@cluster0.9pxucxe.mongodb.net/?appName=Cluster0";
|
|
216
216
|
const isValid = await this.testCredentials(credentials, connectionString);
|
|
217
217
|
if (!isValid) {
|
|
218
|
-
throw new Error(
|
|
218
|
+
throw new Error("✗ Credential test failed. Please check your password.");
|
|
219
219
|
}
|
|
220
|
-
console.log(
|
|
220
|
+
console.log("✔︎ Credentials validated successfully!");
|
|
221
221
|
return credentials;
|
|
222
222
|
}
|
|
223
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/config/credential-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAUzB,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IAEjC,YAAY,SAA2B,EAAE,MAAM,EAAE,KAAK,EAAE;QACtD,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,wBAAwB;YACnC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB;QACzB,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3B,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAC3C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC;gBACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,wBAAwB,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,0DAA0D;
|
|
1
|
+
{"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/config/credential-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import { TelemetryConfig } from
|
|
10
|
-
import { FileStorage } from
|
|
11
|
-
import { MongoDBStorage } from
|
|
12
|
-
import { ResilientStorage } from
|
|
9
|
+
import { TelemetryConfig } from "../config/config-loader.js";
|
|
10
|
+
import { FileStorage } from "../storage/file-storage.js";
|
|
11
|
+
import { MongoDBStorage } from "../storage/mongodb-storage.js";
|
|
12
|
+
import { ResilientStorage } from "../storage/resilient-storage.js";
|
|
13
13
|
export interface CollectorOptions {
|
|
14
14
|
verbose?: boolean;
|
|
15
15
|
dryRun?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-collector.d.ts","sourceRoot":"","sources":["../../src/core/telemetry-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAiB,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAmB;IAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"telemetry-collector.d.ts","sourceRoot":"","sources":["../../src/core/telemetry-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAiB,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAmB;IAC3B,cAAc,EACjB,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,IAAI,CAAQ;IAChB,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,iBAAiB,CAAkC;gBAE/C,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,gBAAqB;IAwB7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA6HhB,cAAc;YAiCd,cAAc;YAoCd,aAAa;YAoCb,aAAa;CAmC5B"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import { FileStorage } from
|
|
10
|
-
import { MongoDBStorage } from
|
|
11
|
-
import { ResilientStorage } from
|
|
9
|
+
import { FileStorage } from "../storage/file-storage.js";
|
|
10
|
+
import { MongoDBStorage } from "../storage/mongodb-storage.js";
|
|
11
|
+
import { ResilientStorage } from "../storage/resilient-storage.js";
|
|
12
12
|
export class TelemetryCollector {
|
|
13
13
|
config;
|
|
14
14
|
options;
|
|
@@ -19,10 +19,10 @@ export class TelemetryCollector {
|
|
|
19
19
|
this.config = config;
|
|
20
20
|
this.options = options;
|
|
21
21
|
// Initialize primary storage based on configuration
|
|
22
|
-
if (config.storage.type ===
|
|
22
|
+
if (config.storage.type === "file" && config.storage.file) {
|
|
23
23
|
this.primaryStorage = new FileStorage(config.storage.file);
|
|
24
24
|
}
|
|
25
|
-
else if (config.storage.type ===
|
|
25
|
+
else if (config.storage.type === "mongodb" && config.storage.mongodb) {
|
|
26
26
|
// Use ResilientStorage for automatic offline fallback
|
|
27
27
|
this.primaryStorage = new ResilientStorage(config.storage.mongodb);
|
|
28
28
|
// No credential manager needed for published package telemetry
|
|
@@ -33,27 +33,28 @@ export class TelemetryCollector {
|
|
|
33
33
|
directory: config.storage.localBackup.directory,
|
|
34
34
|
fileNamePattern: config.storage.localBackup.fileNamePattern,
|
|
35
35
|
maxFileSizeMB: config.storage.localBackup.maxFileSizeMB,
|
|
36
|
-
compress: config.storage.localBackup.compress
|
|
36
|
+
compress: config.storage.localBackup.compress,
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
async collect() {
|
|
41
41
|
if (this.options.verbose) {
|
|
42
|
-
console.log(
|
|
42
|
+
console.log("🔍 Starting telemetry collection for project:", this.config.projectId);
|
|
43
43
|
}
|
|
44
44
|
// Initialize MongoDB connection if needed
|
|
45
|
-
if (this.primaryStorage instanceof MongoDBStorage ||
|
|
45
|
+
if (this.primaryStorage instanceof MongoDBStorage ||
|
|
46
|
+
this.primaryStorage instanceof ResilientStorage) {
|
|
46
47
|
try {
|
|
47
48
|
// Connect directly using embedded credentials for published package telemetry
|
|
48
49
|
await this.primaryStorage.connect();
|
|
49
50
|
if (this.options.verbose) {
|
|
50
|
-
console.log(
|
|
51
|
+
console.log("🔗 Telemetry storage initialized successfully");
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
catch (error) {
|
|
54
55
|
// ResilientStorage handles failures gracefully, so this should rarely happen
|
|
55
56
|
if (this.options.verbose) {
|
|
56
|
-
console.warn(
|
|
57
|
+
console.warn("⚠️ Telemetry storage initialization had issues:", error instanceof Error ? error.message : String(error));
|
|
57
58
|
}
|
|
58
59
|
// Don't disable telemetry - ResilientStorage will handle offline mode
|
|
59
60
|
}
|
|
@@ -83,45 +84,51 @@ export class TelemetryCollector {
|
|
|
83
84
|
console.log(`📊 Collected ${telemetryData.length} telemetry data points`);
|
|
84
85
|
}
|
|
85
86
|
// Store data
|
|
86
|
-
if (!this.options.dryRun &&
|
|
87
|
+
if (!this.options.dryRun &&
|
|
88
|
+
this.primaryStorage &&
|
|
89
|
+
telemetryData.length > 0) {
|
|
87
90
|
// Store in primary storage (MongoDB or file)
|
|
88
91
|
await this.primaryStorage.storeBatch(telemetryData);
|
|
89
92
|
// Store in backup storage if enabled
|
|
90
93
|
if (this.backupStorage) {
|
|
91
94
|
await this.backupStorage.storeBatch(telemetryData);
|
|
92
95
|
if (this.options.verbose) {
|
|
93
|
-
console.log(
|
|
96
|
+
console.log("💾 Data backed up locally");
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
if (this.options.verbose) {
|
|
97
|
-
console.log(
|
|
100
|
+
console.log("💾 Data stored successfully");
|
|
98
101
|
// Show storage-specific information
|
|
99
|
-
if (this.config.storage.type ===
|
|
102
|
+
if (this.config.storage.type === "file" &&
|
|
103
|
+
this.primaryStorage instanceof FileStorage) {
|
|
100
104
|
const files = this.primaryStorage.getStoredFiles();
|
|
101
|
-
console.log(
|
|
102
|
-
console.log(
|
|
105
|
+
console.log("📁 Stored files:", files);
|
|
106
|
+
console.log("🗄️ To import to MongoDB Atlas, run:");
|
|
103
107
|
console.log(' mongoimport --uri "your-connection-string" --collection telemetry --file <json-file>');
|
|
104
108
|
}
|
|
105
|
-
else if (this.config.storage.type ===
|
|
109
|
+
else if (this.config.storage.type === "mongodb" &&
|
|
110
|
+
(this.primaryStorage instanceof MongoDBStorage ||
|
|
111
|
+
this.primaryStorage instanceof ResilientStorage)) {
|
|
106
112
|
const stats = await this.primaryStorage.getStats();
|
|
107
|
-
console.log(
|
|
113
|
+
console.log("📊 Storage Stats:", stats);
|
|
108
114
|
}
|
|
109
115
|
// Show backup storage info if enabled
|
|
110
116
|
if (this.backupStorage) {
|
|
111
117
|
const backupFiles = this.backupStorage.getStoredFiles();
|
|
112
|
-
console.log(
|
|
118
|
+
console.log("📁 Backup files:", backupFiles);
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
else if (this.options.dryRun) {
|
|
117
|
-
console.log(
|
|
118
|
-
console.log(
|
|
123
|
+
console.log("🧪 Dry run mode - no data stored");
|
|
124
|
+
console.log("📋 Would store:", JSON.stringify(telemetryData, null, 2));
|
|
119
125
|
}
|
|
120
126
|
// Cleanup storage connections
|
|
121
|
-
if (this.primaryStorage instanceof MongoDBStorage ||
|
|
127
|
+
if (this.primaryStorage instanceof MongoDBStorage ||
|
|
128
|
+
this.primaryStorage instanceof ResilientStorage) {
|
|
122
129
|
await this.primaryStorage.disconnect();
|
|
123
130
|
if (this.options.verbose) {
|
|
124
|
-
console.log(
|
|
131
|
+
console.log("🔌 Telemetry storage disconnected");
|
|
125
132
|
}
|
|
126
133
|
}
|
|
127
134
|
}
|
|
@@ -132,25 +139,25 @@ export class TelemetryCollector {
|
|
|
132
139
|
const mockNpmData = {
|
|
133
140
|
timestamp: new Date().toISOString(),
|
|
134
141
|
projectId: this.config.projectId,
|
|
135
|
-
scope:
|
|
136
|
-
metric:
|
|
142
|
+
scope: "npm",
|
|
143
|
+
metric: "npm.dependency",
|
|
137
144
|
data: {
|
|
138
145
|
dependencies: [
|
|
139
|
-
{ name:
|
|
140
|
-
{ name:
|
|
141
|
-
]
|
|
146
|
+
{ name: "react", version: "^18.0.0", type: "dependency" },
|
|
147
|
+
{ name: "typescript", version: "^5.0.0", type: "devDependency" },
|
|
148
|
+
],
|
|
142
149
|
},
|
|
143
150
|
metadata: {
|
|
144
|
-
collectionMethod:
|
|
145
|
-
}
|
|
151
|
+
collectionMethod: "package.json-analysis",
|
|
152
|
+
},
|
|
146
153
|
};
|
|
147
154
|
data.push(mockNpmData);
|
|
148
155
|
if (this.options.verbose) {
|
|
149
|
-
console.log(
|
|
156
|
+
console.log("📦 NPM data collected");
|
|
150
157
|
}
|
|
151
158
|
}
|
|
152
159
|
catch (error) {
|
|
153
|
-
console.warn(
|
|
160
|
+
console.warn("⚠️ Failed to collect NPM data:", error);
|
|
154
161
|
}
|
|
155
162
|
return data;
|
|
156
163
|
}
|
|
@@ -161,28 +168,28 @@ export class TelemetryCollector {
|
|
|
161
168
|
const mockJsxData = {
|
|
162
169
|
timestamp: new Date().toISOString(),
|
|
163
170
|
projectId: this.config.projectId,
|
|
164
|
-
scope:
|
|
165
|
-
metric:
|
|
171
|
+
scope: "jsx",
|
|
172
|
+
metric: "jsx.element",
|
|
166
173
|
data: {
|
|
167
174
|
elements: [
|
|
168
175
|
{
|
|
169
|
-
name:
|
|
170
|
-
attributes: { size:
|
|
171
|
-
moduleSpecifier:
|
|
172
|
-
}
|
|
173
|
-
]
|
|
176
|
+
name: "Button",
|
|
177
|
+
attributes: { size: "large", variant: "primary" },
|
|
178
|
+
moduleSpecifier: "@octaviaflow/ui",
|
|
179
|
+
},
|
|
180
|
+
],
|
|
174
181
|
},
|
|
175
182
|
metadata: {
|
|
176
|
-
collectionMethod:
|
|
177
|
-
}
|
|
183
|
+
collectionMethod: "jsx-analysis",
|
|
184
|
+
},
|
|
178
185
|
};
|
|
179
186
|
data.push(mockJsxData);
|
|
180
187
|
if (this.options.verbose) {
|
|
181
|
-
console.log(
|
|
188
|
+
console.log("⚛️ JSX data collected");
|
|
182
189
|
}
|
|
183
190
|
}
|
|
184
191
|
catch (error) {
|
|
185
|
-
console.warn(
|
|
192
|
+
console.warn("⚠️ Failed to collect JSX data:", error);
|
|
186
193
|
}
|
|
187
194
|
return data;
|
|
188
195
|
}
|
|
@@ -193,28 +200,28 @@ export class TelemetryCollector {
|
|
|
193
200
|
const mockJsData = {
|
|
194
201
|
timestamp: new Date().toISOString(),
|
|
195
202
|
projectId: this.config.projectId,
|
|
196
|
-
scope:
|
|
197
|
-
metric:
|
|
203
|
+
scope: "js",
|
|
204
|
+
metric: "js.function",
|
|
198
205
|
data: {
|
|
199
206
|
functions: [
|
|
200
207
|
{
|
|
201
|
-
name:
|
|
202
|
-
arguments: [
|
|
203
|
-
moduleSpecifier:
|
|
204
|
-
}
|
|
205
|
-
]
|
|
208
|
+
name: "useAnalytics",
|
|
209
|
+
arguments: ["track", "user_action"],
|
|
210
|
+
moduleSpecifier: "@octaviaflow/analytics",
|
|
211
|
+
},
|
|
212
|
+
],
|
|
206
213
|
},
|
|
207
214
|
metadata: {
|
|
208
|
-
collectionMethod:
|
|
209
|
-
}
|
|
215
|
+
collectionMethod: "js-analysis",
|
|
216
|
+
},
|
|
210
217
|
};
|
|
211
218
|
data.push(mockJsData);
|
|
212
219
|
if (this.options.verbose) {
|
|
213
|
-
console.log(
|
|
220
|
+
console.log("🔧 JS data collected");
|
|
214
221
|
}
|
|
215
222
|
}
|
|
216
223
|
catch (error) {
|
|
217
|
-
console.warn(
|
|
224
|
+
console.warn("⚠️ Failed to collect JS data:", error);
|
|
218
225
|
}
|
|
219
226
|
return data;
|
|
220
227
|
}
|
|
@@ -225,28 +232,28 @@ export class TelemetryCollector {
|
|
|
225
232
|
const mockWcData = {
|
|
226
233
|
timestamp: new Date().toISOString(),
|
|
227
234
|
projectId: this.config.projectId,
|
|
228
|
-
scope:
|
|
229
|
-
metric:
|
|
235
|
+
scope: "wc",
|
|
236
|
+
metric: "wc.element",
|
|
230
237
|
data: {
|
|
231
238
|
elements: [
|
|
232
239
|
{
|
|
233
|
-
name:
|
|
234
|
-
attributes: { type:
|
|
235
|
-
moduleSpecifier:
|
|
236
|
-
}
|
|
237
|
-
]
|
|
240
|
+
name: "octaviaflow-button",
|
|
241
|
+
attributes: { type: "submit", disabled: false },
|
|
242
|
+
moduleSpecifier: "@octaviaflow/web-components",
|
|
243
|
+
},
|
|
244
|
+
],
|
|
238
245
|
},
|
|
239
246
|
metadata: {
|
|
240
|
-
collectionMethod:
|
|
241
|
-
}
|
|
247
|
+
collectionMethod: "wc-analysis",
|
|
248
|
+
},
|
|
242
249
|
};
|
|
243
250
|
data.push(mockWcData);
|
|
244
251
|
if (this.options.verbose) {
|
|
245
|
-
console.log(
|
|
252
|
+
console.log("🌐 Web Component data collected");
|
|
246
253
|
}
|
|
247
254
|
}
|
|
248
255
|
catch (error) {
|
|
249
|
-
console.warn(
|
|
256
|
+
console.warn("⚠️ Failed to collect Web Component data:", error);
|
|
250
257
|
}
|
|
251
258
|
return data;
|
|
252
259
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-collector.js","sourceRoot":"","sources":["../../src/core/telemetry-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,EAAE,WAAW,EAAiB,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAQnE,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAkB;IACxB,OAAO,CAAmB;IAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"telemetry-collector.js","sourceRoot":"","sources":["../../src/core/telemetry-collector.ts"],"names":[],"mappings":"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"}
|