@tracetail/vue 2.3.11 → 2.3.12
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/README.md +25 -17
- package/dist/tracetail-vue.cjs.js +6 -16
- package/dist/tracetail-vue.cjs.js.map +1 -1
- package/dist/tracetail-vue.esm.js +6 -16
- package/dist/tracetail-vue.esm.js.map +1 -1
- package/dist/tracetail-vue.umd.js +6 -16
- package/dist/tracetail-vue.umd.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -82,21 +82,24 @@ const {
|
|
|
82
82
|
} = useFingerprint();
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
### 📊
|
|
85
|
+
### 📊 Sending app events
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
`@tracetail/vue` does **not** implement a hosted event-tracking API. Instead, collect a fingerprint in the browser and send the identifiers you need to your own backend:
|
|
88
88
|
|
|
89
89
|
```js
|
|
90
|
-
|
|
90
|
+
import { useFingerprint } from '@tracetail/vue';
|
|
91
|
+
|
|
92
|
+
const { visitorId } = useFingerprint();
|
|
91
93
|
|
|
92
94
|
const handleLogin = async () => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
await fetch('/api/events/login', {
|
|
96
|
+
method: 'POST',
|
|
97
|
+
headers: { 'Content-Type': 'application/json' },
|
|
98
|
+
body: JSON.stringify({
|
|
99
|
+
visitorId: visitorId.value,
|
|
100
|
+
username: 'user@example.com'
|
|
101
|
+
})
|
|
95
102
|
});
|
|
96
|
-
|
|
97
|
-
if (result.fraudulent) {
|
|
98
|
-
// Handle fraud
|
|
99
|
-
}
|
|
100
103
|
};
|
|
101
104
|
```
|
|
102
105
|
|
|
@@ -143,12 +146,11 @@ const handleCheckout = async (orderData) => {
|
|
|
143
146
|
|
|
144
147
|
<script setup>
|
|
145
148
|
import { ref } from 'vue';
|
|
146
|
-
import { useFingerprint
|
|
149
|
+
import { useFingerprint } from '@tracetail/vue';
|
|
147
150
|
import { useRouter } from 'vue-router';
|
|
148
151
|
|
|
149
152
|
const router = useRouter();
|
|
150
|
-
const { riskScore } = useFingerprint();
|
|
151
|
-
const trackEvent = useTrackEvent();
|
|
153
|
+
const { riskScore, visitorId } = useFingerprint();
|
|
152
154
|
|
|
153
155
|
const username = ref('');
|
|
154
156
|
const password = ref('');
|
|
@@ -158,14 +160,20 @@ const login = async () => {
|
|
|
158
160
|
isSubmitting.value = true;
|
|
159
161
|
|
|
160
162
|
try {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (tracking.fraudulent || riskScore.value > 0.7) {
|
|
163
|
+
if (riskScore.value > 0.7) {
|
|
164
164
|
router.push('/verify');
|
|
165
165
|
return;
|
|
166
166
|
}
|
|
167
|
+
|
|
168
|
+
await fetch('/api/events/login-attempt', {
|
|
169
|
+
method: 'POST',
|
|
170
|
+
headers: { 'Content-Type': 'application/json' },
|
|
171
|
+
body: JSON.stringify({
|
|
172
|
+
visitorId: visitorId.value,
|
|
173
|
+
username: username.value
|
|
174
|
+
})
|
|
175
|
+
});
|
|
167
176
|
|
|
168
|
-
// Normal login
|
|
169
177
|
await loginAPI({ username: username.value, password: password.value });
|
|
170
178
|
router.push('/dashboard');
|
|
171
179
|
} finally {
|
|
@@ -310,7 +318,7 @@ interface FraudResult {
|
|
|
310
318
|
|
|
311
319
|
- 📚 [Documentation](https://docs.tracetail.com/vue)
|
|
312
320
|
- 💬 [Discord Community](https://discord.gg/tracetail)
|
|
313
|
-
- 📧 [Email Support](mailto:support@tracetail.
|
|
321
|
+
- 📧 [Email Support](mailto:support@tracetail.io)
|
|
314
322
|
- 🐛 [Issue Tracker](https://github.com/tracetail/tracetail/issues)
|
|
315
323
|
|
|
316
324
|
## License
|
|
@@ -5,6 +5,7 @@ var vue = require('vue');
|
|
|
5
5
|
|
|
6
6
|
const TRACETAIL_KEY = Symbol('tracetail');
|
|
7
7
|
|
|
8
|
+
const TRACKING_UNSUPPORTED_ERROR$1 = '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use the fingerprinting SDK to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';
|
|
8
9
|
const TraceTailPlugin = {
|
|
9
10
|
install(app, options) {
|
|
10
11
|
var _a, _b;
|
|
@@ -26,7 +27,7 @@ const TraceTailPlugin = {
|
|
|
26
27
|
app.config.globalProperties.$tracetail = {
|
|
27
28
|
client,
|
|
28
29
|
getFingerprint: () => client.generateFingerprint(),
|
|
29
|
-
track: (
|
|
30
|
+
track: () => Promise.reject(new Error(TRACKING_UNSUPPORTED_ERROR$1))
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
33
|
};
|
|
@@ -140,23 +141,12 @@ function useFingerprint() {
|
|
|
140
141
|
};
|
|
141
142
|
}
|
|
142
143
|
|
|
144
|
+
const TRACKING_UNSUPPORTED_ERROR = '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use useFingerprint() to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';
|
|
143
145
|
function useTrackEvent() {
|
|
144
|
-
|
|
146
|
+
useTraceTail();
|
|
145
147
|
const trackEvent = (event, data) => __awaiter(this, void 0, void 0, function* () {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const eventId = `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
149
|
-
return {
|
|
150
|
-
success: true,
|
|
151
|
-
fraudulent: false,
|
|
152
|
-
riskScore: 0,
|
|
153
|
-
eventId: eventId
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
console.error('[TraceTail] Error tracking event:', error);
|
|
158
|
-
throw error;
|
|
159
|
-
}
|
|
148
|
+
console.warn('[TraceTail] useTrackEvent() was called with:', { event, data });
|
|
149
|
+
throw new Error(TRACKING_UNSUPPORTED_ERROR);
|
|
160
150
|
});
|
|
161
151
|
return trackEvent;
|
|
162
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracetail-vue.cjs.js","sources":["../src/injection-keys.ts","../src/plugin.ts","../node_modules/tslib/tslib.es6.js","../src/composables/useTraceTail.ts","../src/composables/useFingerprint.ts","../src/composables/useTrackEvent.ts","../src/composables/useFraudDetection.ts"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\n\nexport const TRACETAIL_KEY: InjectionKey<{\n client: TraceTail;\n options: TraceTailOptions;\n}> = Symbol('tracetail');","import { App, Plugin } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\nimport { TRACETAIL_KEY } from './injection-keys';\n\nexport const TraceTailPlugin: Plugin = {\n install(app: App, options: TraceTailOptions) {\n if (!options.apiKey) {\n console.error('[TraceTail] API key is required');\n return;\n }\n\n // Create TraceTail client instance\n const client = new TraceTail({\n apiKey: options.apiKey,\n timeout: options.config?.timeout ?? 5000\n });\n\n // Provide the client and options to all components\n app.provide(TRACETAIL_KEY, {\n client,\n options\n });\n\n // Add global property for Options API compatibility\n app.config.globalProperties.$tracetail = {\n client,\n getFingerprint: () => client.generateFingerprint(),\n track: (event: string, data?: any) => Promise.resolve({ success: true, event, data })\n };\n }\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { inject } from 'vue';\nimport { TRACETAIL_KEY } from '../injection-keys';\n\nexport function useTraceTail() {\n const tracetail = inject(TRACETAIL_KEY);\n\n if (!tracetail) {\n throw new Error(\n '[TraceTail] No TraceTail instance found. ' +\n 'Make sure to install the TraceTail plugin at the app level.'\n );\n }\n\n return tracetail;\n}","import { ref, onMounted, computed } from 'vue';\nimport { useTraceTail } from './useTraceTail';\nimport { Fingerprint, FingerprintComposable } from '../types';\n\nexport function useFingerprint(): FingerprintComposable {\n const { client, options } = useTraceTail();\n \n const fingerprint = ref<Fingerprint | null>(null);\n const loading = ref(true);\n const error = ref<Error | null>(null);\n\n // Computed properties for easy access\n const visitorId = computed(() => fingerprint.value?.visitorId || null);\n const confidence = computed(() => fingerprint.value?.confidence || 0);\n const riskScore = computed(() => fingerprint.value?.riskScore || 0);\n const fraudulent = computed(() => fingerprint.value?.fraudulent || false);\n const signals = computed(() => fingerprint.value?.signals || null);\n const processingTime = computed(() => fingerprint.value?.processingTime || 0);\n\n const loadFingerprint = async () => {\n try {\n loading.value = true;\n error.value = null;\n\n // Handle test mode\n if (options.config?.testMode && options.config.mockData) {\n fingerprint.value = {\n visitorId: 'mock-visitor-123',\n confidence: 0.99,\n riskScore: 0.1,\n fraudulent: false,\n signals: {} as any,\n timestamp: new Date(),\n ...options.config.mockData\n } as Fingerprint;\n loading.value = false;\n return;\n }\n\n // Use verbose: true to get components in the response\n const result = await client.generateFingerprint({ verbose: true });\n\n fingerprint.value = {\n visitorId: result.visitorId,\n confidence: result.confidence,\n riskScore: 0, // Not in base SDK\n fraudulent: false, // Not in base SDK\n signals: result.components || {} as any,\n timestamp: new Date(),\n processingTime: result.processingTime\n };\n } catch (err) {\n error.value = err as Error;\n console.error('[TraceTail] Error getting fingerprint:', err);\n } finally {\n loading.value = false;\n }\n };\n\n const retry = async () => {\n await loadFingerprint();\n };\n\n const refresh = async () => {\n fingerprint.value = null;\n await loadFingerprint();\n };\n\n // Load fingerprint on mount\n onMounted(() => {\n loadFingerprint();\n });\n\n return {\n visitorId,\n confidence,\n riskScore,\n fraudulent,\n signals,\n processingTime,\n loading,\n error,\n retry,\n refresh\n };\n}","import { useTraceTail } from './useTraceTail';\nimport { TrackingResult } from '../types';\n\nexport function useTrackEvent() {\n const { client } = useTraceTail();\n\n const trackEvent = async (\n event: string, \n data?: any\n ): Promise<TrackingResult> => {\n try {\n // TraceTail SDK doesn't have a track method - this is custom app functionality\n const eventId = `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n \n return {\n success: true,\n fraudulent: false,\n riskScore: 0,\n eventId: eventId\n };\n } catch (error) {\n console.error('[TraceTail] Error tracking event:', error);\n throw error;\n }\n };\n\n return trackEvent;\n}","import { ref, computed } from 'vue';\nimport { useFingerprint } from './useFingerprint';\nimport { FraudResult, FraudDetectionComposable } from '../types';\n\nexport function useFraudDetection(): FraudDetectionComposable {\n const { signals, riskScore } = useFingerprint();\n const isChecking = ref(false);\n\n const fraudSignals = computed(() => {\n if (!signals.value) return {};\n \n return {\n vpn: signals.value.vpn || false,\n tor: signals.value.tor || false,\n proxy: signals.value.proxy || false\n };\n });\n\n const checkFraud = async (data: any = {}): Promise<FraudResult> => {\n isChecking.value = true;\n \n try {\n // Determine fraud based on risk score and signals\n const currentRiskScore = riskScore.value;\n const block = currentRiskScore > 0.8 || signals.value?.tor || false;\n const challenge = currentRiskScore > 0.5 && currentRiskScore <= 0.8;\n const allow = currentRiskScore <= 0.5;\n \n const reasons: string[] = [];\n \n if (signals.value?.vpn) reasons.push('VPN detected');\n if (signals.value?.tor) reasons.push('Tor browser detected');\n if (signals.value?.proxy) reasons.push('Proxy detected');\n if (currentRiskScore > 0.7) reasons.push('High risk score');\n \n // Check transaction-specific risks\n if (data.amount && data.amount > 1000) {\n if (currentRiskScore > 0.3) {\n reasons.push('High-value transaction with elevated risk');\n }\n }\n\n return {\n block,\n challenge,\n allow,\n riskScore: currentRiskScore,\n reasons\n };\n } finally {\n isChecking.value = false;\n }\n };\n\n return {\n checkFraud,\n fraudSignals,\n isChecking\n };\n}"],"names":["inject","ref","computed","onMounted"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"tracetail-vue.cjs.js","sources":["../src/injection-keys.ts","../src/plugin.ts","../node_modules/tslib/tslib.es6.js","../src/composables/useTraceTail.ts","../src/composables/useFingerprint.ts","../src/composables/useTrackEvent.ts","../src/composables/useFraudDetection.ts"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\n\nexport const TRACETAIL_KEY: InjectionKey<{\n client: TraceTail;\n options: TraceTailOptions;\n}> = Symbol('tracetail');","import { App, Plugin } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\nimport { TRACETAIL_KEY } from './injection-keys';\n\nconst TRACKING_UNSUPPORTED_ERROR =\n '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use the fingerprinting SDK to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';\n\nexport const TraceTailPlugin: Plugin = {\n install(app: App, options: TraceTailOptions) {\n if (!options.apiKey) {\n console.error('[TraceTail] API key is required');\n return;\n }\n\n // Create TraceTail client instance\n const client = new TraceTail({\n apiKey: options.apiKey,\n timeout: options.config?.timeout ?? 5000\n });\n\n // Provide the client and options to all components\n app.provide(TRACETAIL_KEY, {\n client,\n options\n });\n\n // Add global property for Options API compatibility\n app.config.globalProperties.$tracetail = {\n client,\n getFingerprint: () => client.generateFingerprint(),\n track: () => Promise.reject(new Error(TRACKING_UNSUPPORTED_ERROR))\n };\n }\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { inject } from 'vue';\nimport { TRACETAIL_KEY } from '../injection-keys';\n\nexport function useTraceTail() {\n const tracetail = inject(TRACETAIL_KEY);\n\n if (!tracetail) {\n throw new Error(\n '[TraceTail] No TraceTail instance found. ' +\n 'Make sure to install the TraceTail plugin at the app level.'\n );\n }\n\n return tracetail;\n}","import { ref, onMounted, computed } from 'vue';\nimport { useTraceTail } from './useTraceTail';\nimport { Fingerprint, FingerprintComposable } from '../types';\n\nexport function useFingerprint(): FingerprintComposable {\n const { client, options } = useTraceTail();\n \n const fingerprint = ref<Fingerprint | null>(null);\n const loading = ref(true);\n const error = ref<Error | null>(null);\n\n // Computed properties for easy access\n const visitorId = computed(() => fingerprint.value?.visitorId || null);\n const confidence = computed(() => fingerprint.value?.confidence || 0);\n const riskScore = computed(() => fingerprint.value?.riskScore || 0);\n const fraudulent = computed(() => fingerprint.value?.fraudulent || false);\n const signals = computed(() => fingerprint.value?.signals || null);\n const processingTime = computed(() => fingerprint.value?.processingTime || 0);\n\n const loadFingerprint = async () => {\n try {\n loading.value = true;\n error.value = null;\n\n // Handle test mode\n if (options.config?.testMode && options.config.mockData) {\n fingerprint.value = {\n visitorId: 'mock-visitor-123',\n confidence: 0.99,\n riskScore: 0.1,\n fraudulent: false,\n signals: {} as any,\n timestamp: new Date(),\n ...options.config.mockData\n } as Fingerprint;\n loading.value = false;\n return;\n }\n\n // Use verbose: true to get components in the response\n const result = await client.generateFingerprint({ verbose: true });\n\n fingerprint.value = {\n visitorId: result.visitorId,\n confidence: result.confidence,\n riskScore: 0, // Not in base SDK\n fraudulent: false, // Not in base SDK\n signals: result.components || {} as any,\n timestamp: new Date(),\n processingTime: result.processingTime\n };\n } catch (err) {\n error.value = err as Error;\n console.error('[TraceTail] Error getting fingerprint:', err);\n } finally {\n loading.value = false;\n }\n };\n\n const retry = async () => {\n await loadFingerprint();\n };\n\n const refresh = async () => {\n fingerprint.value = null;\n await loadFingerprint();\n };\n\n // Load fingerprint on mount\n onMounted(() => {\n loadFingerprint();\n });\n\n return {\n visitorId,\n confidence,\n riskScore,\n fraudulent,\n signals,\n processingTime,\n loading,\n error,\n retry,\n refresh\n };\n}","import { useTraceTail } from './useTraceTail';\nimport { TrackingResult } from '../types';\n\nconst TRACKING_UNSUPPORTED_ERROR =\n '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use useFingerprint() to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';\n\nexport function useTrackEvent() {\n useTraceTail();\n\n const trackEvent = async (\n event: string,\n data?: any\n ): Promise<TrackingResult> => {\n console.warn('[TraceTail] useTrackEvent() was called with:', { event, data });\n throw new Error(TRACKING_UNSUPPORTED_ERROR);\n };\n\n return trackEvent;\n}","import { ref, computed } from 'vue';\nimport { useFingerprint } from './useFingerprint';\nimport { FraudResult, FraudDetectionComposable } from '../types';\n\nexport function useFraudDetection(): FraudDetectionComposable {\n const { signals, riskScore } = useFingerprint();\n const isChecking = ref(false);\n\n const fraudSignals = computed(() => {\n if (!signals.value) return {};\n \n return {\n vpn: signals.value.vpn || false,\n tor: signals.value.tor || false,\n proxy: signals.value.proxy || false\n };\n });\n\n const checkFraud = async (data: any = {}): Promise<FraudResult> => {\n isChecking.value = true;\n \n try {\n // Determine fraud based on risk score and signals\n const currentRiskScore = riskScore.value;\n const block = currentRiskScore > 0.8 || signals.value?.tor || false;\n const challenge = currentRiskScore > 0.5 && currentRiskScore <= 0.8;\n const allow = currentRiskScore <= 0.5;\n \n const reasons: string[] = [];\n \n if (signals.value?.vpn) reasons.push('VPN detected');\n if (signals.value?.tor) reasons.push('Tor browser detected');\n if (signals.value?.proxy) reasons.push('Proxy detected');\n if (currentRiskScore > 0.7) reasons.push('High risk score');\n \n // Check transaction-specific risks\n if (data.amount && data.amount > 1000) {\n if (currentRiskScore > 0.3) {\n reasons.push('High-value transaction with elevated risk');\n }\n }\n\n return {\n block,\n challenge,\n allow,\n riskScore: currentRiskScore,\n reasons\n };\n } finally {\n isChecking.value = false;\n }\n };\n\n return {\n checkFraud,\n fraudSignals,\n isChecking\n };\n}"],"names":["TRACKING_UNSUPPORTED_ERROR","inject","ref","computed","onMounted"],"mappings":"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","x_google_ignoreList":[2]}
|
|
@@ -3,6 +3,7 @@ import { inject, ref, computed, onMounted } from 'vue';
|
|
|
3
3
|
|
|
4
4
|
const TRACETAIL_KEY = Symbol('tracetail');
|
|
5
5
|
|
|
6
|
+
const TRACKING_UNSUPPORTED_ERROR$1 = '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use the fingerprinting SDK to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';
|
|
6
7
|
const TraceTailPlugin = {
|
|
7
8
|
install(app, options) {
|
|
8
9
|
var _a, _b;
|
|
@@ -24,7 +25,7 @@ const TraceTailPlugin = {
|
|
|
24
25
|
app.config.globalProperties.$tracetail = {
|
|
25
26
|
client,
|
|
26
27
|
getFingerprint: () => client.generateFingerprint(),
|
|
27
|
-
track: (
|
|
28
|
+
track: () => Promise.reject(new Error(TRACKING_UNSUPPORTED_ERROR$1))
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
};
|
|
@@ -138,23 +139,12 @@ function useFingerprint() {
|
|
|
138
139
|
};
|
|
139
140
|
}
|
|
140
141
|
|
|
142
|
+
const TRACKING_UNSUPPORTED_ERROR = '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use useFingerprint() to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';
|
|
141
143
|
function useTrackEvent() {
|
|
142
|
-
|
|
144
|
+
useTraceTail();
|
|
143
145
|
const trackEvent = (event, data) => __awaiter(this, void 0, void 0, function* () {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const eventId = `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
147
|
-
return {
|
|
148
|
-
success: true,
|
|
149
|
-
fraudulent: false,
|
|
150
|
-
riskScore: 0,
|
|
151
|
-
eventId: eventId
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
console.error('[TraceTail] Error tracking event:', error);
|
|
156
|
-
throw error;
|
|
157
|
-
}
|
|
146
|
+
console.warn('[TraceTail] useTrackEvent() was called with:', { event, data });
|
|
147
|
+
throw new Error(TRACKING_UNSUPPORTED_ERROR);
|
|
158
148
|
});
|
|
159
149
|
return trackEvent;
|
|
160
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracetail-vue.esm.js","sources":["../src/injection-keys.ts","../src/plugin.ts","../node_modules/tslib/tslib.es6.js","../src/composables/useTraceTail.ts","../src/composables/useFingerprint.ts","../src/composables/useTrackEvent.ts","../src/composables/useFraudDetection.ts"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\n\nexport const TRACETAIL_KEY: InjectionKey<{\n client: TraceTail;\n options: TraceTailOptions;\n}> = Symbol('tracetail');","import { App, Plugin } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\nimport { TRACETAIL_KEY } from './injection-keys';\n\nexport const TraceTailPlugin: Plugin = {\n install(app: App, options: TraceTailOptions) {\n if (!options.apiKey) {\n console.error('[TraceTail] API key is required');\n return;\n }\n\n // Create TraceTail client instance\n const client = new TraceTail({\n apiKey: options.apiKey,\n timeout: options.config?.timeout ?? 5000\n });\n\n // Provide the client and options to all components\n app.provide(TRACETAIL_KEY, {\n client,\n options\n });\n\n // Add global property for Options API compatibility\n app.config.globalProperties.$tracetail = {\n client,\n getFingerprint: () => client.generateFingerprint(),\n track: (event: string, data?: any) => Promise.resolve({ success: true, event, data })\n };\n }\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { inject } from 'vue';\nimport { TRACETAIL_KEY } from '../injection-keys';\n\nexport function useTraceTail() {\n const tracetail = inject(TRACETAIL_KEY);\n\n if (!tracetail) {\n throw new Error(\n '[TraceTail] No TraceTail instance found. ' +\n 'Make sure to install the TraceTail plugin at the app level.'\n );\n }\n\n return tracetail;\n}","import { ref, onMounted, computed } from 'vue';\nimport { useTraceTail } from './useTraceTail';\nimport { Fingerprint, FingerprintComposable } from '../types';\n\nexport function useFingerprint(): FingerprintComposable {\n const { client, options } = useTraceTail();\n \n const fingerprint = ref<Fingerprint | null>(null);\n const loading = ref(true);\n const error = ref<Error | null>(null);\n\n // Computed properties for easy access\n const visitorId = computed(() => fingerprint.value?.visitorId || null);\n const confidence = computed(() => fingerprint.value?.confidence || 0);\n const riskScore = computed(() => fingerprint.value?.riskScore || 0);\n const fraudulent = computed(() => fingerprint.value?.fraudulent || false);\n const signals = computed(() => fingerprint.value?.signals || null);\n const processingTime = computed(() => fingerprint.value?.processingTime || 0);\n\n const loadFingerprint = async () => {\n try {\n loading.value = true;\n error.value = null;\n\n // Handle test mode\n if (options.config?.testMode && options.config.mockData) {\n fingerprint.value = {\n visitorId: 'mock-visitor-123',\n confidence: 0.99,\n riskScore: 0.1,\n fraudulent: false,\n signals: {} as any,\n timestamp: new Date(),\n ...options.config.mockData\n } as Fingerprint;\n loading.value = false;\n return;\n }\n\n // Use verbose: true to get components in the response\n const result = await client.generateFingerprint({ verbose: true });\n\n fingerprint.value = {\n visitorId: result.visitorId,\n confidence: result.confidence,\n riskScore: 0, // Not in base SDK\n fraudulent: false, // Not in base SDK\n signals: result.components || {} as any,\n timestamp: new Date(),\n processingTime: result.processingTime\n };\n } catch (err) {\n error.value = err as Error;\n console.error('[TraceTail] Error getting fingerprint:', err);\n } finally {\n loading.value = false;\n }\n };\n\n const retry = async () => {\n await loadFingerprint();\n };\n\n const refresh = async () => {\n fingerprint.value = null;\n await loadFingerprint();\n };\n\n // Load fingerprint on mount\n onMounted(() => {\n loadFingerprint();\n });\n\n return {\n visitorId,\n confidence,\n riskScore,\n fraudulent,\n signals,\n processingTime,\n loading,\n error,\n retry,\n refresh\n };\n}","import { useTraceTail } from './useTraceTail';\nimport { TrackingResult } from '../types';\n\nexport function useTrackEvent() {\n const { client } = useTraceTail();\n\n const trackEvent = async (\n event: string, \n data?: any\n ): Promise<TrackingResult> => {\n try {\n // TraceTail SDK doesn't have a track method - this is custom app functionality\n const eventId = `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n \n return {\n success: true,\n fraudulent: false,\n riskScore: 0,\n eventId: eventId\n };\n } catch (error) {\n console.error('[TraceTail] Error tracking event:', error);\n throw error;\n }\n };\n\n return trackEvent;\n}","import { ref, computed } from 'vue';\nimport { useFingerprint } from './useFingerprint';\nimport { FraudResult, FraudDetectionComposable } from '../types';\n\nexport function useFraudDetection(): FraudDetectionComposable {\n const { signals, riskScore } = useFingerprint();\n const isChecking = ref(false);\n\n const fraudSignals = computed(() => {\n if (!signals.value) return {};\n \n return {\n vpn: signals.value.vpn || false,\n tor: signals.value.tor || false,\n proxy: signals.value.proxy || false\n };\n });\n\n const checkFraud = async (data: any = {}): Promise<FraudResult> => {\n isChecking.value = true;\n \n try {\n // Determine fraud based on risk score and signals\n const currentRiskScore = riskScore.value;\n const block = currentRiskScore > 0.8 || signals.value?.tor || false;\n const challenge = currentRiskScore > 0.5 && currentRiskScore <= 0.8;\n const allow = currentRiskScore <= 0.5;\n \n const reasons: string[] = [];\n \n if (signals.value?.vpn) reasons.push('VPN detected');\n if (signals.value?.tor) reasons.push('Tor browser detected');\n if (signals.value?.proxy) reasons.push('Proxy detected');\n if (currentRiskScore > 0.7) reasons.push('High risk score');\n \n // Check transaction-specific risks\n if (data.amount && data.amount > 1000) {\n if (currentRiskScore > 0.3) {\n reasons.push('High-value transaction with elevated risk');\n }\n }\n\n return {\n block,\n challenge,\n allow,\n riskScore: currentRiskScore,\n reasons\n };\n } finally {\n isChecking.value = false;\n }\n };\n\n return {\n checkFraud,\n fraudSignals,\n isChecking\n };\n}"],"names":[],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"tracetail-vue.esm.js","sources":["../src/injection-keys.ts","../src/plugin.ts","../node_modules/tslib/tslib.es6.js","../src/composables/useTraceTail.ts","../src/composables/useFingerprint.ts","../src/composables/useTrackEvent.ts","../src/composables/useFraudDetection.ts"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\n\nexport const TRACETAIL_KEY: InjectionKey<{\n client: TraceTail;\n options: TraceTailOptions;\n}> = Symbol('tracetail');","import { App, Plugin } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\nimport { TRACETAIL_KEY } from './injection-keys';\n\nconst TRACKING_UNSUPPORTED_ERROR =\n '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use the fingerprinting SDK to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';\n\nexport const TraceTailPlugin: Plugin = {\n install(app: App, options: TraceTailOptions) {\n if (!options.apiKey) {\n console.error('[TraceTail] API key is required');\n return;\n }\n\n // Create TraceTail client instance\n const client = new TraceTail({\n apiKey: options.apiKey,\n timeout: options.config?.timeout ?? 5000\n });\n\n // Provide the client and options to all components\n app.provide(TRACETAIL_KEY, {\n client,\n options\n });\n\n // Add global property for Options API compatibility\n app.config.globalProperties.$tracetail = {\n client,\n getFingerprint: () => client.generateFingerprint(),\n track: () => Promise.reject(new Error(TRACKING_UNSUPPORTED_ERROR))\n };\n }\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { inject } from 'vue';\nimport { TRACETAIL_KEY } from '../injection-keys';\n\nexport function useTraceTail() {\n const tracetail = inject(TRACETAIL_KEY);\n\n if (!tracetail) {\n throw new Error(\n '[TraceTail] No TraceTail instance found. ' +\n 'Make sure to install the TraceTail plugin at the app level.'\n );\n }\n\n return tracetail;\n}","import { ref, onMounted, computed } from 'vue';\nimport { useTraceTail } from './useTraceTail';\nimport { Fingerprint, FingerprintComposable } from '../types';\n\nexport function useFingerprint(): FingerprintComposable {\n const { client, options } = useTraceTail();\n \n const fingerprint = ref<Fingerprint | null>(null);\n const loading = ref(true);\n const error = ref<Error | null>(null);\n\n // Computed properties for easy access\n const visitorId = computed(() => fingerprint.value?.visitorId || null);\n const confidence = computed(() => fingerprint.value?.confidence || 0);\n const riskScore = computed(() => fingerprint.value?.riskScore || 0);\n const fraudulent = computed(() => fingerprint.value?.fraudulent || false);\n const signals = computed(() => fingerprint.value?.signals || null);\n const processingTime = computed(() => fingerprint.value?.processingTime || 0);\n\n const loadFingerprint = async () => {\n try {\n loading.value = true;\n error.value = null;\n\n // Handle test mode\n if (options.config?.testMode && options.config.mockData) {\n fingerprint.value = {\n visitorId: 'mock-visitor-123',\n confidence: 0.99,\n riskScore: 0.1,\n fraudulent: false,\n signals: {} as any,\n timestamp: new Date(),\n ...options.config.mockData\n } as Fingerprint;\n loading.value = false;\n return;\n }\n\n // Use verbose: true to get components in the response\n const result = await client.generateFingerprint({ verbose: true });\n\n fingerprint.value = {\n visitorId: result.visitorId,\n confidence: result.confidence,\n riskScore: 0, // Not in base SDK\n fraudulent: false, // Not in base SDK\n signals: result.components || {} as any,\n timestamp: new Date(),\n processingTime: result.processingTime\n };\n } catch (err) {\n error.value = err as Error;\n console.error('[TraceTail] Error getting fingerprint:', err);\n } finally {\n loading.value = false;\n }\n };\n\n const retry = async () => {\n await loadFingerprint();\n };\n\n const refresh = async () => {\n fingerprint.value = null;\n await loadFingerprint();\n };\n\n // Load fingerprint on mount\n onMounted(() => {\n loadFingerprint();\n });\n\n return {\n visitorId,\n confidence,\n riskScore,\n fraudulent,\n signals,\n processingTime,\n loading,\n error,\n retry,\n refresh\n };\n}","import { useTraceTail } from './useTraceTail';\nimport { TrackingResult } from '../types';\n\nconst TRACKING_UNSUPPORTED_ERROR =\n '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use useFingerprint() to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';\n\nexport function useTrackEvent() {\n useTraceTail();\n\n const trackEvent = async (\n event: string,\n data?: any\n ): Promise<TrackingResult> => {\n console.warn('[TraceTail] useTrackEvent() was called with:', { event, data });\n throw new Error(TRACKING_UNSUPPORTED_ERROR);\n };\n\n return trackEvent;\n}","import { ref, computed } from 'vue';\nimport { useFingerprint } from './useFingerprint';\nimport { FraudResult, FraudDetectionComposable } from '../types';\n\nexport function useFraudDetection(): FraudDetectionComposable {\n const { signals, riskScore } = useFingerprint();\n const isChecking = ref(false);\n\n const fraudSignals = computed(() => {\n if (!signals.value) return {};\n \n return {\n vpn: signals.value.vpn || false,\n tor: signals.value.tor || false,\n proxy: signals.value.proxy || false\n };\n });\n\n const checkFraud = async (data: any = {}): Promise<FraudResult> => {\n isChecking.value = true;\n \n try {\n // Determine fraud based on risk score and signals\n const currentRiskScore = riskScore.value;\n const block = currentRiskScore > 0.8 || signals.value?.tor || false;\n const challenge = currentRiskScore > 0.5 && currentRiskScore <= 0.8;\n const allow = currentRiskScore <= 0.5;\n \n const reasons: string[] = [];\n \n if (signals.value?.vpn) reasons.push('VPN detected');\n if (signals.value?.tor) reasons.push('Tor browser detected');\n if (signals.value?.proxy) reasons.push('Proxy detected');\n if (currentRiskScore > 0.7) reasons.push('High risk score');\n \n // Check transaction-specific risks\n if (data.amount && data.amount > 1000) {\n if (currentRiskScore > 0.3) {\n reasons.push('High-value transaction with elevated risk');\n }\n }\n\n return {\n block,\n challenge,\n allow,\n riskScore: currentRiskScore,\n reasons\n };\n } finally {\n isChecking.value = false;\n }\n };\n\n return {\n checkFraud,\n fraudSignals,\n isChecking\n };\n}"],"names":["TRACKING_UNSUPPORTED_ERROR"],"mappings":"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","x_google_ignoreList":[2]}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
const TRACETAIL_KEY = Symbol('tracetail');
|
|
8
8
|
|
|
9
|
+
const TRACKING_UNSUPPORTED_ERROR$1 = '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use the fingerprinting SDK to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';
|
|
9
10
|
const TraceTailPlugin = {
|
|
10
11
|
install(app, options) {
|
|
11
12
|
var _a, _b;
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
app.config.globalProperties.$tracetail = {
|
|
28
29
|
client,
|
|
29
30
|
getFingerprint: () => client.generateFingerprint(),
|
|
30
|
-
track: (
|
|
31
|
+
track: () => Promise.reject(new Error(TRACKING_UNSUPPORTED_ERROR$1))
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
};
|
|
@@ -141,23 +142,12 @@
|
|
|
141
142
|
};
|
|
142
143
|
}
|
|
143
144
|
|
|
145
|
+
const TRACKING_UNSUPPORTED_ERROR = '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use useFingerprint() to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';
|
|
144
146
|
function useTrackEvent() {
|
|
145
|
-
|
|
147
|
+
useTraceTail();
|
|
146
148
|
const trackEvent = (event, data) => __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const eventId = `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
150
|
-
return {
|
|
151
|
-
success: true,
|
|
152
|
-
fraudulent: false,
|
|
153
|
-
riskScore: 0,
|
|
154
|
-
eventId: eventId
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
catch (error) {
|
|
158
|
-
console.error('[TraceTail] Error tracking event:', error);
|
|
159
|
-
throw error;
|
|
160
|
-
}
|
|
149
|
+
console.warn('[TraceTail] useTrackEvent() was called with:', { event, data });
|
|
150
|
+
throw new Error(TRACKING_UNSUPPORTED_ERROR);
|
|
161
151
|
});
|
|
162
152
|
return trackEvent;
|
|
163
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracetail-vue.umd.js","sources":["../src/injection-keys.ts","../src/plugin.ts","../node_modules/tslib/tslib.es6.js","../src/composables/useTraceTail.ts","../src/composables/useFingerprint.ts","../src/composables/useTrackEvent.ts","../src/composables/useFraudDetection.ts"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\n\nexport const TRACETAIL_KEY: InjectionKey<{\n client: TraceTail;\n options: TraceTailOptions;\n}> = Symbol('tracetail');","import { App, Plugin } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\nimport { TRACETAIL_KEY } from './injection-keys';\n\nexport const TraceTailPlugin: Plugin = {\n install(app: App, options: TraceTailOptions) {\n if (!options.apiKey) {\n console.error('[TraceTail] API key is required');\n return;\n }\n\n // Create TraceTail client instance\n const client = new TraceTail({\n apiKey: options.apiKey,\n timeout: options.config?.timeout ?? 5000\n });\n\n // Provide the client and options to all components\n app.provide(TRACETAIL_KEY, {\n client,\n options\n });\n\n // Add global property for Options API compatibility\n app.config.globalProperties.$tracetail = {\n client,\n getFingerprint: () => client.generateFingerprint(),\n track: (event: string, data?: any) => Promise.resolve({ success: true, event, data })\n };\n }\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { inject } from 'vue';\nimport { TRACETAIL_KEY } from '../injection-keys';\n\nexport function useTraceTail() {\n const tracetail = inject(TRACETAIL_KEY);\n\n if (!tracetail) {\n throw new Error(\n '[TraceTail] No TraceTail instance found. ' +\n 'Make sure to install the TraceTail plugin at the app level.'\n );\n }\n\n return tracetail;\n}","import { ref, onMounted, computed } from 'vue';\nimport { useTraceTail } from './useTraceTail';\nimport { Fingerprint, FingerprintComposable } from '../types';\n\nexport function useFingerprint(): FingerprintComposable {\n const { client, options } = useTraceTail();\n \n const fingerprint = ref<Fingerprint | null>(null);\n const loading = ref(true);\n const error = ref<Error | null>(null);\n\n // Computed properties for easy access\n const visitorId = computed(() => fingerprint.value?.visitorId || null);\n const confidence = computed(() => fingerprint.value?.confidence || 0);\n const riskScore = computed(() => fingerprint.value?.riskScore || 0);\n const fraudulent = computed(() => fingerprint.value?.fraudulent || false);\n const signals = computed(() => fingerprint.value?.signals || null);\n const processingTime = computed(() => fingerprint.value?.processingTime || 0);\n\n const loadFingerprint = async () => {\n try {\n loading.value = true;\n error.value = null;\n\n // Handle test mode\n if (options.config?.testMode && options.config.mockData) {\n fingerprint.value = {\n visitorId: 'mock-visitor-123',\n confidence: 0.99,\n riskScore: 0.1,\n fraudulent: false,\n signals: {} as any,\n timestamp: new Date(),\n ...options.config.mockData\n } as Fingerprint;\n loading.value = false;\n return;\n }\n\n // Use verbose: true to get components in the response\n const result = await client.generateFingerprint({ verbose: true });\n\n fingerprint.value = {\n visitorId: result.visitorId,\n confidence: result.confidence,\n riskScore: 0, // Not in base SDK\n fraudulent: false, // Not in base SDK\n signals: result.components || {} as any,\n timestamp: new Date(),\n processingTime: result.processingTime\n };\n } catch (err) {\n error.value = err as Error;\n console.error('[TraceTail] Error getting fingerprint:', err);\n } finally {\n loading.value = false;\n }\n };\n\n const retry = async () => {\n await loadFingerprint();\n };\n\n const refresh = async () => {\n fingerprint.value = null;\n await loadFingerprint();\n };\n\n // Load fingerprint on mount\n onMounted(() => {\n loadFingerprint();\n });\n\n return {\n visitorId,\n confidence,\n riskScore,\n fraudulent,\n signals,\n processingTime,\n loading,\n error,\n retry,\n refresh\n };\n}","import { useTraceTail } from './useTraceTail';\nimport { TrackingResult } from '../types';\n\nexport function useTrackEvent() {\n const { client } = useTraceTail();\n\n const trackEvent = async (\n event: string, \n data?: any\n ): Promise<TrackingResult> => {\n try {\n // TraceTail SDK doesn't have a track method - this is custom app functionality\n const eventId = `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n \n return {\n success: true,\n fraudulent: false,\n riskScore: 0,\n eventId: eventId\n };\n } catch (error) {\n console.error('[TraceTail] Error tracking event:', error);\n throw error;\n }\n };\n\n return trackEvent;\n}","import { ref, computed } from 'vue';\nimport { useFingerprint } from './useFingerprint';\nimport { FraudResult, FraudDetectionComposable } from '../types';\n\nexport function useFraudDetection(): FraudDetectionComposable {\n const { signals, riskScore } = useFingerprint();\n const isChecking = ref(false);\n\n const fraudSignals = computed(() => {\n if (!signals.value) return {};\n \n return {\n vpn: signals.value.vpn || false,\n tor: signals.value.tor || false,\n proxy: signals.value.proxy || false\n };\n });\n\n const checkFraud = async (data: any = {}): Promise<FraudResult> => {\n isChecking.value = true;\n \n try {\n // Determine fraud based on risk score and signals\n const currentRiskScore = riskScore.value;\n const block = currentRiskScore > 0.8 || signals.value?.tor || false;\n const challenge = currentRiskScore > 0.5 && currentRiskScore <= 0.8;\n const allow = currentRiskScore <= 0.5;\n \n const reasons: string[] = [];\n \n if (signals.value?.vpn) reasons.push('VPN detected');\n if (signals.value?.tor) reasons.push('Tor browser detected');\n if (signals.value?.proxy) reasons.push('Proxy detected');\n if (currentRiskScore > 0.7) reasons.push('High risk score');\n \n // Check transaction-specific risks\n if (data.amount && data.amount > 1000) {\n if (currentRiskScore > 0.3) {\n reasons.push('High-value transaction with elevated risk');\n }\n }\n\n return {\n block,\n challenge,\n allow,\n riskScore: currentRiskScore,\n reasons\n };\n } finally {\n isChecking.value = false;\n }\n };\n\n return {\n checkFraud,\n fraudSignals,\n isChecking\n };\n}"],"names":["inject","ref","computed","onMounted"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"tracetail-vue.umd.js","sources":["../src/injection-keys.ts","../src/plugin.ts","../node_modules/tslib/tslib.es6.js","../src/composables/useTraceTail.ts","../src/composables/useFingerprint.ts","../src/composables/useTrackEvent.ts","../src/composables/useFraudDetection.ts"],"sourcesContent":["import { InjectionKey } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\n\nexport const TRACETAIL_KEY: InjectionKey<{\n client: TraceTail;\n options: TraceTailOptions;\n}> = Symbol('tracetail');","import { App, Plugin } from 'vue';\nimport TraceTail from '@tracetail/js';\nimport { TraceTailOptions } from './types';\nimport { TRACETAIL_KEY } from './injection-keys';\n\nconst TRACKING_UNSUPPORTED_ERROR =\n '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use the fingerprinting SDK to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';\n\nexport const TraceTailPlugin: Plugin = {\n install(app: App, options: TraceTailOptions) {\n if (!options.apiKey) {\n console.error('[TraceTail] API key is required');\n return;\n }\n\n // Create TraceTail client instance\n const client = new TraceTail({\n apiKey: options.apiKey,\n timeout: options.config?.timeout ?? 5000\n });\n\n // Provide the client and options to all components\n app.provide(TRACETAIL_KEY, {\n client,\n options\n });\n\n // Add global property for Options API compatibility\n app.config.globalProperties.$tracetail = {\n client,\n getFingerprint: () => client.generateFingerprint(),\n track: () => Promise.reject(new Error(TRACKING_UNSUPPORTED_ERROR))\n };\n }\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { inject } from 'vue';\nimport { TRACETAIL_KEY } from '../injection-keys';\n\nexport function useTraceTail() {\n const tracetail = inject(TRACETAIL_KEY);\n\n if (!tracetail) {\n throw new Error(\n '[TraceTail] No TraceTail instance found. ' +\n 'Make sure to install the TraceTail plugin at the app level.'\n );\n }\n\n return tracetail;\n}","import { ref, onMounted, computed } from 'vue';\nimport { useTraceTail } from './useTraceTail';\nimport { Fingerprint, FingerprintComposable } from '../types';\n\nexport function useFingerprint(): FingerprintComposable {\n const { client, options } = useTraceTail();\n \n const fingerprint = ref<Fingerprint | null>(null);\n const loading = ref(true);\n const error = ref<Error | null>(null);\n\n // Computed properties for easy access\n const visitorId = computed(() => fingerprint.value?.visitorId || null);\n const confidence = computed(() => fingerprint.value?.confidence || 0);\n const riskScore = computed(() => fingerprint.value?.riskScore || 0);\n const fraudulent = computed(() => fingerprint.value?.fraudulent || false);\n const signals = computed(() => fingerprint.value?.signals || null);\n const processingTime = computed(() => fingerprint.value?.processingTime || 0);\n\n const loadFingerprint = async () => {\n try {\n loading.value = true;\n error.value = null;\n\n // Handle test mode\n if (options.config?.testMode && options.config.mockData) {\n fingerprint.value = {\n visitorId: 'mock-visitor-123',\n confidence: 0.99,\n riskScore: 0.1,\n fraudulent: false,\n signals: {} as any,\n timestamp: new Date(),\n ...options.config.mockData\n } as Fingerprint;\n loading.value = false;\n return;\n }\n\n // Use verbose: true to get components in the response\n const result = await client.generateFingerprint({ verbose: true });\n\n fingerprint.value = {\n visitorId: result.visitorId,\n confidence: result.confidence,\n riskScore: 0, // Not in base SDK\n fraudulent: false, // Not in base SDK\n signals: result.components || {} as any,\n timestamp: new Date(),\n processingTime: result.processingTime\n };\n } catch (err) {\n error.value = err as Error;\n console.error('[TraceTail] Error getting fingerprint:', err);\n } finally {\n loading.value = false;\n }\n };\n\n const retry = async () => {\n await loadFingerprint();\n };\n\n const refresh = async () => {\n fingerprint.value = null;\n await loadFingerprint();\n };\n\n // Load fingerprint on mount\n onMounted(() => {\n loadFingerprint();\n });\n\n return {\n visitorId,\n confidence,\n riskScore,\n fraudulent,\n signals,\n processingTime,\n loading,\n error,\n retry,\n refresh\n };\n}","import { useTraceTail } from './useTraceTail';\nimport { TrackingResult } from '../types';\n\nconst TRACKING_UNSUPPORTED_ERROR =\n '[TraceTail] Event tracking is not implemented in @tracetail/vue. Use useFingerprint() to collect visitorId/requestId, then send your event to your own backend or analytics pipeline.';\n\nexport function useTrackEvent() {\n useTraceTail();\n\n const trackEvent = async (\n event: string,\n data?: any\n ): Promise<TrackingResult> => {\n console.warn('[TraceTail] useTrackEvent() was called with:', { event, data });\n throw new Error(TRACKING_UNSUPPORTED_ERROR);\n };\n\n return trackEvent;\n}","import { ref, computed } from 'vue';\nimport { useFingerprint } from './useFingerprint';\nimport { FraudResult, FraudDetectionComposable } from '../types';\n\nexport function useFraudDetection(): FraudDetectionComposable {\n const { signals, riskScore } = useFingerprint();\n const isChecking = ref(false);\n\n const fraudSignals = computed(() => {\n if (!signals.value) return {};\n \n return {\n vpn: signals.value.vpn || false,\n tor: signals.value.tor || false,\n proxy: signals.value.proxy || false\n };\n });\n\n const checkFraud = async (data: any = {}): Promise<FraudResult> => {\n isChecking.value = true;\n \n try {\n // Determine fraud based on risk score and signals\n const currentRiskScore = riskScore.value;\n const block = currentRiskScore > 0.8 || signals.value?.tor || false;\n const challenge = currentRiskScore > 0.5 && currentRiskScore <= 0.8;\n const allow = currentRiskScore <= 0.5;\n \n const reasons: string[] = [];\n \n if (signals.value?.vpn) reasons.push('VPN detected');\n if (signals.value?.tor) reasons.push('Tor browser detected');\n if (signals.value?.proxy) reasons.push('Proxy detected');\n if (currentRiskScore > 0.7) reasons.push('High risk score');\n \n // Check transaction-specific risks\n if (data.amount && data.amount > 1000) {\n if (currentRiskScore > 0.3) {\n reasons.push('High-value transaction with elevated risk');\n }\n }\n\n return {\n block,\n challenge,\n allow,\n riskScore: currentRiskScore,\n reasons\n };\n } finally {\n isChecking.value = false;\n }\n };\n\n return {\n checkFraud,\n fraudSignals,\n isChecking\n };\n}"],"names":["TRACKING_UNSUPPORTED_ERROR","inject","ref","computed","onMounted"],"mappings":"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","x_google_ignoreList":[2]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tracetail/vue",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.12",
|
|
4
4
|
"description": "Vue SDK for TraceTail browser fingerprinting - over 99.5% accuracy",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/tracetail-vue.cjs.js",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"vue": "^3.0.0"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@tracetail/js": "^2.3.
|
|
53
|
+
"@tracetail/js": "^2.3.12"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@rollup/plugin-commonjs": "^25.0.0",
|