@solomei-ai/intent 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -2
- package/dist/esm/index.js +1 -1
- package/dist/intent.umd.min.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,21 @@ initIntent({
|
|
|
32
32
|
});
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
### Advanced Configuration Options
|
|
36
|
+
|
|
37
|
+
The `initIntent` function accepts the following options:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
initIntent({
|
|
41
|
+
clientId: 'cal-pk-...', // Required: Your Callimacus Client ID
|
|
42
|
+
consent: true, // Optional: Enable/disable tracking (default: false)
|
|
43
|
+
geo: false, // Optional: Enable/disable geolocation (default: false)
|
|
44
|
+
baseUrl: 'https://...', // Optional: Custom API endpoint (default: 'https://intent.callimacus.ai')
|
|
45
|
+
ip: '192.0.2.1', // Optional: Client IP address
|
|
46
|
+
sidMaxAgeSeconds: 86400, // Optional: Session cookie max-age in seconds (default: 30 days)
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
35
50
|
---
|
|
36
51
|
|
|
37
52
|
## 🌐 CDN Usage
|
|
@@ -87,7 +102,7 @@ setFlag('intent:consent', false); // disabled
|
|
|
87
102
|
|
|
88
103
|
// Enable or disable device geolocation capture
|
|
89
104
|
setFlag('intent:geo', true); // enabled
|
|
90
|
-
setFlag('intent:geo', false); //
|
|
105
|
+
setFlag('intent:geo', false); // disabled
|
|
91
106
|
```
|
|
92
107
|
- When consent is granted, the tracker maintains a first-party cookie `intent_sid`.
|
|
93
108
|
- If consent is revoked, the tracker clears `intent_sid` and stops sending events.
|
|
@@ -101,9 +116,177 @@ import {
|
|
|
101
116
|
getIntentSessionId,
|
|
102
117
|
clearIntentSessionId,
|
|
103
118
|
ensureIntentSessionId,
|
|
119
|
+
setIntentSessionMaxAge,
|
|
104
120
|
} from '@solomei-ai/intent';
|
|
105
121
|
|
|
106
122
|
const sid = getIntentSessionId(); // string | undefined, can be sent to backend
|
|
107
123
|
clearIntentSessionId(); // deletes cookie
|
|
108
124
|
ensureIntentSessionId(); // creates cookie if missing
|
|
109
|
-
|
|
125
|
+
setIntentSessionMaxAge(86400); // updates cookie max-age (in seconds)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 🔒 Data Collection & Privacy
|
|
131
|
+
|
|
132
|
+
### What Data is Collected
|
|
133
|
+
|
|
134
|
+
When consent is granted, the Intent SDK automatically collects the following data to help understand user behavior and improve experiences:
|
|
135
|
+
|
|
136
|
+
1. **Screenshots**: Visual captures of the page viewport, downscaled to JPEG format for efficient transmission
|
|
137
|
+
2. **HTML Content**: Serialized HTML of interacted elements (buttons, links, inputs, etc.)
|
|
138
|
+
3. **Interaction Events**: User actions including:
|
|
139
|
+
- Clicks on buttons, links, and interactive elements
|
|
140
|
+
- Form submissions (Enter key on input fields)
|
|
141
|
+
- Page scroll events
|
|
142
|
+
- Page focus/blur events
|
|
143
|
+
- Pageview events
|
|
144
|
+
4. **Session Information**:
|
|
145
|
+
- Session ID stored in first-party cookie `intent_sid` (created when consent is granted)
|
|
146
|
+
- Session cookie max-age (default: 30 days, configurable via `sidMaxAgeSeconds`)
|
|
147
|
+
5. **Context Information**: Browser and device metadata:
|
|
148
|
+
- **User agent**: Browser name, version, and platform
|
|
149
|
+
- **Languages**: Preferred language(s) and accept-language settings
|
|
150
|
+
- **Timezone**: Local timezone and UTC offset
|
|
151
|
+
- **Local time**: Current date and time in user's timezone
|
|
152
|
+
- **Screen**: Resolution, pixel ratio, available space, and color depth
|
|
153
|
+
- **Viewport**: Window size and screen orientation
|
|
154
|
+
- **Device capabilities**: CPU cores, touch support, pointer type (coarse/fine)
|
|
155
|
+
- **Battery status**: Level and charging state (when available)
|
|
156
|
+
- **Network connection**: Connection type, speed, RTT, and data saver mode (when available or inferred from performance timing)
|
|
157
|
+
- **Performance timing**: Used to infer network characteristics
|
|
158
|
+
- **Online/offline status**: Browser connectivity state
|
|
159
|
+
- **Cookies enabled**: Whether the browser allows cookies
|
|
160
|
+
- **Do Not Track (DNT)**: Browser DNT setting value
|
|
161
|
+
- **Referrer**: HTTP referrer if present
|
|
162
|
+
- **PWA status**: Service worker presence and display mode
|
|
163
|
+
- **Device orientation/tilt**: Device physical orientation (when available)
|
|
164
|
+
- **Geolocation**: Latitude and longitude (only when explicitly enabled via `geo: true`)
|
|
165
|
+
6. **Client Configuration** (stored in localStorage):
|
|
166
|
+
- Client ID (`clientId`)
|
|
167
|
+
- API endpoint (`baseUrl`)
|
|
168
|
+
- Optional IP address (`ip`)
|
|
169
|
+
- Consent status (`intent:consent`)
|
|
170
|
+
- Geolocation preference (`intent:geo`)
|
|
171
|
+
- Session max-age setting
|
|
172
|
+
|
|
173
|
+
### Built-in Redaction
|
|
174
|
+
|
|
175
|
+
The SDK **automatically redacts** the following sensitive information:
|
|
176
|
+
|
|
177
|
+
- **Password fields** (`<input type="password">`)
|
|
178
|
+
- **Form fields with sensitive autocomplete attributes**:
|
|
179
|
+
- Names (`name`, `given-name`, `family-name`, `cc-name`)
|
|
180
|
+
- Email addresses (`email`)
|
|
181
|
+
- Phone numbers (`tel`)
|
|
182
|
+
- Addresses (`street-address`, `address-line1`, `postal-code`, `country`)
|
|
183
|
+
- Credit card details (`cc-number`, `cc-exp`, `cc-csc`)
|
|
184
|
+
- Birthday information (`bday`, `bday-day`, `bday-month`, `bday-year`)
|
|
185
|
+
- Organization details (`organization`, `organization-title`)
|
|
186
|
+
- Other sensitive fields (`sex`, `username`, `webauthn`)
|
|
187
|
+
|
|
188
|
+
Redacted fields are replaced with placeholder text like `<Password>`, `<Email>`, `<Credit card>`, etc., in both the HTML content and screenshots.
|
|
189
|
+
|
|
190
|
+
### Data Transmission & Storage
|
|
191
|
+
|
|
192
|
+
**How Data is Transmitted:**
|
|
193
|
+
- Events are sent to the Callimacus API endpoint (default: `https://intent.callimacus.ai/events`)
|
|
194
|
+
- Data is transmitted via HTTPS POST requests with JSON payloads
|
|
195
|
+
- The SDK uses `fetch()` with `keepalive` for reliability during page unload
|
|
196
|
+
- Credentials are not included in requests (`credentials: 'omit'`)
|
|
197
|
+
- The client ID is sent in the `x-sl-access-token` header
|
|
198
|
+
- The session ID is sent in the `x-intent-sid` header
|
|
199
|
+
|
|
200
|
+
**Local Storage:**
|
|
201
|
+
- The SDK stores configuration and preferences in browser `localStorage`
|
|
202
|
+
- Keys used: `intent:consent`, `intent:geo`, `intent:data-client-id`, `intent:data-base-url`, `intent:data-ip`, `intent:data-sid-max-age`
|
|
203
|
+
- localStorage data persists until explicitly cleared by the user or your application
|
|
204
|
+
|
|
205
|
+
**Cookies:**
|
|
206
|
+
- First-party cookie `intent_sid` stores the session identifier
|
|
207
|
+
- Cookie attributes: `SameSite=Lax`, `Secure` (HTTPS only)
|
|
208
|
+
- Default expiration: 30 days (configurable via `sidMaxAgeSeconds`)
|
|
209
|
+
- Cookie is created when consent is granted and deleted when consent is revoked
|
|
210
|
+
|
|
211
|
+
**Data Retention:**
|
|
212
|
+
- Data retention policies are managed by Callimacus, not by this client-side SDK
|
|
213
|
+
- For information about server-side data retention, consult your Callimacus account settings or contact Callimacus support
|
|
214
|
+
|
|
215
|
+
### Your Responsibility: Redacting Additional Fields
|
|
216
|
+
|
|
217
|
+
⚠️ **Important**: While the SDK provides automatic redaction for common sensitive fields, **you are responsible for identifying and redacting any additional sensitive or PII data specific to your application**.
|
|
218
|
+
|
|
219
|
+
The SDK cannot automatically detect all sensitive information. You must explicitly mark any custom fields, proprietary data, or application-specific sensitive content for redaction.
|
|
220
|
+
|
|
221
|
+
### How to Redact Custom Fields
|
|
222
|
+
|
|
223
|
+
Use the `data-intent-redact` attribute to mark elements for redaction:
|
|
224
|
+
|
|
225
|
+
#### Option 1: Redact with default label
|
|
226
|
+
```html
|
|
227
|
+
<!-- Element will be masked with a gray placeholder labeled "<Redacted>" -->
|
|
228
|
+
<div data-intent-redact>Sensitive content here</div>
|
|
229
|
+
<input type="text" data-intent-redact />
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
#### Option 2: Redact with custom label
|
|
233
|
+
```html
|
|
234
|
+
<!-- Provide a descriptive label using data-intent-redact-label -->
|
|
235
|
+
<div data-intent-redact data-intent-redact-label="Account Balance">$1,234.56</div>
|
|
236
|
+
<input type="text" data-intent-redact data-intent-redact-label="Social Security Number" />
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
The custom label will appear as `<Account Balance>` or `<Social Security Number>` in the captured screenshots and HTML.
|
|
240
|
+
|
|
241
|
+
#### Option 3: Completely ignore elements
|
|
242
|
+
```html
|
|
243
|
+
<!-- Element will not appear in screenshots or HTML captures at all -->
|
|
244
|
+
<div data-intent-redact="ignore">This won't be captured</div>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Redaction Examples
|
|
248
|
+
|
|
249
|
+
```html
|
|
250
|
+
<!-- Patient medical record number -->
|
|
251
|
+
<input
|
|
252
|
+
type="text"
|
|
253
|
+
data-intent-redact
|
|
254
|
+
data-intent-redact-label="Medical Record Number"
|
|
255
|
+
placeholder="Enter MRN"
|
|
256
|
+
/>
|
|
257
|
+
|
|
258
|
+
<!-- Customer account balance -->
|
|
259
|
+
<div data-intent-redact data-intent-redact-label="Account Balance">
|
|
260
|
+
Balance: $5,432.10
|
|
261
|
+
</div>
|
|
262
|
+
|
|
263
|
+
<!-- Internal employee ID -->
|
|
264
|
+
<span data-intent-redact data-intent-redact-label="Employee ID">
|
|
265
|
+
EMP-123456
|
|
266
|
+
</span>
|
|
267
|
+
|
|
268
|
+
<!-- Proprietary business data -->
|
|
269
|
+
<section data-intent-redact data-intent-redact-label="Revenue Dashboard">
|
|
270
|
+
<!-- Entire section will be redacted -->
|
|
271
|
+
Q4 Revenue: $10M
|
|
272
|
+
</section>
|
|
273
|
+
|
|
274
|
+
<!-- Element to completely exclude from tracking -->
|
|
275
|
+
<div data-intent-redact="ignore">
|
|
276
|
+
Internal debug information
|
|
277
|
+
</div>
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Best Practices
|
|
281
|
+
|
|
282
|
+
1. **Review Your Forms**: Audit all form fields and identify which ones contain sensitive or PII data beyond standard fields (name, email, phone, etc.)
|
|
283
|
+
2. **Mark Custom Sensitive Data**: Apply `data-intent-redact` to any elements displaying user-specific information, financial data, health information, or proprietary business data
|
|
284
|
+
3. **Use Descriptive Labels**: Provide meaningful labels with `data-intent-redact-label` to help you understand what was redacted when reviewing captured events
|
|
285
|
+
4. **Test Your Redaction**: Before going to production, test your pages to ensure all sensitive information is properly masked
|
|
286
|
+
5. **Regular Audits**: Periodically review your application for new sensitive fields that may need redaction as features evolve
|
|
287
|
+
|
|
288
|
+
### Compliance Note
|
|
289
|
+
|
|
290
|
+
Proper data redaction is critical for compliance with privacy regulations (GDPR, CCPA, HIPAA, etc.). While this SDK provides tools for redaction, **it is your responsibility as the integrator to ensure all applicable sensitive data is properly redacted** according to your legal and regulatory requirements.
|
|
291
|
+
|
|
292
|
+
---
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* © 2025 Solomei AI SRL. Proprietary and confidential.
|
|
3
3
|
*/
|
|
4
|
-
import t from"html2canvas-pro";import e from"js-cookie";async function n(){const t=c,e=[];let n=t(424);if(function(t){const e=c;return e(484)in t&&typeof t[e(484)]!==e(400)}(navigator)){const n=navigator.connection;n?.effectiveType&&e[t(489)](n[t(483)]),"number"==typeof n?.[t(469)]&&e[t(489)]("~"+n[t(469)]+t(444)),"number"==typeof n?.[t(445)]&&e.push(n[t(445)]+t(478)),n?.saveData&&e[t(489)](t(455))}else{const o=function(t=20){const e=c,n=performance[e(404)](e(408)).find(t=>t.entryType===e(408)),o=n?Math.max(0,n[e(502)]-n[e(411)]):void 0,a=performance[e(404)](e(435)).filter(t=>"resource"===t[e(498)]);let i=0,r=0;for(const n of a.slice(0,Math[e(492)](0,t))){const t=n[e(496)]>0?n.encodedBodySize:n[e(467)]>0?n[e(467)]:0,o=n[e(431)];t>0&&o>0&&Number[e(393)](o)&&(i+=t,r+=o)}const s=r>0?8*i/r:void 0;return{downlinkMbps:typeof s===e(405)?s/1e3:void 0,rttMs:o}}();typeof o.downlinkMbps===t(405)&&e[t(489)]("~"+o[t(403)][t(426)](1)+" Mbps"),typeof o[t(501)]===t(405)&&e[t(489)]("TTFB ~"+Math[t(459)](o[t(501)])+t(478)),n=t(410)}const o=performance[t(404)](t(408))[t(423)](e=>e[t(498)]===t(408));if(o){const n=Math.max(0,o[t(502)]-o[t(411)]);!e[t(427)](e=>e[t(413)]("TTFB"))&&e.push("TTFB ~"+Math[t(459)](n)+" ms")}return e[t(409)]?t(420)+e.join(", ")+" ("+n+")":void 0}function o(){const t=c;if(!function(t){const e=c;return e(442)in t&&void 0!==t[e(442)]}(navigator))return;const e=navigator[t(442)],n=Array.isArray(e[t(503)])?e[t(503)][t(419)](e=>e.brand+" "+e[t(494)])[t(432)](", "):void 0,o=e[t(440)]?e[t(440)]+(e[t(452)]?" (mobile)":""):void 0;return[n&&t(473)+n,o&&t(396)+o].filter(Boolean)[t(432)](t(430))||void 0}async function a(t=400){const e=c;if("DeviceOrientationEvent"in window&&window[e(436)])return new Promise(n=>{const o=e;let a=!1;const i=t=>{const e=c,o=typeof t[e(437)]===e(405)?t[e(437)]:void 0,r=typeof t[e(485)]===e(405)?t[e(485)]:void 0;if(void 0===o||void 0===r)return;if(a)return;a=!0,window[e(417)](e(433),i);const s=function(t,e){const n=c,o=Math[n(456)](t),a=Math.abs(e);return o<15&&a<15?n(470):o>=60?"upright":"reclined"}(o,r);n(e(495)+s+e(446)+Math.round(o)+"°, γ "+Math[e(459)](r)+"°)")};window[o(399)](()=>{const t=o;a||(a=!0,window[t(417)](t(433),i),n(void 0))},t),window[o(474)]("deviceorientation",i,{passive:!0})})}async function i(){const t=c;var e;if(e=navigator,c(428)in e&&"function"==typeof e.getBattery)try{const e=await navigator.getBattery(),n=Math[t(459)](100*e.level);return"Battery: "+[(Number[t(393)](n)?n:0)+"%",e[t(486)]?t(486):"not charging"].join(", ")}catch{return}}async function r(){const t=c,e=(new Intl.DateTimeFormat).resolvedOptions()[t(482)],r=function(t){const e=c,n=t<=0?"+":"-",o=Math.abs(t);return""+n+String(Math.floor(o/60))[e(481)](2,"0")+":"+String(o%60).padStart(2,"0")}((new Date)[t(477)]()),s=[];s[t(489)](t(480)+navigator.language),navigator[t(458)]?.[t(409)]&&s[t(489)](t(418)+navigator[t(458)][t(432)](", ")),s[t(489)](t(394)+navigator[t(497)]);const d=o();d&&s[t(489)](d),s[t(489)]("Timezone: "+e+" (UTC"+r+")"),s[t(489)](t(471)+(new Date)[t(449)]());const u=window[t(460)]||1;s[t(489)](t(407)+screen[t(476)]+"x"+screen.height+" @"+u+t(392)+screen[t(479)]+"x"+screen[t(439)]+", "+screen[t(457)]+t(450));const l=screen[t(443)]&&"type"in screen[t(443)]?screen[t(443)][t(390)]:void 0;s[t(489)]("Viewport: "+window[t(490)]+"x"+window.innerHeight+(l?t(466)+l:"")),s[t(489)](t(395)+navigator[t(448)]+t(425));const f=await n();f&&s.push(f),s.push(function(){const t=c,e=typeof matchMedia===t(402)&&matchMedia("(pointer: coarse)")[t(464)],n=typeof matchMedia===t(402)&&matchMedia(t(441))[t(464)],o=e?t(453):n?t(468):"unknown",a=typeof navigator[t(475)]===t(405)?navigator[t(475)]:0;return t(461)+o+", maxTouchPoints "+a}());const m=await i();m&&s[t(489)](m),s[t(489)]("CookiesEnabled: "+(navigator[t(416)]?t(472):"no")+t(491)+(navigator[t(487)]??t(398))),s[t(489)](t(462)+(navigator[t(406)]?"yes":"no")),document[t(434)]&&s[t(489)](t(465)+document[t(434)]),s[t(489)](function(){const t=c,e=typeof matchMedia===t(402)&&matchMedia(t(500)).matches,n=Boolean(navigator[t(493)]?.[t(422)]);return t(463)+(n?"SW-controlled":t(391))+t(447)+(e?t(472):"no")}());const p=await a();p&&s[t(489)](p);const g="undefined"!=typeof localStorage&&"enabled"===localStorage[t(412)]("intent:geo");return s.push(t(g?499:454)),s[t(432)](t(430))}function c(t,e){const n=s();return(c=function(t,e){return n[t-=390]})(t,e)}function s(){const t=["encodedBodySize","userAgent","entryType","Device geolocation: enabled","(display-mode: standalone)","rttMs","responseStart","brands","type","no SW","x (avail ","isFinite","User agent: ","CPU: ","Platform: ","6352YEaTdC","n/a","setTimeout","undefined","84yAoUJC","function","downlinkMbps","getEntriesByType","number","onLine","Screen: ","navigation","length","inferred","requestStart","getItem","startsWith","444485UoKFJb","36864ljdesI","cookieEnabled","removeEventListener","Languages: ","map","Network: ","546372Nhhysx","controller","find","browser API"," cores","toFixed","some","getBattery","907551VudPlS"," | ","duration","join","deviceorientation","referrer","resource","isSecureContext","beta","3654OaBRcp","availHeight","platform","(pointer: fine)","userAgentData","orientation"," Mbps","rtt"," (β ",", display-mode standalone: ","hardwareConcurrency","toString","-bit)","6189344UfMlTM","mobile","coarse","Device geolocation: disabled","saveData","abs","colorDepth","languages","round","devicePixelRatio","Pointer/Touch: ","Online: ","PWA: ","matches","Referrer: ",", orientation ","transferSize","fine","downlink","flat","Local time: ","yes","UA brands: ","addEventListener","maxTouchPoints","width","getTimezoneOffset"," ms","availWidth","Language: ","padStart","timeZone","effectiveType","connection","gamma","charging","doNotTrack","3540972KZVmEu","push","innerWidth","; DNT: ","max","serviceWorker","version","Tilt: "];return(s=function(){return t})()}!function(){const t=c,e=s();for(;;)try{if(873814===parseInt(t(429))/1+-parseInt(t(421))/2+parseInt(t(438))/3+-parseInt(t(488))/4+parseInt(t(414))/5*(-parseInt(t(401))/6)+-parseInt(t(451))/7+-parseInt(t(397))/8*(-parseInt(t(415))/9))break;e.push(e.shift())}catch(t){e.push(e.shift())}}();const d=$;function u(){const t=["entries","/p.gif","some","Redacted","bbox","string","Phone","altitude","10827LkmJrg","globalAlpha","PERMISSION_DENIED","clearTimeout","middle","TIMEOUT","heading","address-level2","intent","deviceGeoSent","#9ca3af","cc-exp-year","setTimeout","body","search","trim","intent:consent","hostname","3056eEyjYA","email","code","longitude","cc-given-name","has","https:","left","speed","organization-title","intent:data-sid-max-age","input, textarea","intent:geo","address-level1","get","address-level3","bday","click","name","querySelectorAll","timestamp","address-level4","readAsDataURL","removeEventListener","pointerdown","cc-exp","addEventListener","country-name","strokeStyle","width","data-intent-redact","ignore","label","no-store","street-address","Sensitive","address-line2","toISOString","host",'="mask"], [',"getAttribute","granted","page-focus","textBaseline","aria-label","keydown","target","getCurrentPosition","[onclick]","fillRect","disabled","image/jpeg","Lax","drawImage","now","TEXTAREA","load","given-name","1097248MbTgez","context","scroll","set","innerWidth","UNKNOWN","https://intent.callimacus.ai","autocomplete","omit","getBoundingClientRect","outerHTML","stringify","Organization","round","right","random","intent:data-base-url","data-html2canvas-ignore","hasFocus","bottom","restore","address-line1","closest","cc-type","filter","altitudeAccuracy","key","bday-month","cc-csc",'[role="button"]',"username","setAttribute","515484qSmPbO","Password","hidden","postal-code","cc-exp-month","slice","forEach","protocol","value","data-intent-redact-label","title","address-line3","isFinite","fillStyle","Address","visibilityState","isSecureContext",'input[type="button"]',"cc-name","floor","Enter","413Blglxh",'[role="link"]',"scrollY","split","pageview","max","height","sex","px system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif","searchbox","Birthday","push","POSITION_UNAVAILABLE","lon","toDataURL","strokeRect","remove","cc-family-name","scrollX","application/json","x-sl-access-token","message","country","x-intent-sid","34206FsjQwZ","tagName","cc-number","number","7408NTaSPQ","66KsqUVa","intent_sid","font","attributes","family-name","button","a[href]","type","mask","geolocation","webauthn","query","POST","from","startsWith","toLowerCase","accuracy","bday-year","textContent","page-blur","getContext","<no visible label>","min","innerHeight","href","indexOf","password","secure","textAlign","onLine","focus","device","FileReader error","input-submit","pixel body fallback failed","html","tel","bday-day","visibilitychange","localhost","226851cjhvuq","#e5e7eb","permissions","randomUUID","getItem","length","includes","1865zJCVNX","594070kCNWSt","Name","latitude"];return(u=function(){return t})()}!function(){const t=$,e=u();for(;;)try{if(360090===-parseInt(t(435))/1+parseInt(t(403))/2+parseInt(t(525))/3+parseInt(t(484))/4*(parseInt(t(532))/5)+-parseInt(t(480))/6*(parseInt(t(456))/7)+-parseInt(t(345))/8*(parseInt(t(327))/9)+parseInt(t(533))/10*(parseInt(t(485))/11))break;e.push(e.shift())}catch(t){e.push(e.shift())}}();let l,f="",m=0;const p=d(343),g=d(357);let h=!1,y=!1,w=!1,v=!1,b=!1,M=!1;const x="intent:data-client-id",S=d(419),I=d(409),T=d(355),E="__intent__sdk__initialized__",A=[d(490),d(491),"a",'input[type="submit"]',d(452),d(432),d(457),d(393)].join(","),L=d(375),k=d(444),N=new Set([d(363),"given-name","additional-name","family-name","nickname",d(433),d(346),d(521),"organization",d(354),d(379),d(424),d(381),"address-line3",d(358),d(334),d(360),d(366),d(478),"country-name",d(438),d(453),"cc-given-name","cc-additional-name",d(473),d(482),d(370),d(439),d(338),d(431),d(426),d(361),d(522),d(430),d(502),d(463),d(495)]);function D(t){return"<"+B(t)+">"}function B(t){const e=d,n=(t[e(385)]?.(k)??"").trim();if(n)return n;const o=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?(t[e(410)]||"")[e(500)]()[e(342)]()[e(459)](/\s+/).filter(Boolean):[];return t instanceof HTMLInputElement&&t.type===e(511)?e(436):o[e(538)](t=>t[e(499)]("cc-"))?"Credit card":o[e(538)](t=>[e(363),e(402),e(489),"additional-name",e(453),e(349),e(473)][e(531)](t))?e(534):o[e(531)](e(346))?"Email":o[e(531)](e(521))?e(325):o.some(t=>t.startsWith(e(361)))?e(466):o.includes("sex")?"Sex":o[e(538)](t=>[e(379),e(424),e(381),e(446),e(358),e(334),"address-level3",e(366),e(438),e(478),e(372)].includes(t))?e(449):o[e(531)]("organization")||o[e(531)]("organization-title")?e(415):t[e(385)]?.(L)?.[e(500)]()===e(493)?e(539):e(380)}function H(t){const e=d;return t.hasAttribute(e(420))||t.getAttribute(L)?.[e(500)]()===e(376)}function U(t){const e=d,n=t.getAttribute(L);return""===n||n?.[e(500)]()===e(493)}function P(t){const e=d;if(t instanceof HTMLInputElement){if(t[e(492)]===e(511))return!0;if(t[e(492)]===e(341))return!1;const n=t.getAttribute("role");if(n&&n[e(500)]()===e(465))return!1;if((t.autocomplete||"")[e(500)]().trim()[e(459)](/\s+/)[e(427)](Boolean)[e(538)](t=>N[e(350)](t)))return!0}if(t instanceof HTMLTextAreaElement){if((t.autocomplete||"")[e(500)]().trim()[e(459)](/\s+/)[e(427)](Boolean)[e(538)](t=>N.has(t)))return!0}return!1}function O(t){return!!U(t)||!!P(t)}function C(){const t=d,e=[],n=t=>{const e=$,n=t[e(412)]();if(n[e(374)]<=0||n[e(462)]<=0)return;const o=Math.max(0,n[e(352)]),a=Math[e(461)](0,n.top),i=Math[e(461)](0,Math[e(507)](n[e(417)],window[e(407)])-o),r=Math[e(461)](0,Math[e(507)](n[e(422)],window.innerHeight)-a);return i<=0||r<=0?void 0:{x:o,y:a,w:i,h:r}};document[t(364)]("["+L+t(384)+L+'=""]')[t(441)](o=>{const a=t,i=n(o);if(!i)return;const r=B(o)||"Redacted";e[a(467)]({...i,label:r})});return document[t(364)](t(356))[t(441)](o=>{const a=t;if(!U(i=o)&&!P(i))return;var i;if(H(o))return;const r=n(o);if(!r)return;const c=B(o);e[a(467)]({...r,label:c})}),e}const j=()=>localStorage[d(529)](p)===d(386);function R(t){return e[d(359)](t)}function W(t,n){const o=d,a=localStorage[o(529)](T),i=null===a?void 0:Number(a),r=Number[o(447)](n)?Number(n):"number"==typeof i&&Number[o(447)](i)?i:86400,c=window.location[o(442)]===o(351);e[o(406)](o(486),t,{expires:r/86400,path:"/",sameSite:o(397),...c&&{secure:!0}})}function z(){const t=d;e[t(472)](t(486),{path:"/"})}function F(){const t=d,e=R("intent_sid");if(!j())return e&&z(),void(f="");if(e)return void(f=e);const n="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto[t(528)]():Date[t(399)]()+"-"+Math[t(418)]();f=n,W(f)}function _(){return F(),j()&&Boolean(f)&&(()=>{const t=d,e=localStorage[t(529)](x);return typeof e===t(324)&&e[t(342)]()[t(530)]>0})()}function J(){return!_()||w}async function q(e){const n=d,o=function(t){const e=d,n=t.cloneNode(!1);return n instanceof HTMLInputElement&&t instanceof HTMLInputElement?(Array[e(498)](t[e(488)])[e(441)](({name:t,value:o})=>{n[e(434)](t,o)}),n[e(443)]=O(t)?D(t):t[e(443)],t.disabled&&n[e(434)](e(395),""),n[e(413)]):n instanceof HTMLTextAreaElement&&t instanceof HTMLTextAreaElement?(Array.from(t.attributes)[e(441)](({name:t,value:o})=>{n[e(434)](t,o)}),n[e(443)]=O(t)?D(t):t[e(443)],t.disabled&&n.setAttribute(e(395),""),n[e(413)]):t[e(413)]}(e),a=e[n(412)](),i={useCORS:!0,...{x:window[n(474)],y:window[n(458)],width:window[n(407)],height:window[n(508)],scale:1},ignoreElements:t=>t instanceof Element&&H(t)},r=await t(document[n(340)],i),c=r[n(374)],s=r.height,u=Math[n(461)](c,s),l=.8*Math[n(461)](window[n(407)],window[n(508)]),f=Math[n(507)](1,l/u),m=12/(a[n(462)]||1),p=Math[n(507)](1,Math[n(461)](f,m)),g=Math[n(416)](c*p),h=Math[n(416)](s*p),y=document.createElement("canvas");y[n(374)]=g,y[n(462)]=h;const w=y[n(505)]("2d");w[n(398)](r,0,0,c,s,0,0,g,h);const v=C();if(v[n(530)]){w.save(),w[n(328)]=1;for(const t of v){const e=Math[n(416)](t.x*p),o=Math.round(t.y*p),a=Math.round(t.w*p),i=Math[n(416)](t.h*p);w[n(448)]=n(526),w[n(394)](e,o,a,i),w[n(373)]=n(337),w.lineWidth=Math[n(461)](1,Math[n(454)](.02*Math[n(507)](a,i))),w[n(471)](e,o,a,i);const r=Math.max(10,Math[n(507)](22,Math[n(454)](.35*i)));w[n(487)]=r+n(464),w[n(448)]="#374151",w[n(513)]="center",w[n(388)]=n(331);const c="<"+(t[n(377)]?.[n(342)]()[n(530)]?t[n(377)]:n(380))+">";w.fillText(c,e+a/2,o+i/2,a-6)}w[n(423)]()}const b=y[n(470)](n(396),.8);return{html:o,bbox:{x:a.x,y:a.y,w:a[n(374)],h:a[n(462)]},img:b}}function Q(){const t=d,e=localStorage.getItem(x),n={"Content-Type":t(475)};return e&&(n[t(476)]=e),f&&(n[t(479)]=f),n}async function V(t,e){const n=d,o=(localStorage[n(529)](S)??I)+"/events",a=localStorage[n(529)](x)??void 0,i=JSON.stringify({...t,clientId:a});try{if((await fetch(o,{method:n(497),headers:Q(),body:i,keepalive:e,credentials:n(411)})).ok)return}catch{}try{await async function(t,e=!1){const n=d,o=(localStorage[n(529)](S)??I)+n(537);if(!(await fetch(o,{method:n(497),headers:Q(),body:JSON[n(414)](t),keepalive:e,credentials:n(411),cache:n(378)})).ok)throw new Error(n(519))}(t,e)}catch{}}async function Y(t,e,n,o){const a=d;if(!_())return;const i={...e,localTime:(new Date)[a(382)]()};(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement)&&(i[a(443)]=O(n)?D(n):n.value);let r="",c={x:0,y:0,w:0,h:0},s="";const u=!(t===a(405)||t===a(504)||t===a(387)),l=Date[a(399)](),f=l-m>=5e3;let p=o;const g=t===a(362)||t===a(518)||t===a(460);u&&!p&&(g||f)&&(p=await q(n),m=l),p&&(r=p[a(520)],c=p[a(323)],s=p.img);const h=t===a(504)||t===a(387)||t===a(460),y={ts:Date[a(399)](),event:t,props:i,html:h?"":r,bbox:c,img:s},w=document[a(450)]===a(437)||t===a(504);await V(y,w)}function K(){return"enabled"===localStorage[d(529)](g)}async function X(t={}){const e=d;if(!_())return;const n=typeof t.lat===e(483)&&typeof t[e(469)]===e(483);if(n&&y)return;if(!n&&h)return;const o=localStorage[e(529)]("intent:data-ip"),a={context:await r()};o&&(a.ip=o);for(const[n,o]of Object[e(536)](t))a[n]=o;await Y(e(404),a,document[e(340)],{html:"",bbox:{x:0,y:0,w:0,h:0},img:""}),n?y=!0:h=!0}async function G(){const t=d,e={canSend:_(),geoEnabled:K(),deviceGeoSent:y};if(!e.canSend||!e.geoEnabled||e[t(336)])return;const n={secure:window[t(451)],proto:location[t(442)],host:location[t(344)]};if(n[t(512)]||t(383),!("geolocation"in navigator))return;if(b)return;b=!0,w=!0;const o={enableHighAccuracy:!1,maximumAge:3e5,timeout:2e4};Date[t(399)]();try{await(navigator[t(527)]?.[t(496)]({name:"geolocation"}))}catch(t){}await new Promise(e=>{const n=t;let a=!1;const i=async(t,n,o)=>{const i=$;a||(a=!0,Date[i(399)](),Number.isFinite(t)&&Number[i(447)](n)&&await X({lat:t,lon:n,source:i(516)}),b=!1,w=!1,M=!0,e())};navigator[n(494)][n(392)](t=>{const e=$,n=t.coords;i(n[e(535)],n[e(348)],(n[e(501)],typeof n[e(326)]===e(483)&&n[e(326)],"number"==typeof n.altitudeAccuracy&&n[e(428)],"number"==typeof n[e(333)]&&n[e(333)],typeof n[e(353)]===e(483)&&n[e(353)],t[e(365)],document[e(450)],document[e(421)]()))},t=>{const e=$,n=t?.[e(347)];e(1===n?329:2===n?468:3===n?332:408),t?.[e(477)],navigator[e(514)],document[e(450)],document[e(421)](),window[e(451)],location[e(442)],location[e(344)],i(void 0,void 0)},o)})}function Z(){const t=d;if(v||!K()||y)return;v=!0;const e=()=>{const t=$;window.removeEventListener(t(369),e,!0),window[t(368)](t(390),e,!0),G()};window[t(371)](t(369),e,!0),window[t(371)]("keydown",e,!0)}function $(t,e){const n=u();return($=function(t,e){return n[t-=323]})(t,e)}F();let tt=!document[d(437)]&&document[d(421)](),et=document[d(421)]();const nt=()=>{const t=d;if(J())return;const e=!document[t(437)]&&document[t(421)]();e&&(et=!0),et||e?e!==tt&&(tt=e,Y(t(e?387:504),{},document[t(340)])):tt=e};function ot(){const t=d;(function(){const t=globalThis;return!t[E]&&(Object.defineProperty(t,E,{value:!0,configurable:!1,enumerable:!1,writable:!1}),!0)})()&&(window[t(371)]("load",()=>{const e=t;_()&&(X(),(window.isSecureContext||location[e(344)]===e(524))&&(K()&&Z(),window.addEventListener(e(515),()=>{!y&&K()&&!b&&M&&G()}),document.addEventListener("visibilitychange",()=>{!document[e(437)]&&!y&&K()&&!b&&M&&G()})))}),window.addEventListener("storage",e=>{e[t(429)]===p&&(function(){const t=d;return localStorage.getItem(p)===t(386)}()?(h=!1,X(),K()&&Z()):(h=!1,y=!1)),e.key===g&&(K()?Z():y=!1)}),window.addEventListener(t(401),()=>{const e=t;_()&&Y(e(460),{url:window.location[e(509)],title:document[e(445)],ref:document.referrer},document[e(340)])}),addEventListener("pointerdown",function(t,e){let n=0;return(...o)=>{const a=Date.now();a-n>=e&&(n=a,t(...o))}}(e=>{const n=t;if(J())return;const o=e.target instanceof Element?e[n(391)][n(425)](A):null;o instanceof HTMLElement&&(l=q(o))},50),{capture:!0,passive:!0}),addEventListener(t(362),async e=>{const n=t;if(J())return;const o=e[n(391)]instanceof Element?e.target[n(425)](A):null;if(!(o instanceof HTMLElement))return;const a=function(t){const e=d;return t[e(385)](e(389))??t[e(445)]??t[e(503)]?.[e(342)]()??e(506)}(o),i=l?await l:void 0;l=void 0,await Y(n(362),{tag:o[n(481)],label:a},o,i)},!0),addEventListener("keydown",e=>{const n=t;if(!J()&&e[n(429)]===n(455)){const t=e[n(391)];if(t instanceof HTMLElement&&("INPUT"===t.tagName||t[n(481)]===n(400))){const e=t instanceof HTMLInputElement?t.name:void 0,o=t.id||void 0;Y("input-submit",{tag:t[n(481)],name:e??o},t)}}},{capture:!0}),[t(515),"blur"].forEach(e=>{window[t(371)](e,nt)}),document[t(371)](t(523),nt),window.addEventListener("scroll",function(t,e){let n;return(...o)=>{const a=$;void 0!==n&&window[a(330)](n),n=window[a(339)](()=>{n=void 0,t(...o)},e)}}(()=>{const e=t;J()||Y(e(405),{scrollX:window[e(474)],scrollY:window[e(458)]},document[e(340)])},250),{passive:!0}),window[t(335)]??={send(e,n){const o=t;_()&&Y(e,n,document[o(340)])}})}function at(t,e){const n=ct();return(at=function(t,e){return n[t-=346]})(t,e)}function it(t,e){const n=at;try{if(void 0===e)return;localStorage[n(372)](t,e?t===n(369)?n(354):"enabled":n(360))}catch{}}function rt(t={}){const e=at;if(localStorage[e(372)](e(363),t[e(373)]??""),localStorage.setItem(e(359),t.ip??""),localStorage[e(372)](e(352),t[e(371)]??"https://intent.callimacus.ai"),typeof t[e(356)]===e(361)&&localStorage.setItem("intent:data-sid-max-age",String(t[e(356)])),it(e(369),t[e(364)]),it("intent:geo",t[e(346)]),t[e(364)]){if(!R(e(365))){W("undefined"!=typeof crypto&&"function"==typeof crypto[e(366)]?crypto[e(366)]():Date[e(355)]()+"-"+Math[e(353)](),t.sidMaxAgeSeconds)}}ot()}function ct(){const t=["9384065HljogQ","intent:data-sid-max-age","9JToeoj","4850180IyjJWR","isFinite","intent:data-base-url","random","granted","now","sidMaxAgeSeconds","1789204ejSMUD","91406xylkSr","intent:data-ip","disabled","number","9161028DxYWaB","intent:data-client-id","consent","intent_sid","randomUUID","6075468vAQQlQ","243290bAMubf","intent:consent","1128rgximG","baseUrl","setItem","clientId","geo"];return(ct=function(){return t})()}function st(){return R(at(365))}function dt(){F()}function ut(){z()}function lt(t){const e=at;Number[e(351)](t)&&localStorage[e(372)](e(348),String(t));const n=R(e(365));n&&W(n,t)}!function(){const t=at,e=ct();for(;;)try{if(971915===parseInt(t(357))/1+-parseInt(t(368))/2*(-parseInt(t(349))/3)+-parseInt(t(350))/4+parseInt(t(347))/5+parseInt(t(367))/6+-parseInt(t(358))/7*(parseInt(t(370))/8)+-parseInt(t(362))/9)break;e.push(e.shift())}catch(t){e.push(e.shift())}}();export{ut as clearIntentSessionId,dt as ensureIntentSessionId,st as getIntentSessionId,rt as initIntent,it as setFlag,lt as setIntentSessionMaxAge};
|
|
4
|
+
import t from"html2canvas-pro";import e from"js-cookie";function n(t,e){const o=i();return(n=function(t,e){return o[t-=488]})(t,e)}async function o(){const t=n,e=[];let o="browser API";if(function(t){const e=n;return e(494)in t&&typeof t[e(494)]!==e(509)}(navigator)){const n=navigator[t(494)];n?.[t(585)]&&e.push(n[t(585)]),typeof n?.[t(584)]===t(540)&&e[t(525)]("~"+n[t(584)]+t(493)),"number"==typeof n?.[t(554)]&&e.push(n[t(554)]+" ms"),n?.[t(559)]&&e.push(t(559))}else{const a=function(t=20){const e=n,o=performance.getEntriesByType("navigation")[e(541)](t=>"navigation"===t[e(574)]),a=o?Math.max(0,o[e(519)]-o.requestStart):void 0,i=performance[e(605)]("resource").filter(t=>t[e(574)]===e(580));let r=0,c=0;for(const n of i.slice(0,Math[e(547)](0,t))){const t=n[e(561)]>0?n[e(561)]:n.transferSize>0?n[e(539)]:0,o=n.duration;t>0&&o>0&&Number[e(568)](o)&&(r+=t,c+=o)}const s=c>0?8*r/c:void 0;return{downlinkMbps:typeof s===e(540)?s/1e3:void 0,rttMs:a}}();typeof a.downlinkMbps===t(540)&&e[t(525)]("~"+a[t(579)].toFixed(1)+" Mbps"),typeof a[t(576)]===t(540)&&e[t(525)]("TTFB ~"+Math.round(a[t(576)])+t(555)),o=t(581)}const a=performance[t(605)]("navigation")[t(541)](e=>e[t(574)]===t(595));if(a){const n=Math[t(547)](0,a[t(519)]-a[t(513)]);!e.some(e=>e[t(501)](t(548)))&&e[t(525)](t(512)+Math.round(n)+t(555))}return e[t(546)]?t(551)+e[t(517)](", ")+" ("+o+")":void 0}function a(){const t=n;if(!function(t){const e=n;return e(489)in t&&typeof t[e(489)]!==e(509)}(navigator))return;const e=navigator[t(489)],o=Array[t(593)](e[t(558)])?e[t(558)][t(497)](e=>e[t(491)]+" "+e.version)[t(517)](", "):void 0,a=e[t(529)]?e[t(529)]+(e.mobile?" (mobile)":""):void 0;return[o&&t(591)+o,a&&t(518)+a][t(502)](Boolean)[t(517)](t(521))||void 0}function i(){const t=["no SW","getBattery","DeviceOrientationEvent","undefined","hardwareConcurrency","x (avail ","TTFB ~","requestStart","getItem","function","Device geolocation: enabled","join","Platform: ","responseStart","User agent: "," | ","charging","fine","orientation","push","height","9kaMoka",", maxTouchPoints ","platform","Languages: ","language","°, γ ","intent:geo","type","not charging","403896LnBovO","7uDMyKM",", display-mode standalone: ","transferSize","number","find","Local time: ","reclined"," (UTC","upright","length","max","TTFB","enabled","innerHeight","Network: ","cookieEnabled","n/a","rtt"," ms","padStart","Referrer: ","brands","saveData","-bit)","encodedBodySize","CookiesEnabled: ","colorDepth","matches","gamma"," cores","width","isFinite","Tilt: ","abs","referrer","unknown","204SzipPG","entryType","serviceWorker","rttMs","deviceorientation","Language: ","downlinkMbps","resource","inferred","1032594kVZvwA","availWidth","downlink","effectiveType","setTimeout","(pointer: fine)","flat","DateTimeFormat","(display-mode: standalone)","UA brands: ","addEventListener","isArray","yes","navigation","onLine","583362rdsYJl","Pointer/Touch: ","userAgent","5785560tgLLzx","languages","1478270xJvZLc","maxTouchPoints","controller","getEntriesByType","doNotTrack","(pointer: coarse)","165145GTQTRu","userAgentData","Screen: ","brand","647374dbquIe"," Mbps","connection","round","beta","map","getTimezoneOffset","timeZone","SW-controlled","startsWith","filter","Viewport: ","removeEventListener","PWA: "];return(i=function(){return t})()}async function r(t=400){const e=n;if(e(508)in window&&window.isSecureContext)return new Promise(o=>{const a=e;let i=!1;const r=t=>{const e=n,a=typeof t[e(496)]===e(540)?t.beta:void 0,c=typeof t[e(565)]===e(540)?t[e(565)]:void 0;if(void 0===a||void 0===c)return;if(i)return;i=!0,window[e(504)](e(577),r);const s=function(t,e){const o=n,a=Math.abs(t),i=Math.abs(e);return o(a<15&&i<15?588:a>=60?545:543)}(a,c);o(e(569)+s+" (β "+Math[e(495)](a)+e(532)+Math[e(495)](c)+"°)")};window[a(586)](()=>{const t=a;i||(i=!0,window[t(504)](t(577),r),o(void 0))},t),window[a(592)](a(577),r,{passive:!0})})}async function c(){const t=n;var e;if("getBattery"in(e=navigator)&&"function"==typeof e[n(507)])try{const e=await navigator[t(507)](),n=Math.round(100*e.level);return"Battery: "+[(Number[t(568)](n)?n:0)+"%",e[t(522)]?"charging":t(535)][t(517)](", ")}catch{return}}async function s(){const t=n,e=(new(Intl[t(589)])).resolvedOptions()[t(499)],i=function(t){const e=n,o=t<=0?"+":"-",a=Math[e(570)](t);return""+o+String(Math.floor(a/60))[e(556)](2,"0")+":"+String(a%60)[e(556)](2,"0")}((new Date)[t(498)]()),s=[];s[t(525)](t(578)+navigator[t(531)]),navigator[t(601)]?.length&&s.push(t(530)+navigator.languages[t(517)](", ")),s[t(525)](t(520)+navigator[t(599)]);const u=a();u&&s[t(525)](u),s[t(525)]("Timezone: "+e+t(544)+i+")"),s[t(525)](t(542)+(new Date).toString());const d=window.devicePixelRatio||1;s[t(525)](t(490)+screen[t(567)]+"x"+screen[t(526)]+" @"+d+t(511)+screen[t(583)]+"x"+screen.availHeight+", "+screen[t(563)]+t(560));const l=screen.orientation&&t(534)in screen[t(524)]?screen[t(524)][t(534)]:void 0;s.push(t(503)+window.innerWidth+"x"+window[t(550)]+(l?", orientation "+l:"")),s[t(525)]("CPU: "+navigator[t(510)]+t(566));const f=await o();f&&s[t(525)](f),s.push(function(){const t=n,e="function"==typeof matchMedia&&matchMedia(t(607))[t(564)],o="function"==typeof matchMedia&&matchMedia(t(587))[t(564)],a=e?"coarse":t(o?523:572),i=typeof navigator[t(603)]===t(540)?navigator[t(603)]:0;return t(598)+a+t(528)+i}());const m=await c();m&&s[t(525)](m),s[t(525)](t(562)+(navigator[t(552)]?t(594):"no")+"; DNT: "+(navigator[t(606)]??t(553))),s.push("Online: "+(navigator[t(596)]?t(594):"no")),document[t(571)]&&s.push(t(557)+document[t(571)]),s[t(525)](function(){const t=n,e=typeof matchMedia===t(515)&&matchMedia(t(590))[t(564)],o=Boolean(navigator[t(575)]?.[t(604)]);return t(505)+t(o?500:506)+t(538)+(e?t(594):"no")}());const p=await r();p&&s.push(p);const h=typeof localStorage!==t(509)&&localStorage[t(514)](t(533))===t(549);return s[t(525)](h?t(516):"Device geolocation: disabled"),s[t(517)](t(521))}!function(){const t=n,e=i();for(;;)try{if(874250===-parseInt(t(537))/1*(-parseInt(t(536))/2)+parseInt(t(597))/3+parseInt(t(573))/4*(-parseInt(t(488))/5)+parseInt(t(582))/6+-parseInt(t(492))/7+parseInt(t(600))/8+parseInt(t(527))/9*(parseInt(t(602))/10))break;e.push(e.shift())}catch(t){e.push(e.shift())}}();const u=_;function d(){const t=["bday-day","role","textContent","readAsDataURL","webauthn","innerWidth","round","startsWith","email","defineProperty","cc-exp-month","setAttribute","116675GqLzjJ","removeEventListener","image/jpeg","length","intent:data-sid-max-age","organization","scrollX","POSITION_UNAVAILABLE","blur","30kSDquH","latitude","given-name","onerror","altitudeAccuracy","width","getCurrentPosition","click","address-level4","slice",'[role="link"]',"remove","from","querySelectorAll","country","right","Password",'input[type="submit"]',"getItem","hasFocus","localhost","longitude","password","html","tagName","font","Credit card","autocomplete","45688SpRPvm","intent_sid","closest","speed","family-name","forEach","floor","Sensitive","now","globalAlpha","canvas","split","includes","TIMEOUT","toLowerCase","POST","street-address","#9ca3af","innerHeight","bbox","Redacted","visibilityState","center","tel","hostname","protocol","#e5e7eb","save","intent:consent","onLine","strokeStyle","name","timestamp","value","isFinite","button","function","heading","scrollY","title","drawImage","coords","load","img","#374151","cc-number","Sex","data-intent-redact","restore","onload","address-line1","address-line3","body","pageview","x-intent-sid","pixel body fallback failed","randomUUID","page-focus","outerHTML","hidden","postal-code","host","min","Email","Lax","key","max","sex","trim","textAlign","filter","90320FNlADh","geolocation","bday-year","referrer","bday","__intent__sdk__initialized__","cc-given-name","133ZbdEXn","enabled","middle","Phone","granted","x-sl-access-token","entries","cc-type","204212OGVIwJ","country-name","cloneNode","additional-name",'[role="button"]',"address-level1","deviceGeoSent","left","canSend","110157WWiGqu","set","getContext","a[href]","number","hasAttribute","height",'=""]',"Enter","[onclick]","join","aria-label","error","push","Organization","address-level3","pointerdown","input-submit","undefined","intent:geo","addEventListener","lon","FileReader error","page-blur","target","123657jjZGMV","fillStyle","30aAxipk","bottom","Unexpected FileReader result type","/events","https:","ignore","https://intent.callimacus.ai","secure","get","px system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif","address-line2","application/json","disabled","cc-name","isSecureContext","clearTimeout","address-level2","120789YaZNaa","Address","label","attributes","intent:data-ip","permissions","scroll","createElement","getAttribute","some","toISOString","searchbox","top","location","altitude","omit","message","fillRect","input, textarea","cc-family-name","mask","visibilitychange","has","organization-title","storage","toDataURL","nickname","type","<no visible label>"];return(d=function(){return t})()}!function(){const t=_,e=d();for(;;)try{if(111474===parseInt(t(443))/1+parseInt(t(419))/2+-parseInt(t(468))/3+-parseInt(t(434))/4+-parseInt(t(311))/5*(-parseInt(t(320))/6)+-parseInt(t(426))/7*(parseInt(t(348))/8)+-parseInt(t(487))/9*(-parseInt(t(470))/10))break;e.push(e.shift())}catch(t){e.push(e.shift())}}();let l,f="",m=0;const p=u(376),h=u(462);let g=!1,w=!1,y=!1,v=!1,b=!1,M=!1;const x="intent:data-client-id",S=u(491),I="intent:data-base-url",T=u(476),E=u(315),L=u(424),A=[u(383),u(446),"a",u(337),'input[type="button"]',u(438),u(330),u(452)][u(453)](","),k=u(395),D=new Set(["name",u(322),u(437),u(352),u(296),"username","email",u(371),u(316),u(293),u(364),u(398),u(480),"address-line3","address-level1",u(486),"address-level3",u(328),"country",u(435),u(408),"cc-name",u(425),"cc-additional-name",u(289),u(393),"cc-exp",u(309),"cc-exp-year","cc-csc",u(433),u(423),u(299),"bday-month",u(421),u(415),u(303)]);function H(t){return"<"+N(t)+">"}function N(t){const e=u,n=(t.getAttribute?.("data-intent-redact-label")??"")[e(416)]();if(n)return n;const o=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?(t[e(347)]||"")[e(362)]()[e(416)]().split(/\s+/)[e(418)](Boolean):[];return t instanceof HTMLInputElement&&t[e(297)]===e(342)?e(336):o[e(496)](t=>t[e(306)]("cc-"))?e(346):o[e(496)](t=>["name","given-name",e(352),e(437),e(483),e(425),e(289)][e(360)](t))?"Name":o[e(360)](e(307))?e(411):o.includes("tel")?e(429):o[e(496)](t=>t[e(306)](e(423)))?"Birthday":o[e(360)]("sex")?e(394):o[e(496)](t=>[e(364),"address-line1",e(480),e(399),e(439),e(486),e(458),e(328),e(408),e(334),"country-name"][e(360)](t))?e(488):o.includes(e(316))||o.includes("organization-title")?e(457):t[e(495)]?.(k)?.[e(362)]()===e(290)?e(368):e(355)}function B(t){const e=u;return t[e(448)]("data-html2canvas-ignore")||t[e(495)](k)?.[e(362)]()===e(475)}function P(t){const e=u,n=t[e(495)](k);return""===n||"mask"===n?.[e(362)]()}function U(t){const e=u;if(t instanceof HTMLInputElement){if(t[e(297)]===e(342))return!0;if("search"===t[e(297)])return!1;const n=t[e(495)](e(300));if(n&&n[e(362)]()===e(498))return!1;if((t.autocomplete||"").toLowerCase()[e(416)]()[e(359)](/\s+/)[e(418)](Boolean)[e(496)](t=>D[e(292)](t)))return!0}if(t instanceof HTMLTextAreaElement){if((t.autocomplete||"")[e(362)]()[e(416)]()[e(359)](/\s+/)[e(418)](Boolean)[e(496)](t=>D[e(292)](t)))return!0}return!1}function C(t){return!B(t)&&(!!P(t)||!!U(t))}function O(){const t=u,e=[],n=t=>{const e=_,n=t.getBoundingClientRect();if(n.width<=0||n[e(449)]<=0)return;const o=Math[e(414)](0,n[e(441)]),a=Math[e(414)](0,n[e(499)]),i=Math[e(414)](0,Math[e(410)](n[e(335)],window[e(304)])-o),r=Math[e(414)](0,Math[e(410)](n[e(471)],window[e(366)])-a);return i<=0||r<=0?void 0:{x:o,y:a,w:i,h:r}};document[t(333)]("["+k+'="mask"], ['+k+t(450))[t(353)](o=>{const a=t,i=n(o);if(!i)return;const r=N(o)||a(368);e[a(456)]({...i,label:r})});return document[t(333)](t(288)).forEach(t=>{if(B(o=t)||!P(o)&&!U(o))return;var o;const a=n(t);if(!a)return;const i=N(t);e.push({...a,label:i})}),e}const R=()=>localStorage[u(338)](p)===u(430);function F(t){return e[u(478)](t)}function z(t,n){const o=u,a=localStorage.getItem(E),i=null===a?void 0:Number(a),r=Number[o(382)](n)?Number(n):typeof i===o(447)&&Number[o(382)](i)?i:86400,c=window[o(500)][o(373)]===o(474);e[o(444)](o(349),t,{expires:r/86400,path:"/",sameSite:o(412),...c&&{secure:!0}})}function W(){const t=u;e[t(331)](t(349),{path:"/"})}function _(t,e){const n=d();return(_=function(t,e){return n[t-=287]})(t,e)}function j(){const t=u,e=F("intent_sid");if(!R())return e&&W(),void(f="");if(e)return void(f=e);const n=typeof crypto!==t(461)&&typeof crypto[t(404)]===t(384)?crypto[t(404)]():Date[t(356)]()+"-"+Math.random();f=n,z(f)}function G(){return j(),R()&&Boolean(f)&&(()=>{const t=u,e=localStorage[t(338)](x);return"string"==typeof e&&e[t(416)]()[t(314)]>0})()}function q(){return!G()||y}async function Z(e){const n=u,o=function(t){const e=u,n=t[e(436)](!1);return n instanceof HTMLInputElement&&t instanceof HTMLInputElement?(Array.from(t[e(490)])[e(353)](({name:t,value:o})=>{n[e(310)](t,o)}),n[e(381)]=C(t)?H(t):t[e(381)],t[e(482)]&&n[e(310)](e(482),""),n[e(406)]):n instanceof HTMLTextAreaElement&&t instanceof HTMLTextAreaElement?(Array[e(332)](t[e(490)])[e(353)](({name:t,value:o})=>{n[e(310)](t,o)}),n[e(381)]=C(t)?H(t):t[e(381)],t.disabled&&n[e(310)](e(482),""),n[e(406)]):t[e(406)]}(e),a=e.getBoundingClientRect(),i={useCORS:!0,...{x:window[n(317)],y:window[n(386)],width:window[n(304)],height:window[n(366)],scale:1},ignoreElements:t=>t instanceof Element&&B(t)},r=await t(document.body,i),c=r[n(325)],s=r[n(449)],d=Math[n(414)](c,s),l=.8*Math.max(window[n(304)],window.innerHeight),f=Math[n(410)](1,l/d),m=12/(a[n(449)]||1),p=Math[n(410)](1,Math[n(414)](f,m)),h=Math[n(305)](c*p),g=Math[n(305)](s*p),w=document[n(494)](n(358));w[n(325)]=h,w[n(449)]=g;const y=w[n(445)]("2d");y[n(388)](r,0,0,c,s,0,0,h,g);const v=O();if(v[n(314)]){y[n(375)](),y[n(357)]=1;for(const t of v){const e=Math[n(305)](t.x*p),o=Math[n(305)](t.y*p),a=Math.round(t.w*p),i=Math.round(t.h*p);y[n(469)]=n(374),y[n(287)](e,o,a,i),y[n(378)]=n(365),y.lineWidth=Math.max(1,Math[n(354)](.02*Math[n(410)](a,i))),y.strokeRect(e,o,a,i);const r=Math[n(414)](10,Math.min(22,Math[n(354)](.35*i)));y[n(345)]=r+n(479),y[n(469)]=n(392),y[n(417)]=n(370),y.textBaseline=n(428);const c="<"+(t[n(489)]?.[n(416)]()[n(314)]?t[n(489)]:n(355))+">";y.fillText(c,e+a/2,o+i/2,a-6)}y[n(396)]()}const b=w[n(295)](n(313),.8);return{html:o,bbox:{x:a.x,y:a.y,w:a[n(325)],h:a[n(449)]},img:b}}function J(){const t=u,e=localStorage[t(338)](x),n={"Content-Type":t(481)};return e&&(n[t(431)]=e),f&&(n[t(402)]=f),n}async function V(t,e){const n=u,o=(localStorage[n(338)](I)??T)+n(473),a=localStorage[n(338)](x)??void 0,i=JSON.stringify({...t,clientId:a});try{if((await fetch(o,{method:n(363),headers:J(),body:i,keepalive:e,credentials:n(502)})).ok)return}catch{}try{await async function(t,e=!1){const n=u,o=(localStorage[n(338)](I)??T)+"/p.gif";if(!(await fetch(o,{method:n(363),headers:J(),body:JSON.stringify(t),keepalive:e,credentials:n(502),cache:"no-store"})).ok)throw new Error(n(403))}(t,e)}catch{}}async function X(t,e,n,o){const a=u;if(!G())return;const i={...e,localTime:(new Date)[a(497)]()};(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement)&&(i[a(381)]=C(n)?H(n):n[a(381)]);let r="",c={x:0,y:0,w:0,h:0},s="";const d=!("scroll"===t||"page-blur"===t||t===a(405)),l=Date[a(356)](),f=l-m>=5e3;let p=o;const h=t===a(327)||t===a(460)||t===a(401);d&&!p&&(h||f)&&(p=await Z(n),m=l),p&&(r=p[a(343)],c=p[a(367)],s=p[a(391)]);const g=t===a(466)||t===a(405)||t===a(401),w={ts:Date[a(356)](),event:t,props:i,html:g?"":r,bbox:c,img:s},y=document[a(369)]===a(407)||t===a(466);await V(w,y)}function Y(){const t=u;return localStorage[t(338)](h)===t(427)}async function K(t={}){const e=u;if(!G())return;const n=typeof t.lat===e(447)&&typeof t[e(464)]===e(447);if(n&&w)return;if(!n&&g)return;const o=localStorage[e(338)](S),a={context:await s()};o&&(a.ip=o);for(const[n,o]of Object[e(432)](t))a[n]=o;await X("context",a,document.body,{html:"",bbox:{x:0,y:0,w:0,h:0},img:""}),n?w=!0:g=!0}async function Q(){const t=u,e={canSend:G(),geoEnabled:Y(),deviceGeoSent:w};if(!e[t(442)]||!e.geoEnabled||e[t(440)])return;const n={secure:window[t(484)],proto:location[t(373)],host:location[t(372)]};if(n[t(477)]||t(409),!(t(420)in navigator))return;if(b)return;b=!0,y=!0;const o={enableHighAccuracy:!1,maximumAge:3e5,timeout:2e4};try{await(navigator[t(492)]?.query({name:t(420)}))}catch(t){}await new Promise(e=>{const n=t;let a=!1;const i=async(t,n,o)=>{const i=_;a||(a=!0,Number[i(382)](t)&&Number[i(382)](n)&&await K({lat:t,lon:n,source:"device"}),b=!1,y=!1,M=!0,e())};navigator[n(420)][n(326)](t=>{const e=_,n=t[e(389)];i(n[e(321)],n[e(341)],(n.accuracy,typeof n[e(501)]===e(447)&&n[e(501)],typeof n.altitudeAccuracy===e(447)&&n[e(324)],typeof n[e(385)]===e(447)&&n[e(385)],typeof n[e(351)]===e(447)&&n.speed,t[e(380)],document[e(369)],document.hasFocus()))},t=>{const e=_,n=t?.code;1===n||(2===n?e(318):3!==n||e(361)),t?.[e(503)],navigator[e(377)],document[e(369)],document[e(339)](),location[e(373)],location[e(372)],i(void 0,void 0)},o)})}function $(){const t=u;if(v||!Y()||w)return;v=!0;const e=()=>{const t=_;window[t(312)](t(459),e,!0),window.removeEventListener("keydown",e,!0),Q()};window[t(463)]("pointerdown",e,!0),window.addEventListener("keydown",e,!0)}j();let tt=!document[u(407)]&&document[u(339)](),et=document[u(339)]();const nt=()=>{const t=u;if(q())return;const e=!document[t(407)]&&document[t(339)]();e&&(et=!0),et||e?e!==tt&&(tt=e,X(t(e?405:466),{},document[t(400)])):tt=e};function ot(){const t=u;(function(){const t=u,e=globalThis;return!e[L]&&(Object[t(308)](e,L,{value:!0,configurable:!1,enumerable:!1,writable:!1}),!0)})()&&(window[t(463)](t(390),()=>{const e=t;G()&&(K(),(window.isSecureContext||location[e(372)]===e(340))&&(Y()&&$(),window[e(463)]("focus",()=>{!w&&Y()&&!b&&M&&Q()}),document[e(463)](e(291),()=>{!document.hidden&&!w&&Y()&&!b&&M&&Q()})))}),window.addEventListener(t(294),e=>{const n=t;e[n(413)]===p&&("granted"===localStorage[u(338)](p)?(g=!1,K(),Y()&&$()):(g=!1,w=!1)),e[n(413)]===h&&(Y()?$():w=!1)}),window.addEventListener(t(390),()=>{const e=t;G()&&X(e(401),{url:window.location.href,title:document[e(387)],ref:document[e(422)]},document[e(400)])}),addEventListener(t(459),function(t,e){let n=0;return(...o)=>{const a=Date[_(356)]();a-n>=e&&(n=a,t(...o))}}(e=>{const n=t;if(q())return;const o=e.target instanceof Element?e[n(467)][n(350)](A):null;o instanceof HTMLElement&&(l=Z(o))},50),{capture:!0,passive:!0}),addEventListener(t(327),async e=>{const n=t;if(q())return;const o=e[n(467)]instanceof Element?e[n(467)][n(350)](A):null;if(!(o instanceof HTMLElement))return;const a=function(t){const e=u;return t[e(495)](e(454))??t.title??t[e(301)]?.trim()??e(298)}(o),i=l?await l:void 0;l=void 0,await X("click",{tag:o[n(344)],label:a},o,i)},!0),addEventListener("keydown",e=>{const n=t;if(!q()&&e[n(413)]===n(451)){const t=e.target;if(t instanceof HTMLElement&&("INPUT"===t[n(344)]||"TEXTAREA"===t[n(344)])){const e=t instanceof HTMLInputElement?t[n(379)]:void 0,o=t.id||void 0;X(n(460),{tag:t.tagName,name:e??o},t)}}},{capture:!0}),["focus",t(319)][t(353)](e=>{window[t(463)](e,nt)}),document[t(463)](t(291),nt),window[t(463)](t(493),function(t,e){let n;return(...o)=>{void 0!==n&&window[_(485)](n),n=window.setTimeout(()=>{n=void 0,t(...o)},e)}}(()=>{const e=t;q()||X("scroll",{scrollX:window[e(317)],scrollY:window.scrollY},document[e(400)])},250),{passive:!0}),window.intent??={send(t,e){G()&&X(t,e,document.body)}})}function at(t,e){const n=st;try{if(void 0===e)return;localStorage[n(351)](t,n(e?"intent:consent"===t?359:360:343))}catch{}}function it(t={}){const e=st;if(localStorage[e(351)]("intent:data-client-id",t[e(366)]??""),localStorage[e(351)](e(345),t.ip??""),localStorage[e(351)](e(357),t[e(372)]??e(368)),typeof t[e(355)]===e(371)&&localStorage[e(351)]("intent:data-sid-max-age",String(t[e(355)])),at(e(353),t.consent),at(e(354),t[e(346)]),t[e(370)]){if(!F("intent_sid")){z(typeof crypto!==e(361)&&typeof crypto[e(358)]===e(352)?crypto.randomUUID():Date.now()+"-"+Math.random(),t[e(355)])}}ot()}function rt(){return F(st(367))}function ct(){j()}function st(t,e){const n=lt();return(st=function(t,e){return n[t-=343]})(t,e)}function ut(){W()}function dt(t){const e=st;Number[e(347)](t)&&localStorage[e(351)]("intent:data-sid-max-age",String(t));const n=F(e(367));n&&z(n,t)}function lt(){const t=["275890MIPsIG","disabled","1370322SdSUAp","intent:data-ip","geo","isFinite","14EYXDFe","16AjbVhO","72SdbPLy","setItem","function","intent:consent","intent:geo","sidMaxAgeSeconds","536525vvEvkj","intent:data-base-url","randomUUID","granted","enabled","undefined","15ecBtCW","108136GUopuC","737954sAidAT","218896ARvTFw","clientId","intent_sid","https://intent.callimacus.ai","54453LXuLaZ","consent","number","baseUrl"];return(lt=function(){return t})()}!function(){const t=st,e=lt();for(;;)try{if(299645===parseInt(t(363))/1+parseInt(t(348))/2*(-parseInt(t(369))/3)+parseInt(t(365))/4*(parseInt(t(362))/5)+-parseInt(t(344))/6+parseInt(t(364))/7*(parseInt(t(349))/8)+parseInt(t(350))/9*(parseInt(t(373))/10)+-parseInt(t(356))/11)break;e.push(e.shift())}catch(t){e.push(e.shift())}}();export{ut as clearIntentSessionId,ct as ensureIntentSessionId,rt as getIntentSessionId,it as initIntent,at as setFlag,dt as setIntentSessionMaxAge};
|