@databuddy/sdk 1.4.2 → 2.1.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,182 @@
1
+ import * as vue from 'vue';
2
+
3
+ declare const Databuddy: vue.DefineComponent<{
4
+ clientId?: {
5
+ type: StringConstructor;
6
+ required: false;
7
+ } | undefined;
8
+ clientSecret?: {
9
+ type: StringConstructor;
10
+ required: false;
11
+ } | undefined;
12
+ apiUrl?: {
13
+ type: StringConstructor;
14
+ required: false;
15
+ } | undefined;
16
+ scriptUrl?: {
17
+ type: StringConstructor;
18
+ required: false;
19
+ } | undefined;
20
+ sdk?: {
21
+ type: StringConstructor;
22
+ required: false;
23
+ } | undefined;
24
+ sdkVersion?: {
25
+ type: StringConstructor;
26
+ required: false;
27
+ } | undefined;
28
+ disabled?: {
29
+ type: BooleanConstructor;
30
+ required: false;
31
+ } | undefined;
32
+ waitForProfile?: {
33
+ type: BooleanConstructor;
34
+ required: false;
35
+ } | undefined;
36
+ trackScreenViews?: {
37
+ type: BooleanConstructor;
38
+ required: false;
39
+ } | undefined;
40
+ trackHashChanges?: {
41
+ type: BooleanConstructor;
42
+ required: false;
43
+ } | undefined;
44
+ trackSessions?: {
45
+ type: BooleanConstructor;
46
+ required: false;
47
+ } | undefined;
48
+ trackAttributes?: {
49
+ type: BooleanConstructor;
50
+ required: false;
51
+ } | undefined;
52
+ trackOutgoingLinks?: {
53
+ type: BooleanConstructor;
54
+ required: false;
55
+ } | undefined;
56
+ trackInteractions?: {
57
+ type: BooleanConstructor;
58
+ required: false;
59
+ } | undefined;
60
+ trackEngagement?: {
61
+ type: BooleanConstructor;
62
+ required: false;
63
+ } | undefined;
64
+ trackScrollDepth?: {
65
+ type: BooleanConstructor;
66
+ required: false;
67
+ } | undefined;
68
+ trackExitIntent?: {
69
+ type: BooleanConstructor;
70
+ required: false;
71
+ } | undefined;
72
+ trackBounceRate?: {
73
+ type: BooleanConstructor;
74
+ required: false;
75
+ } | undefined;
76
+ trackPerformance?: {
77
+ type: BooleanConstructor;
78
+ required: false;
79
+ } | undefined;
80
+ trackWebVitals?: {
81
+ type: BooleanConstructor;
82
+ required: false;
83
+ } | undefined;
84
+ trackErrors?: {
85
+ type: BooleanConstructor;
86
+ required: false;
87
+ } | undefined;
88
+ enableObservability?: {
89
+ type: BooleanConstructor;
90
+ required: false;
91
+ } | undefined;
92
+ observabilityService?: {
93
+ type: StringConstructor;
94
+ required: false;
95
+ } | undefined;
96
+ observabilityEnvironment?: {
97
+ type: StringConstructor;
98
+ required: false;
99
+ } | undefined;
100
+ observabilityVersion?: {
101
+ type: StringConstructor;
102
+ required: false;
103
+ } | undefined;
104
+ enableLogging?: {
105
+ type: BooleanConstructor;
106
+ required: false;
107
+ } | undefined;
108
+ enableTracing?: {
109
+ type: BooleanConstructor;
110
+ required: false;
111
+ } | undefined;
112
+ enableErrorTracking?: {
113
+ type: BooleanConstructor;
114
+ required: false;
115
+ } | undefined;
116
+ samplingRate?: {
117
+ type: NumberConstructor;
118
+ required: false;
119
+ } | undefined;
120
+ enableRetries?: {
121
+ type: BooleanConstructor;
122
+ required: false;
123
+ } | undefined;
124
+ maxRetries?: {
125
+ type: NumberConstructor;
126
+ required: false;
127
+ } | undefined;
128
+ initialRetryDelay?: {
129
+ type: NumberConstructor;
130
+ required: false;
131
+ } | undefined;
132
+ enableBatching?: {
133
+ type: BooleanConstructor;
134
+ required: false;
135
+ } | undefined;
136
+ batchSize?: {
137
+ type: NumberConstructor;
138
+ required: false;
139
+ } | undefined;
140
+ batchTimeout?: {
141
+ type: NumberConstructor;
142
+ required: false;
143
+ } | undefined;
144
+ }, () => null, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<{} & {
145
+ sdk?: string | undefined;
146
+ clientId?: string | undefined;
147
+ clientSecret?: string | undefined;
148
+ apiUrl?: string | undefined;
149
+ scriptUrl?: string | undefined;
150
+ sdkVersion?: string | undefined;
151
+ disabled?: boolean | undefined;
152
+ waitForProfile?: boolean | undefined;
153
+ trackScreenViews?: boolean | undefined;
154
+ trackHashChanges?: boolean | undefined;
155
+ trackSessions?: boolean | undefined;
156
+ trackAttributes?: boolean | undefined;
157
+ trackOutgoingLinks?: boolean | undefined;
158
+ trackInteractions?: boolean | undefined;
159
+ trackEngagement?: boolean | undefined;
160
+ trackScrollDepth?: boolean | undefined;
161
+ trackExitIntent?: boolean | undefined;
162
+ trackBounceRate?: boolean | undefined;
163
+ trackPerformance?: boolean | undefined;
164
+ trackWebVitals?: boolean | undefined;
165
+ trackErrors?: boolean | undefined;
166
+ enableObservability?: boolean | undefined;
167
+ observabilityService?: string | undefined;
168
+ observabilityEnvironment?: string | undefined;
169
+ observabilityVersion?: string | undefined;
170
+ enableLogging?: boolean | undefined;
171
+ enableTracing?: boolean | undefined;
172
+ enableErrorTracking?: boolean | undefined;
173
+ samplingRate?: number | undefined;
174
+ enableRetries?: boolean | undefined;
175
+ maxRetries?: number | undefined;
176
+ initialRetryDelay?: number | undefined;
177
+ enableBatching?: boolean | undefined;
178
+ batchSize?: number | undefined;
179
+ batchTimeout?: number | undefined;
180
+ }>, {}>;
181
+
182
+ export { Databuddy };
@@ -0,0 +1,40 @@
1
+ import { defineComponent, ref, onMounted, onUnmounted, watch } from 'vue';
2
+ import { i as isScriptInjected, c as createScript } from '../shared/@databuddy/sdk.CtTNAIIE.mjs';
3
+
4
+ const Databuddy = defineComponent({
5
+ props: {},
6
+ setup(props) {
7
+ const scriptRef = ref(null);
8
+ const injectScript = () => {
9
+ if (props.disabled || isScriptInjected()) {
10
+ return;
11
+ }
12
+ const script = createScript(props);
13
+ document.head.appendChild(script);
14
+ scriptRef.value = script;
15
+ };
16
+ const removeScript = () => {
17
+ if (scriptRef.value) {
18
+ scriptRef.value.remove();
19
+ scriptRef.value = null;
20
+ }
21
+ };
22
+ onMounted(() => {
23
+ injectScript();
24
+ });
25
+ onUnmounted(() => {
26
+ removeScript();
27
+ });
28
+ watch(
29
+ () => props,
30
+ () => {
31
+ removeScript();
32
+ injectScript();
33
+ },
34
+ { deep: true }
35
+ );
36
+ return () => null;
37
+ }
38
+ });
39
+
40
+ export { Databuddy };
package/package.json CHANGED
@@ -1,34 +1,58 @@
1
- {
2
- "name": "@databuddy/sdk",
3
- "version": "1.4.2",
4
- "main": "dist/index.js",
5
- "types": "dist/index.d.ts",
6
- "module": "dist/index.js",
7
- "devDependencies": {
8
- "@types/node": "^20.0.0",
9
- "typescript": "catalog:"
10
- },
11
- "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "import": "./dist/index.js",
15
- "require": "./dist/index.js",
16
- "default": "./dist/index.js"
17
- }
18
- },
19
- "description": "Official Databuddy Analytics SDK",
20
- "files": [
21
- "dist"
22
- ],
23
- "keywords": [
24
- "analytics",
25
- "tracking",
26
- "databuddy",
27
- "sdk"
28
- ],
29
- "license": "MIT",
30
- "private": false,
31
- "scripts": {
32
- "build": "tsc --project tsconfig.json"
33
- }
34
- }
1
+ {
2
+ "name": "@databuddy/sdk",
3
+ "version": "2.1.0",
4
+ "description": "Official Databuddy Analytics SDK",
5
+ "main": "./dist/core/index.mjs",
6
+ "types": "./dist/core/index.d.ts",
7
+ "license": "MIT",
8
+ "private": false,
9
+ "scripts": {
10
+ "build": "unbuild"
11
+ },
12
+ "devDependencies": {
13
+ "@types/node": "^20.0.0",
14
+ "@vitejs/plugin-react": "^5.0.0",
15
+ "react": "18.0.0",
16
+ "typescript": "catalog:",
17
+ "unbuild": "^3.6.1",
18
+ "vue": "3.0.0",
19
+ "vue-sfc-transformer": "^0.1.16"
20
+ },
21
+ "peerDependencies": {
22
+ "react": ">=18",
23
+ "vue": ">=3"
24
+ },
25
+ "peerDependenciesMeta": {
26
+ "react": {
27
+ "optional": true
28
+ },
29
+ "vue": {
30
+ "optional": true
31
+ }
32
+ },
33
+ "exports": {
34
+ ".": {
35
+ "types": "./dist/core/index.d.ts",
36
+ "import": "./dist/core/index.mjs"
37
+ },
38
+ "./react": {
39
+ "types": "./dist/react/index.d.ts",
40
+ "import": "./dist/react/index.mjs"
41
+ },
42
+ "./vue": {
43
+ "types": "./dist/vue/index.d.ts",
44
+ "import": "./dist/vue/index.mjs"
45
+ }
46
+ },
47
+ "files": [
48
+ "dist"
49
+ ],
50
+ "keywords": [
51
+ "analytics",
52
+ "tracking",
53
+ "databuddy",
54
+ "sdk",
55
+ "react",
56
+ "vue"
57
+ ]
58
+ }
@@ -1,8 +0,0 @@
1
- import type { DatabuddyConfig } from './types';
2
- /**
3
- * <Databuddy /> component for Next.js/React apps
4
- * Injects the databuddy.js script with all config as data attributes
5
- * Usage: <Databuddy clientId="..." trackScreenViews trackPerformance ... />
6
- */
7
- export declare function Databuddy(props: DatabuddyConfig): null;
8
- export default Databuddy;
package/dist/Databuddy.js DELETED
@@ -1,50 +0,0 @@
1
- 'use client';
2
- import { useEffect } from 'react';
3
- import pkg from '../package.json' with { type: 'json' };
4
- /**
5
- * <Databuddy /> component for Next.js/React apps
6
- * Injects the databuddy.js script with all config as data attributes
7
- * Usage: <Databuddy clientId="..." trackScreenViews trackPerformance ... />
8
- */
9
- export function Databuddy(props) {
10
- useEffect(() => {
11
- if (typeof window === 'undefined') {
12
- return;
13
- }
14
- if (props.disabled) {
15
- return;
16
- }
17
- if (document.querySelector('script[data-databuddy-injected]')) {
18
- return;
19
- }
20
- const script = document.createElement('script');
21
- script.src = props.scriptUrl || 'https://cdn.databuddy.cc/databuddy.js';
22
- script.async = true;
23
- script.crossOrigin = 'anonymous';
24
- script.setAttribute('data-databuddy-injected', 'true');
25
- // Always set sdkVersion from package.json unless explicitly overridden
26
- const sdkVersion = props.sdkVersion || pkg.version;
27
- script.setAttribute('data-sdk-version', sdkVersion);
28
- for (const [key, value] of Object.entries(props)) {
29
- if (value !== undefined && key !== 'sdkVersion') {
30
- const dataKey = `data-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;
31
- // Convert booleans and numbers to string for HTML attributes
32
- if (typeof value === 'boolean') {
33
- script.setAttribute(dataKey, value ? 'true' : 'false');
34
- }
35
- else if (typeof value === 'number') {
36
- script.setAttribute(dataKey, value.toString());
37
- }
38
- else {
39
- script.setAttribute(dataKey, String(value));
40
- }
41
- }
42
- }
43
- document.head.appendChild(script);
44
- return () => {
45
- script.remove();
46
- };
47
- }, [props]);
48
- return null;
49
- }
50
- export default Databuddy;
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './Databuddy';
2
- export * from './tracker';
3
- export * from './types';
package/dist/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from './Databuddy';
2
- export * from './tracker';
3
- export * from './types';
package/dist/tracker.d.ts DELETED
@@ -1,43 +0,0 @@
1
- /**
2
- * Databuddy SDK Client-side Tracker
3
- * Provides type-safe tracking functions
4
- */
5
- import type { DatabuddyTracker, TrackFunction } from './types';
6
- /**
7
- * Check if the Databuddy tracker is available
8
- */
9
- export declare function isTrackerAvailable(): boolean;
10
- /**
11
- * Get the Databuddy tracker instance
12
- */
13
- export declare function getTracker(): DatabuddyTracker | null;
14
- /**
15
- * Type-safe track function
16
- */
17
- export declare const track: TrackFunction;
18
- /**
19
- * Clear the current session
20
- */
21
- export declare function clear(): void;
22
- /**
23
- * Flush any queued events
24
- */
25
- export declare function flush(): void;
26
- /**
27
- * Track an error event
28
- */
29
- export declare function trackError(message: string, properties?: {
30
- filename?: string;
31
- lineno?: number;
32
- colno?: number;
33
- stack?: string;
34
- error_type?: string;
35
- [key: string]: any;
36
- }): Promise<void>;
37
- declare const _default: {
38
- track: TrackFunction;
39
- clear: typeof clear;
40
- flush: typeof flush;
41
- trackError: typeof trackError;
42
- };
43
- export default _default;
package/dist/tracker.js DELETED
@@ -1,83 +0,0 @@
1
- /**
2
- * Databuddy SDK Client-side Tracker
3
- * Provides type-safe tracking functions
4
- */
5
- /**
6
- * Check if the Databuddy tracker is available
7
- */
8
- export function isTrackerAvailable() {
9
- return typeof window !== 'undefined' && (!!window.databuddy || !!window.db);
10
- }
11
- /**
12
- * Get the Databuddy tracker instance
13
- */
14
- export function getTracker() {
15
- if (typeof window === 'undefined') {
16
- return null;
17
- }
18
- return window.databuddy || null;
19
- }
20
- /**
21
- * Type-safe track function
22
- */
23
- export const track = async (eventName, properties) => {
24
- var _a, _b;
25
- if (typeof window === 'undefined') {
26
- return;
27
- }
28
- // Try window.db first (shorthand), then window.databuddy
29
- const tracker = ((_a = window.db) === null || _a === void 0 ? void 0 : _a.track) || ((_b = window.databuddy) === null || _b === void 0 ? void 0 : _b.track);
30
- if (!tracker) {
31
- return;
32
- }
33
- try {
34
- await tracker(eventName, properties);
35
- }
36
- catch (_error) { }
37
- };
38
- /**
39
- * Clear the current session
40
- */
41
- export function clear() {
42
- var _a, _b;
43
- if (typeof window === 'undefined') {
44
- return;
45
- }
46
- const tracker = ((_a = window.db) === null || _a === void 0 ? void 0 : _a.clear) || ((_b = window.databuddy) === null || _b === void 0 ? void 0 : _b.clear);
47
- if (!tracker) {
48
- return;
49
- }
50
- try {
51
- tracker();
52
- }
53
- catch (_error) { }
54
- }
55
- /**
56
- * Flush any queued events
57
- */
58
- export function flush() {
59
- var _a, _b;
60
- if (typeof window === 'undefined') {
61
- return;
62
- }
63
- const tracker = ((_a = window.db) === null || _a === void 0 ? void 0 : _a.flush) || ((_b = window.databuddy) === null || _b === void 0 ? void 0 : _b.flush);
64
- if (!tracker) {
65
- return;
66
- }
67
- try {
68
- tracker();
69
- }
70
- catch (_error) { }
71
- }
72
- /**
73
- * Track an error event
74
- */
75
- export function trackError(message, properties) {
76
- return track('error', { message, ...properties });
77
- }
78
- export default {
79
- track,
80
- clear,
81
- flush,
82
- trackError,
83
- };
package/dist/types.js DELETED
@@ -1 +0,0 @@
1
- export {};