@armco/analytics 0.3.2 → 0.3.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/core/analytics.js +2 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +1 -1
- package/utils/region.d.ts +2 -0
- package/utils/region.js +34 -0
package/core/analytics.js
CHANGED
|
@@ -9,6 +9,7 @@ import { UserPlugin } from "../plugins/enrichment/user";
|
|
|
9
9
|
import { validateConfig, sanitizeEventData } from "../utils/validation";
|
|
10
10
|
import { createLogger } from "../utils/logging";
|
|
11
11
|
import { getEnvironmentType, isDoNotTrackEnabled, getTimestamp, deepMerge, } from "../utils/helpers";
|
|
12
|
+
import { ensureRegion } from "../utils/region";
|
|
12
13
|
import { resolveEndpoint, detectEnvironment } from "../utils/config-loader";
|
|
13
14
|
export class AnalyticsBuilder {
|
|
14
15
|
constructor() {
|
|
@@ -197,7 +198,7 @@ export class Analytics {
|
|
|
197
198
|
eventType,
|
|
198
199
|
timestamp: getTimestamp(),
|
|
199
200
|
eventId: uuidv4(),
|
|
200
|
-
data: sanitizeEventData(data || {}),
|
|
201
|
+
data: ensureRegion(sanitizeEventData(data || {})),
|
|
201
202
|
};
|
|
202
203
|
for (const plugin of this.plugins) {
|
|
203
204
|
if (plugin.processEvent) {
|
package/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export { validateConfig, validateUser, validatePageView, validateClickEvent, val
|
|
|
19
19
|
export { Logger, getLogger, createLogger } from "./utils/logging";
|
|
20
20
|
export { generateId, getEnvironmentType, getEnvironment, isDoNotTrackEnabled, isBrowser, areCookiesAvailable, isLocalStorageAvailable, debounce, throttle, deepClone, deepMerge, } from "./utils/helpers";
|
|
21
21
|
export { loadConfigFromFile, loadConfig, detectEnvironment, checkEndpointHealth, resolveEndpoint } from "./utils/config-loader";
|
|
22
|
+
export { getRegionFallback, ensureRegion } from "./utils/region";
|
|
22
23
|
import { AnalyticsBuilder as Builder } from "./core/analytics";
|
|
23
24
|
export declare function createAnalytics(): Builder;
|
|
24
25
|
export default Builder;
|
package/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export { validateConfig, validateUser, validatePageView, validateClickEvent, val
|
|
|
17
17
|
export { Logger, getLogger, createLogger } from "./utils/logging";
|
|
18
18
|
export { generateId, getEnvironmentType, getEnvironment, isDoNotTrackEnabled, isBrowser, areCookiesAvailable, isLocalStorageAvailable, debounce, throttle, deepClone, deepMerge, } from "./utils/helpers";
|
|
19
19
|
export { loadConfigFromFile, loadConfig, detectEnvironment, checkEndpointHealth, resolveEndpoint } from "./utils/config-loader";
|
|
20
|
+
export { getRegionFallback, ensureRegion } from "./utils/region";
|
|
20
21
|
import { AnalyticsBuilder as Builder } from "./core/analytics";
|
|
21
22
|
export function createAnalytics() {
|
|
22
23
|
return new Builder();
|
package/package.json
CHANGED
package/utils/region.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getEnvironmentType } from "./helpers";
|
|
2
|
+
import { detectEnvironment } from "./config-loader";
|
|
3
|
+
export function getRegionFallback() {
|
|
4
|
+
const envType = getEnvironmentType();
|
|
5
|
+
if (envType === "node") {
|
|
6
|
+
const explicit = process.env.ANALYTICS_REGION ||
|
|
7
|
+
process.env.REGION ||
|
|
8
|
+
process.env.AWS_REGION ||
|
|
9
|
+
process.env.AWS_DEFAULT_REGION;
|
|
10
|
+
if (explicit && explicit.trim().length > 0) {
|
|
11
|
+
return explicit.trim();
|
|
12
|
+
}
|
|
13
|
+
const currentEnv = detectEnvironment();
|
|
14
|
+
return currentEnv === "development" || currentEnv === "local"
|
|
15
|
+
? "local"
|
|
16
|
+
: "unknown";
|
|
17
|
+
}
|
|
18
|
+
if (envType === "browser") {
|
|
19
|
+
const win = window;
|
|
20
|
+
if (win.__ANALYTICS_REGION__ && typeof win.__ANALYTICS_REGION__ === "string") {
|
|
21
|
+
return win.__ANALYTICS_REGION__;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return "unknown";
|
|
25
|
+
}
|
|
26
|
+
export function ensureRegion(data) {
|
|
27
|
+
if (data.region && typeof data.region === "string" && data.region.trim().length > 0) {
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
...data,
|
|
32
|
+
region: getRegionFallback(),
|
|
33
|
+
};
|
|
34
|
+
}
|