@mondaydotcomorg/z2h-shared-utils 0.2.0
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/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/observability/httpTracker.d.ts +11 -0
- package/dist/esm/observability/httpTracker.d.ts.map +1 -0
- package/dist/esm/observability/httpTracker.mjs +16 -0
- package/dist/esm/observability/index.d.ts +4 -0
- package/dist/esm/observability/index.d.ts.map +1 -0
- package/dist/esm/observability/index.mjs +2 -0
- package/dist/esm/observability/tracker.d.ts +7 -0
- package/dist/esm/observability/tracker.d.ts.map +1 -0
- package/dist/esm/observability/tracker.mjs +25 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/observability/httpTracker.d.ts +11 -0
- package/dist/observability/httpTracker.d.ts.map +1 -0
- package/dist/observability/httpTracker.js +18 -0
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +9 -0
- package/dist/observability/tracker.d.ts +7 -0
- package/dist/observability/tracker.d.ts.map +1 -0
- package/dist/observability/tracker.js +27 -0
- package/package.json +53 -0
- package/src/index.ts +1 -0
- package/src/observability/httpTracker.ts +20 -0
- package/src/observability/index.ts +3 -0
- package/src/observability/tracker.ts +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface HttpTrackerDeps {
|
|
2
|
+
url: string;
|
|
3
|
+
source: string;
|
|
4
|
+
getContext: () => Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* For standalone processes not running inside the Trident runtime (e.g. CLIs) — posts events
|
|
8
|
+
* over HTTP instead. Errors (network, timeout) are swallowed so tracking never fails the caller.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createHttpTracker(deps: HttpTrackerDeps): (name: string, data: Record<string, unknown>) => Promise<void>;
|
|
11
|
+
//# sourceMappingURL=httpTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpTracker.d.ts","sourceRoot":"","sources":["../../../src/observability/httpTracker.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,IACpB,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ7F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* For standalone processes not running inside the Trident runtime (e.g. CLIs) — posts events
|
|
3
|
+
* over HTTP instead. Errors (network, timeout) are swallowed so tracking never fails the caller.
|
|
4
|
+
*/
|
|
5
|
+
function createHttpTracker(deps) {
|
|
6
|
+
return async function trackEvent(name, data) {
|
|
7
|
+
await fetch(deps.url, {
|
|
8
|
+
method: 'POST',
|
|
9
|
+
headers: { 'Content-Type': 'application/json' },
|
|
10
|
+
body: JSON.stringify({ name, source: deps.source, data: { ...deps.getContext(), ...data } }),
|
|
11
|
+
signal: AbortSignal.timeout(5000),
|
|
12
|
+
}).catch(() => { });
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { createHttpTracker };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends a BI event via the Trident runtime's bigbrain tracker, auto-attaching the current user.
|
|
3
|
+
* No-ops (with a warning) if `Runtime.init()` hasn't run yet — use `createHttpTracker` for
|
|
4
|
+
* standalone processes (e.g. CLIs) that never bootstrap the Trident runtime.
|
|
5
|
+
*/
|
|
6
|
+
export declare function trackEvent(name: string, data: Record<string, unknown>, source: string): void;
|
|
7
|
+
//# sourceMappingURL=tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../../src/observability/tracker.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU5F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Api } from '@mondaydotcomorg/trident-backend-api';
|
|
2
|
+
|
|
3
|
+
function getUserContext() {
|
|
4
|
+
const user = Api.getPart('context')?.execution.get()?.user;
|
|
5
|
+
if (!user) {
|
|
6
|
+
return {};
|
|
7
|
+
}
|
|
8
|
+
return { user_name: user.name };
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Sends a BI event via the Trident runtime's bigbrain tracker, auto-attaching the current user.
|
|
12
|
+
* No-ops (with a warning) if `Runtime.init()` hasn't run yet — use `createHttpTracker` for
|
|
13
|
+
* standalone processes (e.g. CLIs) that never bootstrap the Trident runtime.
|
|
14
|
+
*/
|
|
15
|
+
function trackEvent(name, data, source) {
|
|
16
|
+
const sendBiEvent = Api.getPart('bigbrain')?.tracker?.sendBiEvent;
|
|
17
|
+
if (!sendBiEvent) {
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
console.warn('[z2h-shared-utils] trackEvent: bigbrain API part unavailable, was Runtime.init() called? Dropping event.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
sendBiEvent({ name, source, data: { ...getUserContext(), ...data } });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { trackEvent };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
const observability_tracker = require('./observability/tracker.js');
|
|
4
|
+
const observability_httpTracker = require('./observability/httpTracker.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.trackEvent = observability_tracker.trackEvent;
|
|
9
|
+
exports.createHttpTracker = observability_httpTracker.createHttpTracker;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface HttpTrackerDeps {
|
|
2
|
+
url: string;
|
|
3
|
+
source: string;
|
|
4
|
+
getContext: () => Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* For standalone processes not running inside the Trident runtime (e.g. CLIs) — posts events
|
|
8
|
+
* over HTTP instead. Errors (network, timeout) are swallowed so tracking never fails the caller.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createHttpTracker(deps: HttpTrackerDeps): (name: string, data: Record<string, unknown>) => Promise<void>;
|
|
11
|
+
//# sourceMappingURL=httpTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpTracker.d.ts","sourceRoot":"","sources":["../../src/observability/httpTracker.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,IACpB,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ7F"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* For standalone processes not running inside the Trident runtime (e.g. CLIs) — posts events
|
|
5
|
+
* over HTTP instead. Errors (network, timeout) are swallowed so tracking never fails the caller.
|
|
6
|
+
*/
|
|
7
|
+
function createHttpTracker(deps) {
|
|
8
|
+
return async function trackEvent(name, data) {
|
|
9
|
+
await fetch(deps.url, {
|
|
10
|
+
method: 'POST',
|
|
11
|
+
headers: { 'Content-Type': 'application/json' },
|
|
12
|
+
body: JSON.stringify({ name, source: deps.source, data: { ...deps.getContext(), ...data } }),
|
|
13
|
+
signal: AbortSignal.timeout(5000),
|
|
14
|
+
}).catch(() => { });
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.createHttpTracker = createHttpTracker;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
const observability_tracker = require('./tracker.js');
|
|
4
|
+
const observability_httpTracker = require('./httpTracker.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.trackEvent = observability_tracker.trackEvent;
|
|
9
|
+
exports.createHttpTracker = observability_httpTracker.createHttpTracker;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends a BI event via the Trident runtime's bigbrain tracker, auto-attaching the current user.
|
|
3
|
+
* No-ops (with a warning) if `Runtime.init()` hasn't run yet — use `createHttpTracker` for
|
|
4
|
+
* standalone processes (e.g. CLIs) that never bootstrap the Trident runtime.
|
|
5
|
+
*/
|
|
6
|
+
export declare function trackEvent(name: string, data: Record<string, unknown>, source: string): void;
|
|
7
|
+
//# sourceMappingURL=tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/observability/tracker.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU5F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
const tridentBackendApi = require('@mondaydotcomorg/trident-backend-api');
|
|
4
|
+
|
|
5
|
+
function getUserContext() {
|
|
6
|
+
const user = tridentBackendApi.Api.getPart('context')?.execution.get()?.user;
|
|
7
|
+
if (!user) {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
return { user_name: user.name };
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Sends a BI event via the Trident runtime's bigbrain tracker, auto-attaching the current user.
|
|
14
|
+
* No-ops (with a warning) if `Runtime.init()` hasn't run yet — use `createHttpTracker` for
|
|
15
|
+
* standalone processes (e.g. CLIs) that never bootstrap the Trident runtime.
|
|
16
|
+
*/
|
|
17
|
+
function trackEvent(name, data, source) {
|
|
18
|
+
const sendBiEvent = tridentBackendApi.Api.getPart('bigbrain')?.tracker?.sendBiEvent;
|
|
19
|
+
if (!sendBiEvent) {
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.warn('[z2h-shared-utils] trackEvent: bigbrain API part unavailable, was Runtime.init() called? Dropping event.');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
sendBiEvent({ name, source, data: { ...getUserContext(), ...data } });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.trackEvent = trackEvent;
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mondaydotcomorg/z2h-shared-utils",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./dist/esm/index.mjs",
|
|
9
|
+
"require": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts"
|
|
11
|
+
},
|
|
12
|
+
"./package.json": "./package.json"
|
|
13
|
+
},
|
|
14
|
+
"nx": {
|
|
15
|
+
"name": "z2h-shared-utils",
|
|
16
|
+
"tags": [
|
|
17
|
+
"type:package",
|
|
18
|
+
"package"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "trident-library build",
|
|
23
|
+
"watch": "trident-library build -w",
|
|
24
|
+
"lint": "trident-library lint"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist/",
|
|
28
|
+
"src/"
|
|
29
|
+
],
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"@mondaydotcomorg/trident-backend-api": "^0.24.3"
|
|
32
|
+
},
|
|
33
|
+
"peerDependenciesMeta": {
|
|
34
|
+
"@mondaydotcomorg/trident-backend-api": {
|
|
35
|
+
"optional": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@mondaydotcomorg/bigbrain-types": "^0.3.4",
|
|
40
|
+
"@mondaydotcomorg/trident-backend-api": "^0.24.3",
|
|
41
|
+
"@mondaydotcomorg/trident-library": "^1.2.7",
|
|
42
|
+
"@types/node": "^22.19.0",
|
|
43
|
+
"typescript": "^5.7.2"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=24"
|
|
47
|
+
},
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "https://github.com/DaPulse/bigbrain-z2h.git",
|
|
51
|
+
"directory": "packages/z2h-shared-utils"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './observability';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface HttpTrackerDeps {
|
|
2
|
+
url: string;
|
|
3
|
+
source: string;
|
|
4
|
+
getContext: () => Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* For standalone processes not running inside the Trident runtime (e.g. CLIs) — posts events
|
|
9
|
+
* over HTTP instead. Errors (network, timeout) are swallowed so tracking never fails the caller.
|
|
10
|
+
*/
|
|
11
|
+
export function createHttpTracker(deps: HttpTrackerDeps) {
|
|
12
|
+
return async function trackEvent(name: string, data: Record<string, unknown>): Promise<void> {
|
|
13
|
+
await fetch(deps.url, {
|
|
14
|
+
method: 'POST',
|
|
15
|
+
headers: { 'Content-Type': 'application/json' },
|
|
16
|
+
body: JSON.stringify({ name, source: deps.source, data: { ...deps.getContext(), ...data } }),
|
|
17
|
+
signal: AbortSignal.timeout(5000),
|
|
18
|
+
}).catch(() => {});
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Api } from '@mondaydotcomorg/trident-backend-api';
|
|
2
|
+
import type { RawUser } from '@mondaydotcomorg/bigbrain-types';
|
|
3
|
+
|
|
4
|
+
function getUserContext(): { user_name?: string } {
|
|
5
|
+
const user = Api.getPart('context')?.execution.get()?.user as RawUser | undefined;
|
|
6
|
+
if (!user) {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
return { user_name: user.name };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Sends a BI event via the Trident runtime's bigbrain tracker, auto-attaching the current user.
|
|
14
|
+
* No-ops (with a warning) if `Runtime.init()` hasn't run yet — use `createHttpTracker` for
|
|
15
|
+
* standalone processes (e.g. CLIs) that never bootstrap the Trident runtime.
|
|
16
|
+
*/
|
|
17
|
+
export function trackEvent(name: string, data: Record<string, unknown>, source: string): void {
|
|
18
|
+
const sendBiEvent = Api.getPart('bigbrain')?.tracker?.sendBiEvent;
|
|
19
|
+
if (!sendBiEvent) {
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.warn(
|
|
22
|
+
'[z2h-shared-utils] trackEvent: bigbrain API part unavailable, was Runtime.init() called? Dropping event.'
|
|
23
|
+
);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
sendBiEvent({ name, source, data: { ...getUserContext(), ...data } });
|
|
27
|
+
}
|