@databuddy/sdk 2.1.76 → 2.1.78

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.
@@ -1,197 +1,36 @@
1
- import * as vue from 'vue';
1
+ import { App, ComputedRef } from 'vue';
2
+ import { d as FlagsConfig, c as FlagState, b as FlagResult } from '../shared/@databuddy/sdk.YfiY9DoZ.mjs';
3
+ export { e as FlagsContext } from '../shared/@databuddy/sdk.YfiY9DoZ.mjs';
2
4
 
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
- debug?: {
33
- type: BooleanConstructor;
34
- required: false;
35
- } | undefined;
36
- waitForProfile?: {
37
- type: BooleanConstructor;
38
- required: false;
39
- } | undefined;
40
- trackScreenViews?: {
41
- type: BooleanConstructor;
42
- required: false;
43
- } | undefined;
44
- trackHashChanges?: {
45
- type: BooleanConstructor;
46
- required: false;
47
- } | undefined;
48
- trackSessions?: {
49
- type: BooleanConstructor;
50
- required: false;
51
- } | undefined;
52
- trackAttributes?: {
53
- type: BooleanConstructor;
54
- required: false;
55
- } | undefined;
56
- trackOutgoingLinks?: {
57
- type: BooleanConstructor;
58
- required: false;
59
- } | undefined;
60
- trackInteractions?: {
61
- type: BooleanConstructor;
62
- required: false;
63
- } | undefined;
64
- trackEngagement?: {
65
- type: BooleanConstructor;
66
- required: false;
67
- } | undefined;
68
- trackScrollDepth?: {
69
- type: BooleanConstructor;
70
- required: false;
71
- } | undefined;
72
- trackExitIntent?: {
73
- type: BooleanConstructor;
74
- required: false;
75
- } | undefined;
76
- trackBounceRate?: {
77
- type: BooleanConstructor;
78
- required: false;
79
- } | undefined;
80
- trackPerformance?: {
81
- type: BooleanConstructor;
82
- required: false;
83
- } | undefined;
84
- trackWebVitals?: {
85
- type: BooleanConstructor;
86
- required: false;
87
- } | undefined;
88
- trackErrors?: {
89
- type: BooleanConstructor;
90
- required: false;
91
- } | undefined;
92
- enableObservability?: {
93
- type: BooleanConstructor;
94
- required: false;
95
- } | undefined;
96
- observabilityService?: {
97
- type: StringConstructor;
98
- required: false;
99
- } | undefined;
100
- observabilityEnvironment?: {
101
- type: StringConstructor;
102
- required: false;
103
- } | undefined;
104
- observabilityVersion?: {
105
- type: StringConstructor;
106
- required: false;
107
- } | undefined;
108
- enableLogging?: {
109
- type: BooleanConstructor;
110
- required: false;
111
- } | undefined;
112
- enableTracing?: {
113
- type: BooleanConstructor;
114
- required: false;
115
- } | undefined;
116
- enableErrorTracking?: {
117
- type: BooleanConstructor;
118
- required: false;
119
- } | undefined;
120
- samplingRate?: {
121
- type: NumberConstructor;
122
- required: false;
123
- } | undefined;
124
- enableRetries?: {
125
- type: BooleanConstructor;
126
- required: false;
127
- } | undefined;
128
- maxRetries?: {
129
- type: NumberConstructor;
130
- required: false;
131
- } | undefined;
132
- initialRetryDelay?: {
133
- type: NumberConstructor;
134
- required: false;
135
- } | undefined;
136
- enableBatching?: {
137
- type: BooleanConstructor;
138
- required: false;
139
- } | undefined;
140
- batchSize?: {
141
- type: NumberConstructor;
142
- required: false;
143
- } | undefined;
144
- batchTimeout?: {
145
- type: NumberConstructor;
146
- required: false;
147
- } | undefined;
148
- skipPatterns?: {
149
- type: never;
150
- required: false;
151
- } | undefined;
152
- maskPatterns?: {
153
- type: never;
154
- required: false;
155
- } | undefined;
156
- }, () => null, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<{} & {
157
- sdk?: string | undefined;
158
- clientId?: string | undefined;
159
- clientSecret?: string | undefined;
160
- apiUrl?: string | undefined;
161
- scriptUrl?: string | undefined;
162
- sdkVersion?: string | undefined;
163
- disabled?: boolean | undefined;
164
- debug?: boolean | undefined;
165
- waitForProfile?: boolean | undefined;
166
- trackScreenViews?: boolean | undefined;
167
- trackHashChanges?: boolean | undefined;
168
- trackSessions?: boolean | undefined;
169
- trackAttributes?: boolean | undefined;
170
- trackOutgoingLinks?: boolean | undefined;
171
- trackInteractions?: boolean | undefined;
172
- trackEngagement?: boolean | undefined;
173
- trackScrollDepth?: boolean | undefined;
174
- trackExitIntent?: boolean | undefined;
175
- trackBounceRate?: boolean | undefined;
176
- trackPerformance?: boolean | undefined;
177
- trackWebVitals?: boolean | undefined;
178
- trackErrors?: boolean | undefined;
179
- enableObservability?: boolean | undefined;
180
- observabilityService?: string | undefined;
181
- observabilityEnvironment?: string | undefined;
182
- observabilityVersion?: string | undefined;
183
- enableLogging?: boolean | undefined;
184
- enableTracing?: boolean | undefined;
185
- enableErrorTracking?: boolean | undefined;
186
- samplingRate?: number | undefined;
187
- enableRetries?: boolean | undefined;
188
- maxRetries?: number | undefined;
189
- initialRetryDelay?: number | undefined;
190
- enableBatching?: boolean | undefined;
191
- batchSize?: number | undefined;
192
- batchTimeout?: number | undefined;
193
- skipPatterns?: any;
194
- maskPatterns?: any;
195
- }>, {}>;
5
+ declare const Databuddy: any;
196
6
 
