@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.
@@ -0,0 +1,2 @@
1
+ export * from './observability';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { trackEvent } from './observability/tracker.mjs';
2
+ export { createHttpTracker } from './observability/httpTracker.mjs';
@@ -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,4 @@
1
+ export { trackEvent } from './tracker';
2
+ export { createHttpTracker } from './httpTracker';
3
+ export type { HttpTrackerDeps } from './httpTracker';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { trackEvent } from './tracker.mjs';
2
+ export { createHttpTracker } from './httpTracker.mjs';
@@ -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 };
@@ -0,0 +1,2 @@
1
+ export * from './observability';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ export { trackEvent } from './tracker';
2
+ export { createHttpTracker } from './httpTracker';
3
+ export type { HttpTrackerDeps } from './httpTracker';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export { trackEvent } from './tracker';
2
+ export { createHttpTracker } from './httpTracker';
3
+ export type { HttpTrackerDeps } from './httpTracker';
@@ -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
+ }