@tracetail/vue 2.3.10 → 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 CHANGED
@@ -82,21 +82,24 @@ const {
82
82
  } = useFingerprint();
83
83
  ```
84
84
 
85
- ### 📊 useTrackEvent()
85
+ ### 📊 Sending app events
86
86
 
87
- Track user events:
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
- const trackEvent = useTrackEvent();
90
+ import { useFingerprint } from '@tracetail/vue';
91
+
92
+ const { visitorId } = useFingerprint();
91
93
 
92
94
  const handleLogin = async () => {
93
- const result = await trackEvent('login', {
94
- username: 'user@example.com'
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, useTrackEvent } from '@tracetail/vue';
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
- const tracking = await trackEvent('login', { username: username.value });
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.com)
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: (event, data) => Promise.resolve({ success: true, event, data })
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
- const { client } = useTraceTail();
146
+ useTraceTail();
145
147
  const trackEvent = (event, data) => __awaiter(this, void 0, void 0, function* () {
146
- try {
147
- // TraceTail SDK doesn't have a track method - this is custom app functionality
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: (event, data) => Promise.resolve({ success: true, event, data })
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
- const { client } = useTraceTail();
144
+ useTraceTail();
143
145
  const trackEvent = (event, data) => __awaiter(this, void 0, void 0, function* () {
144
- try {
145
- // TraceTail SDK doesn't have a track method - this is custom app functionality
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: (event, data) => Promise.resolve({ success: true, event, data })
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
- const { client } = useTraceTail();
147
+ useTraceTail();
146
148
  const trackEvent = (event, data) => __awaiter(this, void 0, void 0, function* () {
147
- try {
148
- // TraceTail SDK doesn't have a track method - this is custom app functionality
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":";;;;;;UAIa,aAAa,GAGrB,MAAM,CAAC,WAAW;;ACFhB,UAAM,eAAe,GAAW;QACrC,OAAO,CAAC,GAAQ,EAAE,OAAyB,EAAA;;IACzC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IACnB,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC;gBAChD;YACF;;IAGA,QAAA,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;gBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,MAAA,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI;IACrC,SAAA,CAAC;;IAGF,QAAA,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;gBACzB,MAAM;gBACN;IACD,SAAA,CAAC;;IAGF,QAAA,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,GAAG;gBACvC,MAAM;IACN,YAAA,cAAc,EAAE,MAAM,MAAM,CAAC,mBAAmB,EAAE;gBAClD,KAAK,EAAE,CAAC,KAAa,EAAE,IAAU,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aACrF;QACH;;;IC9BF;IACA;AACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AAkGA;IACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,CAAC,CAAC;IACP,CAAC;AA6MD;IACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;IACrF;;aCxUgB,YAAY,GAAA;IAC1B,IAAA,MAAM,SAAS,GAAGA,UAAM,CAAC,aAAa,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CACb,2CAA2C;IAC3C,YAAA,6DAA6D,CAC9D;QACH;IAEA,IAAA,OAAO,SAAS;IAClB;;aCVgB,cAAc,GAAA;QAC5B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE;IAE1C,IAAA,MAAM,WAAW,GAAGC,OAAG,CAAqB,IAAI,CAAC;IACjD,IAAA,MAAM,OAAO,GAAGA,OAAG,CAAC,IAAI,CAAC;IACzB,IAAA,MAAM,KAAK,GAAGA,OAAG,CAAe,IAAI,CAAC;;QAGrC,MAAM,SAAS,GAAGC,YAAQ,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,0CAAE,SAAS,KAAI,IAAI,CAAA,CAAA,CAAA,CAAC;QACtE,MAAM,UAAU,GAAGA,YAAQ,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,0CAAE,UAAU,KAAI,CAAC,CAAA,CAAA,CAAA,CAAC;QACrE,MAAM,SAAS,GAAGA,YAAQ,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,0CAAE,SAAS,KAAI,CAAC,CAAA,CAAA,CAAA,CAAC;QACnE,MAAM,UAAU,GAAGA,YAAQ,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,0CAAE,UAAU,KAAI,KAAK,CAAA,CAAA,CAAA,CAAC;QACzE,MAAM,OAAO,GAAGA,YAAQ,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,0CAAE,OAAO,KAAI,IAAI,CAAA,CAAA,CAAA,CAAC;QAClE,MAAM,cAAc,GAAGA,YAAQ,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,0CAAE,cAAc,KAAI,CAAC,CAAA,CAAA,CAAA,CAAC;QAE7E,MAAM,eAAe,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;;IACjC,QAAA,IAAI;IACF,YAAA,OAAO,CAAC,KAAK,GAAG,IAAI;IACpB,YAAA,KAAK,CAAC,KAAK,GAAG,IAAI;;IAGlB,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,KAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;IACvD,gBAAA,WAAW,CAAC,KAAK,GAAG,MAAA,CAAA,MAAA,CAAA,EAClB,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,EAAS,EAClB,SAAS,EAAE,IAAI,IAAI,EAAE,EAAA,EAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CACZ;IAChB,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK;oBACrB;gBACF;;IAGA,YAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAElE,WAAW,CAAC,KAAK,GAAG;oBAClB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,KAAK;IACjB,gBAAA,OAAO,EAAE,MAAM,CAAC,UAAU,IAAI,EAAS;oBACvC,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,cAAc,EAAE,MAAM,CAAC;iBACxB;YACH;YAAE,OAAO,GAAG,EAAE;IACZ,YAAA,KAAK,CAAC,KAAK,GAAG,GAAY;IAC1B,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC;YAC9D;oBAAU;IACR,YAAA,OAAO,CAAC,KAAK,GAAG,KAAK;YACvB;IACF,IAAA,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;YACvB,MAAM,eAAe,EAAE;IACzB,IAAA,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;IACzB,QAAA,WAAW,CAAC,KAAK,GAAG,IAAI;YACxB,MAAM,eAAe,EAAE;IACzB,IAAA,CAAC,CAAA;;QAGDC,aAAS,CAAC,MAAK;IACb,QAAA,eAAe,EAAE;IACnB,IAAA,CAAC,CAAC;QAEF,OAAO;YACL,SAAS;YACT,UAAU;YACV,SAAS;YACT,UAAU;YACV,OAAO;YACP,cAAc;YACd,OAAO;YACP,KAAK;YACL,KAAK;YACL;SACD;IACH;;aClFgB,aAAa,GAAA;IAC3B,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE;IAEjC,IAAA,MAAM,UAAU,GAAG,CACjB,KAAa,EACb,IAAU,KACiB,SAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;IAC3B,QAAA,IAAI;;gBAEF,MAAM,OAAO,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;gBAE9E,OAAO;IACL,gBAAA,OAAO,EAAE,IAAI;IACb,gBAAA,UAAU,EAAE,KAAK;IACjB,gBAAA,SAAS,EAAE,CAAC;IACZ,gBAAA,OAAO,EAAE;iBACV;YACH;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC;IACzD,YAAA,MAAM,KAAK;YACb;IACF,IAAA,CAAC,CAAA;IAED,IAAA,OAAO,UAAU;IACnB;;aCvBgB,iBAAiB,GAAA;QAC/B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE;IAC/C,IAAA,MAAM,UAAU,GAAGF,OAAG,CAAC,KAAK,CAAC;IAE7B,IAAA,MAAM,YAAY,GAAGC,YAAQ,CAAC,MAAK;YACjC,IAAI,CAAC,OAAO,CAAC,KAAK;IAAE,YAAA,OAAO,EAAE;YAE7B,OAAO;IACL,YAAA,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK;IAC/B,YAAA,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK;IAC/B,YAAA,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI;aAC/B;IACH,IAAA,CAAC,CAAC;IAEF,IAAA,MAAM,UAAU,GAAG,CAAA,GAAA,MAAA,KAA+C,SAAA,CAAA,IAAA,EAAA,CAAA,GAAA,MAAA,CAAA,EAAA,MAAA,EAAA,WAAxC,OAAY,EAAE,EAAA;;IACtC,QAAA,UAAU,CAAC,KAAK,GAAG,IAAI;IAEvB,QAAA,IAAI;;IAEF,YAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK;IACxC,YAAA,MAAM,KAAK,GAAG,gBAAgB,GAAG,GAAG,KAAI,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAA,IAAI,KAAK;gBACnE,MAAM,SAAS,GAAG,gBAAgB,GAAG,GAAG,IAAI,gBAAgB,IAAI,GAAG;IACnE,YAAA,MAAM,KAAK,GAAG,gBAAgB,IAAI,GAAG;gBAErC,MAAM,OAAO,GAAa,EAAE;IAE5B,YAAA,IAAI,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,GAAG;IAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;IACpD,YAAA,IAAI,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,GAAG;IAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;IAC5D,YAAA,IAAI,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,KAAK;IAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACxD,IAAI,gBAAgB,GAAG,GAAG;IAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;;gBAG3D,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;IACrC,gBAAA,IAAI,gBAAgB,GAAG,GAAG,EAAE;IAC1B,oBAAA,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC;oBAC3D;gBACF;gBAEA,OAAO;oBACL,KAAK;oBACL,SAAS;oBACT,KAAK;IACL,gBAAA,SAAS,EAAE,gBAAgB;oBAC3B;iBACD;YACH;oBAAU;IACR,YAAA,UAAU,CAAC,KAAK,GAAG,KAAK;YAC1B;IACF,IAAA,CAAC,CAAA;QAED,OAAO;YACL,UAAU;YACV,YAAY;YACZ;SACD;IACH;;;;;;;;;;;;;","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.10",
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.9"
53
+ "@tracetail/js": "^2.3.12"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@rollup/plugin-commonjs": "^25.0.0",