197
- export { Databuddy };
7
+ interface FlagsPluginOptions extends FlagsConfig {
8
+ }
9
+ declare function createFlagsPlugin(options: FlagsPluginOptions): {
10
+ install(app: App): void;
11
+ };
12
+ declare function useFlags(): {
13
+ isEnabled: (key: string) => FlagState;
14
+ fetchAllFlags: () => Promise<void>;
15
+ updateUser: (user: FlagsConfig["user"]) => void;
16
+ refresh: (forceClear?: boolean) => void;
17
+ updateConfig: (config: FlagsConfig) => void;
18
+ memoryFlags: Record<string, FlagResult>;
19
+ };
20
+
21
+ interface UseFlagReturn {
22
+ enabled: ComputedRef<boolean>;
23
+ isLoading: ComputedRef<boolean>;
24
+ isReady: ComputedRef<boolean>;
25
+ state: ComputedRef<FlagState>;
26
+ }
27
+ /**
28
+ * Vue composable for individual flag usage with reactivity
29
+ */
30
+ declare function useFlag(key: string): UseFlagReturn;
31
+ /**
32
+ * Vue composable for boolean flag checking
33
+ */
34
+ declare function useBooleanFlag(key: string): ComputedRef<boolean>;
35
+
36
+ export { Databuddy, FlagResult, FlagState, FlagsConfig, createFlagsPlugin, useBooleanFlag, useFlag, useFlags };
@@ -1,197 +1,36 @@
1
- import * as vue from 'vue';
1
+ import { App, ComputedRef } from 'vue';
2
+ import { d as FlagsConfig, c as FlagState, b as FlagResult } from '../shared/@databuddy/sdk.YfiY9DoZ.js';
3
+ export { e as FlagsContext } from '../shared/@databuddy/sdk.YfiY9DoZ.js';
2
4
 
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
- debug?: {
33
- type: BooleanConstructor;
34
- required: false;
35
- } | undefined;
36
- waitForProfile?: {
37
- type: BooleanConstructor;
38
- required: false;
39
- } | undefined;
40
- trackScreenViews?: {
41
- type: BooleanConstructor;
42
- required: false;
43
- } | undefined;
44
- trackHashChanges?: {
45
- type: BooleanConstructor;
46
- required: false;
47
- } | undefined;
48
- trackSessions?: {
49
- type: BooleanConstructor;
50
- required: false;
51
- } | undefined;
52
- trackAttributes?: {
53
- type: BooleanConstructor;
54
- required: false;
55
- } | undefined;
56
- trackOutgoingLinks?: {
57
- type: BooleanConstructor;
58
- required: false;
59
- } | undefined;
60
- trackInteractions?: {
61
- type: BooleanConstructor;
62
- required: false;
63
- } | undefined;
64
- trackEngagement?: {
65
- type: BooleanConstructor;
66
- required: false;
67
- } | undefined;
68
- trackScrollDepth?: {
69
- type: BooleanConstructor;
70
- required: false;
71
- } | undefined;
72
- trackExitIntent?: {
73
- type: BooleanConstructor;
74
- required: false;
75
- } | undefined;
76
- trackBounceRate?: {
77
- type: BooleanConstructor;
78
- required: false;
79
- } | undefined;
80
- trackPerformance?: {
81
- type: BooleanConstructor;
82
- required: false;
83
- } | undefined;
84
- trackWebVitals?: {
85
- type: BooleanConstructor;
86
- required: false;
87
- } | undefined;
88
- trackErrors?: {
89
- type: BooleanConstructor;
90
- required: false;
91
- } | undefined;
92
- enableObservability?: {
93
- type: BooleanConstructor;
94
- required: false;
95
- } | undefined;
96
- observabilityService?: {
97
- type: StringConstructor;
98
- required: false;
99
- } | undefined;
100
- observabilityEnvironment?: {
101
- type: StringConstructor;
102
- required: false;
103
- } | undefined;
104
- observabilityVersion?: {
105
- type: StringConstructor;
106
- required: false;
107
- } | undefined;
108
- enableLogging?: {
109
- type: BooleanConstructor;
110
- required: false;
111
- } | undefined;
112
- enableTracing?: {
113
- type: BooleanConstructor;
114
- required: false;
115
- } | undefined;
116
- enableErrorTracking?: {
117
- type: BooleanConstructor;
118
- required: false;
119
- } | undefined;
120
- samplingRate?: {
121
- type: NumberConstructor;
122
- required: false;
123
- } | undefined;
124
- enableRetries?: {
125
- type: BooleanConstructor;
126
- required: false;
127
- } | undefined;
128
- maxRetries?: {
129
- type: NumberConstructor;
130
- required: false;
131
- } | undefined;
132
- initialRetryDelay?: {
133
- type: NumberConstructor;
134
- required: false;
135
- } | undefined;
136
- enableBatching?: {
137
- type: BooleanConstructor;
138
- required: false;
139
- } | undefined;
140
- batchSize?: {
141
- type: NumberConstructor;
142
- required: false;
143
- } | undefined;
144
- batchTimeout?: {
145
- type: NumberConstructor;
146
- required: false;
147
- } | undefined;
148
- skipPatterns?: {
149
- type: never;
150
- required: false;
151
- } | undefined;
152
- maskPatterns?: {
153
- type: never;
154
- required: false;
155
- } | undefined;
156
- }, () => null, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<{} & {
157
- sdk?: string | undefined;
158
- clientId?: string | undefined;
159
- clientSecret?: string | undefined;
160
- apiUrl?: string | undefined;
161
- scriptUrl?: string | undefined;
162
- sdkVersion?: string | undefined;
163
- disabled?: boolean | undefined;
164
- debug?: boolean | undefined;
165
- waitForProfile?: boolean | undefined;
166
- trackScreenViews?: boolean | undefined;
167
- trackHashChanges?: boolean | undefined;
168
- trackSessions?: boolean | undefined;
169
- trackAttributes?: boolean | undefined;
170
- trackOutgoingLinks?: boolean | undefined;
171
- trackInteractions?: boolean | undefined;
172
- trackEngagement?: boolean | undefined;
173
- trackScrollDepth?: boolean | undefined;
174
- trackExitIntent?: boolean | undefined;
175
- trackBounceRate?: boolean | undefined;
176
- trackPerformance?: boolean | undefined;
177
- trackWebVitals?: boolean | undefined;
178
- trackErrors?: boolean | undefined;
179
- enableObservability?: boolean | undefined;
180
- observabilityService?: string | undefined;
181
- observabilityEnvironment?: string | undefined;
182
- observabilityVersion?: string | undefined;
183
- enableLogging?: boolean | undefined;
184
- enableTracing?: boolean | undefined;
185
- enableErrorTracking?: boolean | undefined;
186
- samplingRate?: number | undefined;
187
- enableRetries?: boolean | undefined;
188
- maxRetries?: number | undefined;
189
- initialRetryDelay?: number | undefined;
190
- enableBatching?: boolean | undefined;
191
- batchSize?: number | undefined;
192
- batchTimeout?: number | undefined;
193
- skipPatterns?: any;
194
- maskPatterns?: any;
195
- }>, {}>;
5
+ declare const Databuddy: any;
196
6
 
