@octaviaflow/telemetry 1.1.1 → 1.1.2
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 +71 -19
- 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 +378 -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 +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 11/November/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
1
9
|
/**
|
|
2
10
|
* OctaviaFlow Telemetry Package
|
|
3
11
|
* Main entry point for telemetry collection and analytics
|
|
4
12
|
*/
|
|
5
|
-
export { TelemetryCollector } from
|
|
6
|
-
export { loadConfig } from
|
|
7
|
-
export type { TelemetryConfig } from
|
|
8
|
-
export { FileStorage } from
|
|
9
|
-
export { MongoDBStorage } from
|
|
10
|
-
export { ResilientStorage } from
|
|
11
|
-
export type { MongoDBStorageConfig, MongoDBCredentials } from
|
|
12
|
-
export { CredentialManager } from
|
|
13
|
-
export type { CredentialConfig } from
|
|
14
|
-
export { trackComponentUsage, trackFunctionUsage, disableTelemetry, isTelemetryEnabled, useTelemetry } from
|
|
15
|
-
export type { TelemetryData } from
|
|
13
|
+
export { TelemetryCollector } from "./core/telemetry-collector.js";
|
|
14
|
+
export { loadConfig } from "./config/config-loader.js";
|
|
15
|
+
export type { TelemetryConfig } from "./config/config-loader.js";
|
|
16
|
+
export { FileStorage } from "./storage/file-storage.js";
|
|
17
|
+
export { MongoDBStorage } from "./storage/mongodb-storage.js";
|
|
18
|
+
export { ResilientStorage } from "./storage/resilient-storage.js";
|
|
19
|
+
export type { MongoDBStorageConfig, MongoDBCredentials, } from "./storage/mongodb-storage.js";
|
|
20
|
+
export { CredentialManager } from "./config/credential-manager.js";
|
|
21
|
+
export type { CredentialConfig } from "./config/credential-manager.js";
|
|
22
|
+
export { trackComponentUsage, trackFunctionUsage, disableTelemetry, isTelemetryEnabled, useTelemetry, } from "./integrations/react-telemetry.js";
|
|
23
|
+
export type { TelemetryData } from "./storage/file-storage.js";
|
|
16
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EACV,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 11/November/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
1
9
|
/**
|
|
2
10
|
* OctaviaFlow Telemetry Package
|
|
3
11
|
* Main entry point for telemetry collection and analytics
|
|
4
12
|
*/
|
|
5
13
|
// Core exports
|
|
6
|
-
export { TelemetryCollector } from
|
|
7
|
-
export { loadConfig } from
|
|
14
|
+
export { TelemetryCollector } from "./core/telemetry-collector.js";
|
|
15
|
+
export { loadConfig } from "./config/config-loader.js";
|
|
8
16
|
// Storage exports
|
|
9
|
-
export { FileStorage } from
|
|
10
|
-
export { MongoDBStorage } from
|
|
11
|
-
export { ResilientStorage } from
|
|
17
|
+
export { FileStorage } from "./storage/file-storage.js";
|
|
18
|
+
export { MongoDBStorage } from "./storage/mongodb-storage.js";
|
|
19
|
+
export { ResilientStorage } from "./storage/resilient-storage.js";
|
|
12
20
|
// Credential management
|
|
13
|
-
export { CredentialManager } from
|
|
21
|
+
export { CredentialManager } from "./config/credential-manager.js";
|
|
14
22
|
// React integration (for published packages)
|
|
15
|
-
export { trackComponentUsage, trackFunctionUsage, disableTelemetry, isTelemetryEnabled, useTelemetry } from
|
|
23
|
+
export { trackComponentUsage, trackFunctionUsage, disableTelemetry, isTelemetryEnabled, useTelemetry, } from "./integrations/react-telemetry.js";
|
|
16
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AAEH,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAMlE,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,6CAA6C;AAC7C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 31/January/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=react-telemetry.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-telemetry.test.d.ts","sourceRoot":"","sources":["../../../src/integrations/__tests__/react-telemetry.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 31/January/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
10
|
+
import { trackComponentUsage, trackFunctionUsage, disableTelemetry, isTelemetryEnabled, } from "../react-telemetry.js";
|
|
11
|
+
describe("react-telemetry", () => {
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
vi.clearAllMocks();
|
|
14
|
+
delete process.env.OCTAVIAFLOW_TELEMETRY_DISABLED;
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
delete process.env.OCTAVIAFLOW_TELEMETRY_DISABLED;
|
|
18
|
+
});
|
|
19
|
+
describe("trackComponentUsage", () => {
|
|
20
|
+
it("should track component usage", async () => {
|
|
21
|
+
await expect(trackComponentUsage("Button", { variant: "primary", size: "large" })).resolves.not.toThrow();
|
|
22
|
+
});
|
|
23
|
+
it("should filter non-whitelisted props", async () => {
|
|
24
|
+
await expect(trackComponentUsage("Button", {
|
|
25
|
+
variant: "primary",
|
|
26
|
+
customProp: "value",
|
|
27
|
+
})).resolves.not.toThrow();
|
|
28
|
+
});
|
|
29
|
+
it("should filter non-whitelisted values", async () => {
|
|
30
|
+
await expect(trackComponentUsage("Button", { variant: "custom-variant" })).resolves.not.toThrow();
|
|
31
|
+
});
|
|
32
|
+
it("should handle empty props", async () => {
|
|
33
|
+
await expect(trackComponentUsage("Button", {})).resolves.not.toThrow();
|
|
34
|
+
});
|
|
35
|
+
it("should handle undefined props", async () => {
|
|
36
|
+
await expect(trackComponentUsage("Button")).resolves.not.toThrow();
|
|
37
|
+
});
|
|
38
|
+
it("should not throw on telemetry errors", async () => {
|
|
39
|
+
await expect(trackComponentUsage("Button", { variant: "primary" })).resolves.not.toThrow();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe("trackFunctionUsage", () => {
|
|
43
|
+
it("should track function usage", async () => {
|
|
44
|
+
await expect(trackFunctionUsage("formatDate", ["primary"])).resolves.not.toThrow();
|
|
45
|
+
});
|
|
46
|
+
it("should filter non-whitelisted arguments", async () => {
|
|
47
|
+
await expect(trackFunctionUsage("formatDate", ["custom-value"])).resolves.not.toThrow();
|
|
48
|
+
});
|
|
49
|
+
it("should handle empty arguments", async () => {
|
|
50
|
+
await expect(trackFunctionUsage("formatDate", [])).resolves.not.toThrow();
|
|
51
|
+
});
|
|
52
|
+
it("should handle undefined arguments", async () => {
|
|
53
|
+
await expect(trackFunctionUsage("formatDate")).resolves.not.toThrow();
|
|
54
|
+
});
|
|
55
|
+
it("should filter non-string arguments", async () => {
|
|
56
|
+
await expect(trackFunctionUsage("formatDate", [123, true, null])).resolves.not.toThrow();
|
|
57
|
+
});
|
|
58
|
+
it("should not throw on telemetry errors", async () => {
|
|
59
|
+
await expect(trackFunctionUsage("formatDate", ["primary"])).resolves.not.toThrow();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe("disableTelemetry", () => {
|
|
63
|
+
it("should disable telemetry", () => {
|
|
64
|
+
expect(isTelemetryEnabled()).toBe(true);
|
|
65
|
+
disableTelemetry();
|
|
66
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
it("should prevent tracking after disabling", async () => {
|
|
69
|
+
disableTelemetry();
|
|
70
|
+
await expect(trackComponentUsage("Button")).resolves.not.toThrow();
|
|
71
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe("isTelemetryEnabled", () => {
|
|
75
|
+
it("should return false by default in test environment", () => {
|
|
76
|
+
// In test environment, telemetry is disabled by default
|
|
77
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
78
|
+
});
|
|
79
|
+
it("should return false after disabling", () => {
|
|
80
|
+
disableTelemetry();
|
|
81
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe("Whitelisted values", () => {
|
|
85
|
+
it("should track whitelisted prop names", async () => {
|
|
86
|
+
const whitelistedProps = {
|
|
87
|
+
variant: "primary",
|
|
88
|
+
size: "large",
|
|
89
|
+
theme: "dark",
|
|
90
|
+
color: "secondary",
|
|
91
|
+
};
|
|
92
|
+
await expect(trackComponentUsage("Button", whitelistedProps)).resolves.not.toThrow();
|
|
93
|
+
});
|
|
94
|
+
it("should track whitelisted prop values", async () => {
|
|
95
|
+
const whitelistedValues = {
|
|
96
|
+
variant: "primary",
|
|
97
|
+
size: "small",
|
|
98
|
+
theme: "light",
|
|
99
|
+
};
|
|
100
|
+
await expect(trackComponentUsage("Button", whitelistedValues)).resolves.not.toThrow();
|
|
101
|
+
});
|
|
102
|
+
it("should filter mixed whitelisted and non-whitelisted", async () => {
|
|
103
|
+
const mixedProps = {
|
|
104
|
+
variant: "primary", // whitelisted
|
|
105
|
+
customProp: "value", // not whitelisted
|
|
106
|
+
size: "custom", // name whitelisted, value not
|
|
107
|
+
};
|
|
108
|
+
await expect(trackComponentUsage("Button", mixedProps)).resolves.not.toThrow();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe("Edge cases", () => {
|
|
112
|
+
it("should handle null props", async () => {
|
|
113
|
+
await expect(trackComponentUsage("Button", null)).resolves.not.toThrow();
|
|
114
|
+
});
|
|
115
|
+
it("should handle component name with special characters", async () => {
|
|
116
|
+
await expect(trackComponentUsage("Button@v2", { variant: "primary" })).resolves.not.toThrow();
|
|
117
|
+
});
|
|
118
|
+
it("should handle very long component names", async () => {
|
|
119
|
+
const longName = "Component" + "X".repeat(1000);
|
|
120
|
+
await expect(trackComponentUsage(longName, { variant: "primary" })).resolves.not.toThrow();
|
|
121
|
+
});
|
|
122
|
+
it("should handle empty component name", async () => {
|
|
123
|
+
await expect(trackComponentUsage("", { variant: "primary" })).resolves.not.toThrow();
|
|
124
|
+
});
|
|
125
|
+
it("should handle concurrent tracking calls", async () => {
|
|
126
|
+
const promises = [
|
|
127
|
+
trackComponentUsage("Button", { variant: "primary" }),
|
|
128
|
+
trackComponentUsage("Modal", { size: "large" }),
|
|
129
|
+
trackFunctionUsage("formatDate", ["primary"]),
|
|
130
|
+
];
|
|
131
|
+
await expect(Promise.all(promises)).resolves.not.toThrow();
|
|
132
|
+
});
|
|
133
|
+
it("should handle props with nested objects", async () => {
|
|
134
|
+
const nestedProps = {
|
|
135
|
+
variant: "primary",
|
|
136
|
+
nested: { deep: { value: "test" } },
|
|
137
|
+
};
|
|
138
|
+
await expect(trackComponentUsage("Button", nestedProps)).resolves.not.toThrow();
|
|
139
|
+
});
|
|
140
|
+
it("should handle props with arrays", async () => {
|
|
141
|
+
const arrayProps = {
|
|
142
|
+
variant: "primary",
|
|
143
|
+
items: ["a", "b", "c"],
|
|
144
|
+
};
|
|
145
|
+
await expect(trackComponentUsage("Button", arrayProps)).resolves.not.toThrow();
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
describe("Initialization", () => {
|
|
149
|
+
it("should not throw when tracking in test environment", async () => {
|
|
150
|
+
await expect(trackComponentUsage("Button", { variant: "primary" })).resolves.not.toThrow();
|
|
151
|
+
// Telemetry stays disabled in test environment
|
|
152
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
153
|
+
});
|
|
154
|
+
it("should handle multiple tracking calls", async () => {
|
|
155
|
+
await expect(trackComponentUsage("Button", { variant: "primary" })).resolves.not.toThrow();
|
|
156
|
+
await expect(trackComponentUsage("Modal", { size: "large" })).resolves.not.toThrow();
|
|
157
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
158
|
+
});
|
|
159
|
+
it("should not initialize if disabled", async () => {
|
|
160
|
+
disableTelemetry();
|
|
161
|
+
await trackComponentUsage("Button", { variant: "primary" });
|
|
162
|
+
expect(isTelemetryEnabled()).toBe(false);
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=react-telemetry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-telemetry.test.js","sourceRoot":"","sources":["../../../src/integrations/__tests__/react-telemetry.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 11/November/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
4
8
|
*/
|
|
5
9
|
/**
|
|
6
10
|
* Track component usage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-telemetry.d.ts","sourceRoot":"","sources":["../../src/integrations/react-telemetry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"react-telemetry.d.ts","sourceRoot":"","sources":["../../src/integrations/react-telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoFH;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,GAAG,EAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,QAWhC"}
|
|
@@ -1,38 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 11/November/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
1
9
|
/**
|
|
2
10
|
* React Telemetry Integration
|
|
3
11
|
* Provides simple hooks and utilities for collecting component usage analytics
|
|
4
12
|
*/
|
|
5
|
-
import { TelemetryCollector } from
|
|
13
|
+
import { TelemetryCollector } from "../index.js";
|
|
6
14
|
// Global telemetry collector instance
|
|
7
15
|
let globalCollector = null;
|
|
8
16
|
let telemetryDisabled = false;
|
|
9
17
|
// Default embedded configuration for published packages
|
|
10
18
|
const DEFAULT_CONFIG = {
|
|
11
19
|
version: 1,
|
|
12
|
-
projectId:
|
|
20
|
+
projectId: "octaviaflow-design-system",
|
|
13
21
|
storage: {
|
|
14
|
-
type:
|
|
22
|
+
type: "mongodb",
|
|
15
23
|
},
|
|
16
24
|
collect: {
|
|
17
25
|
jsx: {
|
|
18
26
|
elements: {
|
|
19
|
-
allowedAttributeNames: [
|
|
27
|
+
allowedAttributeNames: ["variant", "size", "theme", "color"],
|
|
20
28
|
allowedAttributeStringValues: [
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
"primary",
|
|
30
|
+
"secondary",
|
|
31
|
+
"danger",
|
|
32
|
+
"success",
|
|
33
|
+
"warning",
|
|
34
|
+
"small",
|
|
35
|
+
"medium",
|
|
36
|
+
"large",
|
|
37
|
+
"light",
|
|
38
|
+
"dark",
|
|
39
|
+
"auto",
|
|
40
|
+
],
|
|
41
|
+
},
|
|
26
42
|
},
|
|
27
43
|
js: {
|
|
28
44
|
functions: {
|
|
29
45
|
allowedArgumentStringValues: [
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
"light",
|
|
47
|
+
"dark",
|
|
48
|
+
"auto",
|
|
49
|
+
"primary",
|
|
50
|
+
"secondary",
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
36
55
|
};
|
|
37
56
|
/**
|
|
38
57
|
* Initialize telemetry collector
|
|
@@ -42,20 +61,21 @@ async function initializeTelemetry() {
|
|
|
42
61
|
return;
|
|
43
62
|
}
|
|
44
63
|
// Check for opt-out environment variable
|
|
45
|
-
if (typeof process !==
|
|
64
|
+
if (typeof process !== "undefined" &&
|
|
65
|
+
process.env?.OCTAVIAFLOW_TELEMETRY_DISABLED === "true") {
|
|
46
66
|
telemetryDisabled = true;
|
|
47
67
|
return;
|
|
48
68
|
}
|
|
49
69
|
try {
|
|
50
70
|
globalCollector = new TelemetryCollector(DEFAULT_CONFIG, {
|
|
51
71
|
verbose: false,
|
|
52
|
-
dryRun: false
|
|
72
|
+
dryRun: false,
|
|
53
73
|
});
|
|
54
74
|
}
|
|
55
75
|
catch (error) {
|
|
56
76
|
// Silently fail - never break user applications
|
|
57
|
-
if (process.env.NODE_ENV ===
|
|
58
|
-
console.warn(
|
|
77
|
+
if (process.env.NODE_ENV === "development") {
|
|
78
|
+
console.warn("OctaviaFlow telemetry initialization failed:", error);
|
|
59
79
|
}
|
|
60
80
|
}
|
|
61
81
|
}
|
|
@@ -74,7 +94,9 @@ export async function trackComponentUsage(componentName, props = {}) {
|
|
|
74
94
|
const allowedValues = DEFAULT_CONFIG.collect.jsx?.elements?.allowedAttributeStringValues || [];
|
|
75
95
|
const filteredProps = {};
|
|
76
96
|
for (const [key, value] of Object.entries(props)) {
|
|
77
|
-
if (allowedProps.includes(key) &&
|
|
97
|
+
if (allowedProps.includes(key) &&
|
|
98
|
+
typeof value === "string" &&
|
|
99
|
+
allowedValues.includes(value)) {
|
|
78
100
|
filteredProps[key] = value;
|
|
79
101
|
}
|
|
80
102
|
}
|
|
@@ -82,18 +104,18 @@ export async function trackComponentUsage(componentName, props = {}) {
|
|
|
82
104
|
const telemetryData = {
|
|
83
105
|
timestamp: new Date().toISOString(),
|
|
84
106
|
projectId: DEFAULT_CONFIG.projectId,
|
|
85
|
-
projectName:
|
|
86
|
-
projectVersion:
|
|
87
|
-
scope:
|
|
88
|
-
metric:
|
|
107
|
+
projectName: "OctaviaFlow Design System",
|
|
108
|
+
projectVersion: "1.0.0", // This should be dynamically set
|
|
109
|
+
scope: "jsx",
|
|
110
|
+
metric: "component_usage",
|
|
89
111
|
data: {
|
|
90
112
|
componentName,
|
|
91
|
-
...filteredProps
|
|
113
|
+
...filteredProps,
|
|
92
114
|
},
|
|
93
115
|
metadata: {
|
|
94
|
-
environment: process.env.NODE_ENV ||
|
|
95
|
-
nodeVersion: typeof process !==
|
|
96
|
-
}
|
|
116
|
+
environment: process.env.NODE_ENV || "unknown",
|
|
117
|
+
nodeVersion: typeof process !== "undefined" ? process.version : "unknown",
|
|
118
|
+
},
|
|
97
119
|
};
|
|
98
120
|
// Store telemetry data (non-blocking)
|
|
99
121
|
globalCollector.primaryStorage?.store(telemetryData).catch(() => {
|
|
@@ -102,8 +124,8 @@ export async function trackComponentUsage(componentName, props = {}) {
|
|
|
102
124
|
}
|
|
103
125
|
catch (error) {
|
|
104
126
|
// Never throw errors from telemetry
|
|
105
|
-
if (process.env.NODE_ENV ===
|
|
106
|
-
console.warn(
|
|
127
|
+
if (process.env.NODE_ENV === "development") {
|
|
128
|
+
console.warn("Component telemetry failed:", error);
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
131
|
}
|
|
@@ -119,30 +141,30 @@ export async function trackFunctionUsage(functionName, args = []) {
|
|
|
119
141
|
try {
|
|
120
142
|
const allowedValues = DEFAULT_CONFIG.collect.js?.functions?.allowedArgumentStringValues || [];
|
|
121
143
|
// Filter arguments to only allowed string values
|
|
122
|
-
const filteredArgs = args.filter(arg => typeof arg ===
|
|
144
|
+
const filteredArgs = args.filter((arg) => typeof arg === "string" && allowedValues.includes(arg));
|
|
123
145
|
const telemetryData = {
|
|
124
146
|
timestamp: new Date().toISOString(),
|
|
125
147
|
projectId: DEFAULT_CONFIG.projectId,
|
|
126
|
-
projectName:
|
|
127
|
-
projectVersion:
|
|
128
|
-
scope:
|
|
129
|
-
metric:
|
|
148
|
+
projectName: "OctaviaFlow Design System",
|
|
149
|
+
projectVersion: "1.0.0",
|
|
150
|
+
scope: "js",
|
|
151
|
+
metric: "function_usage",
|
|
130
152
|
data: {
|
|
131
153
|
functionName,
|
|
132
|
-
arguments: filteredArgs
|
|
154
|
+
arguments: filteredArgs,
|
|
133
155
|
},
|
|
134
156
|
metadata: {
|
|
135
|
-
environment: process.env.NODE_ENV ||
|
|
136
|
-
nodeVersion: typeof process !==
|
|
137
|
-
}
|
|
157
|
+
environment: process.env.NODE_ENV || "unknown",
|
|
158
|
+
nodeVersion: typeof process !== "undefined" ? process.version : "unknown",
|
|
159
|
+
},
|
|
138
160
|
};
|
|
139
161
|
globalCollector.primaryStorage?.store(telemetryData).catch(() => {
|
|
140
162
|
// Silently ignore telemetry failures
|
|
141
163
|
});
|
|
142
164
|
}
|
|
143
165
|
catch (error) {
|
|
144
|
-
if (process.env.NODE_ENV ===
|
|
145
|
-
console.warn(
|
|
166
|
+
if (process.env.NODE_ENV === "development") {
|
|
167
|
+
console.warn("Function telemetry failed:", error);
|
|
146
168
|
}
|
|
147
169
|
}
|
|
148
170
|
}
|
|
@@ -175,7 +197,7 @@ export function useTelemetry(componentName, props = {}) {
|
|
|
175
197
|
// React import (conditional for environments that have it)
|
|
176
198
|
let React;
|
|
177
199
|
try {
|
|
178
|
-
React = require(
|
|
200
|
+
React = require("react");
|
|
179
201
|
}
|
|
180
202
|
catch {
|
|
181
203
|
// React not available - hook won't work but other functions will
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-telemetry.js","sourceRoot":"","sources":["../../src/integrations/react-telemetry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAc,MAAM,aAAa,CAAC;AAG7D,sCAAsC;AACtC,IAAI,eAAe,GAA8B,IAAI,CAAC;AACtD,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,wDAAwD;AACxD,MAAM,cAAc,GAAoB;IACtC,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,2BAA2B;IACtC,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;KAChB;IACD,OAAO,EAAE;QACP,GAAG,EAAE;YACH,QAAQ,EAAE;gBACR,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;gBAC5D,4BAA4B,EAAE;oBAC5B,SAAS,
|
|
1
|
+
{"version":3,"file":"react-telemetry.js","sourceRoot":"","sources":["../../src/integrations/react-telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright OctaviaFlow
|
|
3
|
+
* Author: Vishal Kumar
|
|
4
|
+
* Created: 31/January/2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=file-storage.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-storage.test.d.ts","sourceRoot":"","sources":["../../../src/storage/__tests__/file-storage.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|