197
- export { Databuddy };
7
+ interface FlagsPluginOptions extends FlagsConfig {
8
+ }
9
+ declare function createFlagsPlugin(options: FlagsPluginOptions): {
10
+ install(app: App): void;
11
+ };
12
+ declare function useFlags(): {
13
+ isEnabled: (key: string) => FlagState;
14
+ fetchAllFlags: () => Promise<void>;
15
+ updateUser: (user: FlagsConfig["user"]) => void;
16
+ refresh: (forceClear?: boolean) => void;
17
+ updateConfig: (config: FlagsConfig) => void;
18
+ memoryFlags: Record<string, FlagResult>;
19
+ };
20
+
21
+ interface UseFlagReturn {
22
+ enabled: ComputedRef<boolean>;
23
+ isLoading: ComputedRef<boolean>;
24
+ isReady: ComputedRef<boolean>;
25
+ state: ComputedRef<FlagState>;
26
+ }
27
+ /**
28
+ * Vue composable for individual flag usage with reactivity
29
+ */
30
+ declare function useFlag(key: string): UseFlagReturn;
31
+ /**
32
+ * Vue composable for boolean flag checking
33
+ */
34
+ declare function useBooleanFlag(key: string): ComputedRef<boolean>;
35
+
36
+ export { Databuddy, FlagResult, FlagState, FlagsConfig, createFlagsPlugin, useBooleanFlag, useFlag, useFlags };
@@ -1,5 +1,5 @@
1
- import { defineComponent, ref, onMounted, onUnmounted, watch } from 'vue';
2
- import { i as isScriptInjected, c as createScript } from '../shared/@databuddy/sdk.D3SKeeIX.mjs';
1
+ import { defineComponent, ref, onMounted, onUnmounted, watch, reactive, watchEffect, computed } from 'vue';
2
+ import { i as isScriptInjected, c as createScript, B as BrowserFlagStorage, C as CoreFlagsManager } from '../shared/@databuddy/sdk.ItWNeH-Y.mjs';
3
3
 
4
4
  const Databuddy = defineComponent({
5
5
  props: {},
@@ -37,4 +37,88 @@ const Databuddy = defineComponent({
37
37
  }
38
38
  });
39
39
 
40
- export { Databuddy };
40
+ const FLAGS_SYMBOL = Symbol("flags");
41
+ let globalState = null;
42
+ let globalManager = null;
43
+ function createFlagsPlugin(options) {
44
+ return {
45
+ install(app) {
46
+ const storage = options.skipStorage ? void 0 : new BrowserFlagStorage();
47
+ const state = reactive({
48
+ memoryFlags: {},
49
+ pendingFlags: /* @__PURE__ */ new Set()
50
+ });
51
+ const manager = new CoreFlagsManager({
52
+ config: options,
53
+ storage,
54
+ onFlagsUpdate: (flags) => {
55
+ state.memoryFlags = flags;
56
+ }
57
+ });
58
+ globalManager = manager;
59
+ globalState = state;
60
+ app.provide(FLAGS_SYMBOL, state);
61
+ }
62
+ };
63
+ }
64
+ function useFlags() {
65
+ if (!globalState) {
66
+ throw new Error(
67
+ "Flags plugin not installed. Install with app.use(createFlagsPlugin(config))"
68
+ );
69
+ }
70
+ if (!globalManager) {
71
+ throw new Error(
72
+ "Flags manager not initialized. Please reinstall the plugin."
73
+ );
74
+ }
75
+ const state = globalState;
76
+ const manager = globalManager;
77
+ const isEnabled = (key) => {
78
+ return manager.isEnabled(key);
79
+ };
80
+ const fetchAllFlags = () => {
81
+ return manager.fetchAllFlags();
82
+ };
83
+ const updateUser = (user) => {
84
+ manager.updateUser(user);
85
+ };
86
+ const refresh = (forceClear = false) => {
87
+ manager.refresh(forceClear);
88
+ };
89
+ const updateConfig = (config) => {
90
+ manager.updateConfig(config);
91
+ };
92
+ return {
93
+ isEnabled,
94
+ fetchAllFlags,
95
+ updateUser,
96
+ refresh,
97
+ updateConfig,
98
+ memoryFlags: state.memoryFlags
99
+ };
100
+ }
101
+
102
+ function useFlag(key) {
103
+ const { isEnabled } = useFlags();
104
+ const flagState = ref({
105
+ enabled: false,
106
+ isLoading: true,
107
+ isReady: false
108
+ });
109
+ watchEffect(() => {
110
+ flagState.value = isEnabled(key);
111
+ });
112
+ return {
113
+ enabled: computed(() => flagState.value.enabled),
114
+ isLoading: computed(() => flagState.value.isLoading),
115
+ isReady: computed(() => flagState.value.isReady),
116
+ state: computed(() => flagState.value)
117
+ };
118
+ }
119
+ function useBooleanFlag(key) {
120
+ const { enabled } = useFlag(key);
121
+ return enabled;
122
+ }
123
+
124
+ export { Databuddy, createFlagsPlugin, useBooleanFlag, useFlag, useFlags };
package/package.json CHANGED
@@ -1,58 +1,67 @@
1
- {
2
- "name": "@databuddy/sdk",
3
- "version": "2.1.76",
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
- "dependencies": {
13
- "jotai": ">=2.0.0"
14
- },
15
- "devDependencies": {
16
- "@types/node": "^20.0.0",
17
- "@vitejs/plugin-react": "^5.0.0",
18
- "typescript": "catalog:",
19
- "unbuild": "^3.6.1"
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
+ {
2
+ "name": "@databuddy/sdk",
3
+ "version": "2.1.78",
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
+ "dependencies": {
13
+ "jotai": ">=2.0.0"
14
+ },
15
+ "devDependencies": {
16
+ "@types/node": "^20.0.0",
17
+ "@vitejs/plugin-react": "^5.0.0",
18
+ "typescript": "catalog:",
19
+ "unbuild": "^3.6.1"
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
+ "homepage": "https://databuddy.cc",
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "https://github.com/databuddy-analytics/databuddy.git"
62
+ },
63
+ "bugs": {
64
+ "type": "git",
65
+ "url": "https://github.com/databuddy-analytics/databuddy/issues"
66
+ }
67
+ }