healcode-client 1.0.2 → 1.0.5

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/bin/healcode.js CHANGED
@@ -5,9 +5,26 @@ import inquirer from 'inquirer';
5
5
  import chalk from 'chalk';
6
6
  import fs from 'fs';
7
7
  import path from 'path';
8
+ import { fileURLToPath } from 'url';
9
+
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
8
12
 
9
13
  const CONFIG_FILE_NAME = 'healcode.config.json';
10
- const DEFAULT_ENDPOINT = 'https://api.healcode.io';
14
+
15
+ // Load URLs from config
16
+ let urlsConfig = { backendUrl: 'https://www.healdcode.somee.com', agentUrl: 'https://www.healdcode.somee.com' };
17
+ try {
18
+ const urlsConfigPath = path.join(__dirname, '..', 'urls.config.json');
19
+ if (fs.existsSync(urlsConfigPath)) {
20
+ urlsConfig = JSON.parse(fs.readFileSync(urlsConfigPath, 'utf-8'));
21
+ }
22
+ } catch (e) {
23
+ // Use defaults
24
+ }
25
+
26
+ const BACKEND_URL = urlsConfig.backendUrl;
27
+ const AGENT_URL = urlsConfig.agentUrl;
11
28
 
12
29
  const program = new Command();
13
30
 
@@ -22,14 +39,14 @@ program
22
39
  .action(async () => {
23
40
  console.log(chalk.green.bold('\n🩺 HealCode Setup\n'));
24
41
 
25
- const initialAnswers = await inquirer.prompt([
42
+ const { token } = await inquirer.prompt([
26
43
  {
27
44
  type: 'input',
28
45
  name: 'token',
29
46
  message: 'Enter your HealCode token:',
30
47
  validate: (input) => {
31
48
  if (!input || input.trim().length === 0) {
32
- return 'Token is required. Get one at https://healcode.io/dashboard';
49
+ return 'Token is required. Get one at https://healcode.vercel.app/dashboard';
33
50
  }
34
51
  if (!input.startsWith('hc_')) {
35
52
  return 'Invalid token format. Token should start with "hc_"';
@@ -37,12 +54,6 @@ program
37
54
  return true;
38
55
  },
39
56
  },
40
- {
41
- type: 'input',
42
- name: 'endpoint',
43
- message: 'API Endpoint (press Enter for default):',
44
- default: DEFAULT_ENDPOINT,
45
- },
46
57
  ]);
47
58
 
48
59
  // Validate token with API
@@ -51,17 +62,17 @@ program
51
62
  let remoteConfig = null;
52
63
 
53
64
  try {
54
- const response = await fetch(`${initialAnswers.endpoint}/api/tokens/validate`, {
65
+ const response = await fetch(`${BACKEND_URL}/api/tokens/validate`, {
55
66
  method: 'POST',
56
67
  headers: { 'Content-Type': 'application/json' },
57
- body: JSON.stringify({ token: initialAnswers.token }),
68
+ body: JSON.stringify({ token: token }),
58
69
  });
59
70
 
60
71
  const result = await response.json();
61
72
 
62
73
  if (!result.isValid) {
63
74
  console.log(chalk.red(`\nāŒ Token validation failed: ${result.errorMessage || 'Invalid token'}`));
64
- console.log(chalk.gray('Get a valid token at https://healcode.io/dashboard\n'));
75
+ console.log(chalk.gray('Get a valid token at https://healcode.vercel.app/dashboard\n'));
65
76
  process.exit(1);
66
77
  }
67
78
 
@@ -100,8 +111,8 @@ program
100
111
 
101
112
  // Create config file
102
113
  const config = {
103
- token: initialAnswers.token,
104
- endpoint: initialAnswers.endpoint === DEFAULT_ENDPOINT ? undefined : initialAnswers.endpoint,
114
+ token: token,
115
+ endpoint: AGENT_URL,
105
116
  enabled: true,
106
117
  options: {
107
118
  captureConsoleErrors: options.captureConsoleErrors !== false,
@@ -118,12 +129,12 @@ program
118
129
  // Show usage instructions
119
130
  console.log(chalk.cyan('\nšŸ“– Usage:\n'));
120
131
  console.log(chalk.white(' // In your main entry file (e.g., main.ts, index.js)'));
121
- console.log(chalk.gray(' import { initFromConfig } from \'@healcode/client\';'));
132
+ console.log(chalk.gray(" import { initFromConfig } from 'healcode-client';"));
122
133
  console.log(chalk.gray(' initFromConfig();\n'));
123
134
 
124
135
  console.log(chalk.white(' // Or with manual configuration:'));
125
- console.log(chalk.gray(' import { HealCode } from \'@healcode/client\';'));
126
- console.log(chalk.gray(` const healcode = new HealCode({ token: '${answers.token.substring(0, 10)}...' });\n`));
136
+ console.log(chalk.gray(" import { HealCode } from 'healcode-client';"));
137
+ console.log(chalk.gray(` const healcode = new HealCode({ token: '${token.substring(0, 10)}...' });\n`));
127
138
 
128
139
  // Add to .gitignore
129
140
  const gitignorePath = path.join(process.cwd(), '.gitignore');
@@ -154,7 +165,7 @@ program
154
165
  const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
155
166
  console.log(chalk.green.bold('\n🩺 HealCode Status\n'));
156
167
  console.log(chalk.white(` Token: ${config.token.substring(0, 15)}...`));
157
- console.log(chalk.white(` Endpoint: ${config.endpoint || DEFAULT_ENDPOINT}`));
168
+ console.log(chalk.white(` Endpoint: ${config.endpoint || AGENT_URL}`));
158
169
  console.log(chalk.white(` Enabled: ${config.enabled !== false ? 'āœ…' : 'āŒ'}`));
159
170
  console.log('');
160
171
  } catch (error) {
@@ -2,290 +2,24 @@
2
2
 
3
3
  /**
4
4
  * HealCode - Postinstall Script
5
- * REQUIRED: Token validation before installation completes
6
- * Installation will FAIL without a valid token
5
+ * Shows setup instructions after installation
7
6
  */
8
7
 
9
- const readline = require('readline');
10
- const fs = require('fs');
11
- const path = require('path');
12
- const https = require('https');
13
- const http = require('http');
14
-
15
- const CONFIG_FILE_NAME = 'healcode.config.json';
16
-
17
- // Load URLs from config
18
- let urlsConfig = { backendUrl: 'https://www.healdcode.somee.com', agentUrl: 'https://www.healdcode.somee.com' };
19
- try {
20
- const urlsConfigPath = path.join(__dirname, '..', 'urls.config.json');
21
- if (fs.existsSync(urlsConfigPath)) {
22
- urlsConfig = JSON.parse(fs.readFileSync(urlsConfigPath, 'utf-8'));
23
- }
24
- } catch (e) {
25
- // Use defaults
26
- }
27
-
28
- const DEFAULT_BACKEND_URL = urlsConfig.backendUrl;
29
- const DEFAULT_AGENT_URL = urlsConfig.agentUrl;
30
-
31
- // ANSI Colors
32
8
  const colors = {
33
9
  green: '\x1b[32m',
34
10
  yellow: '\x1b[33m',
35
- red: '\x1b[31m',
36
11
  cyan: '\x1b[36m',
37
12
  gray: '\x1b[90m',
38
13
  bold: '\x1b[1m',
39
14
  reset: '\x1b[0m'
40
15
  };
41
16
 
42
- function log(color, message) {
43
- console.log(`${color}${message}${colors.reset}`);
44
- }
45
-
46
- function findProjectRoot() {
47
- let dir = process.cwd();
48
- if (dir.includes('node_modules')) {
49
- const parts = dir.split('node_modules');
50
- dir = parts[0];
51
- }
52
- return dir;
53
- }
54
-
55
- function configExists() {
56
- const projectRoot = findProjectRoot();
57
- const configPath = path.join(projectRoot, CONFIG_FILE_NAME);
58
- return fs.existsSync(configPath);
59
- }
60
-
61
- function removePackage() {
62
- // Remove the package from node_modules if validation fails
63
- const projectRoot = findProjectRoot();
64
- const packagePath = path.join(projectRoot, 'node_modules', 'healcode-client');
65
-
66
- try {
67
- if (fs.existsSync(packagePath)) {
68
- fs.rmSync(packagePath, { recursive: true, force: true });
69
- }
70
- } catch (e) {
71
- // Ignore removal errors
72
- }
73
- }
74
-
75
- function validateToken(token, endpoint) {
76
- return new Promise((resolve, reject) => {
77
- const url = new URL(`${endpoint}/api/Tokens/validate`);
78
- const protocol = url.protocol === 'https:' ? https : http;
79
-
80
- const postData = JSON.stringify({ token: token });
81
-
82
- const options = {
83
- hostname: url.hostname,
84
- port: url.port || (url.protocol === 'https:' ? 443 : 80),
85
- path: url.pathname,
86
- method: 'POST',
87
- headers: {
88
- 'Content-Type': 'application/json',
89
- 'Content-Length': Buffer.byteLength(postData)
90
- },
91
- timeout: 15000
92
- };
93
-
94
- const req = protocol.request(options, (res) => {
95
- let data = '';
96
- res.on('data', chunk => data += chunk);
97
- res.on('end', () => {
98
- try {
99
- const result = JSON.parse(data);
100
- resolve(result);
101
- } catch (e) {
102
- reject(new Error('Invalid response from server'));
103
- }
104
- });
105
- });
106
-
107
- req.on('error', reject);
108
- req.on('timeout', () => {
109
- req.destroy();
110
- reject(new Error('Request timed out'));
111
- });
112
-
113
- req.write(postData);
114
- req.end();
115
- });
116
- }
117
-
118
- async function main() {
119
- // Skip ONLY if explicitly set (for CI pipelines that handle auth differently)
120
- if (process.env.HEALCODE_SKIP_AUTH === 'true') {
121
- return;
122
- }
123
-
124
- // If config already exists with valid token, skip
125
- if (configExists()) {
126
- log(colors.green, '\nāœ… [HealCode] Valid configuration found.');
127
- return;
128
- }
129
-
130
- console.log('');
131
- log(colors.green + colors.bold, '═══════════════════════════════════════════');
132
- log(colors.green + colors.bold, ' 🩺 HealCode - Authentication Required');
133
- log(colors.green + colors.bold, '═══════════════════════════════════════════');
134
- console.log('');
135
- log(colors.yellow, 'āš ļø A valid HealCode token is REQUIRED to use this package.');
136
- log(colors.gray, ' Get your token at: https://healcode.vercel.app/dashboard');
137
- console.log('');
138
-
139
- // Check if interactive
140
- if (!process.stdin.isTTY) {
141
- log(colors.red, 'āŒ Installation failed: Non-interactive terminal detected.');
142
- log(colors.yellow, '');
143
- log(colors.yellow, ' To install healcode-client, you must provide a token.');
144
- log(colors.yellow, ' Run the installation in an interactive terminal.');
145
- log(colors.yellow, '');
146
- log(colors.gray, ' Or set HEALCODE_TOKEN environment variable:');
147
- log(colors.gray, ' HEALCODE_TOKEN=hc_xxx npm install healcode-client');
148
- console.log('');
149
-
150
- // Check for environment variable token
151
- if (process.env.HEALCODE_TOKEN) {
152
- log(colors.yellow, 'ā³ Found HEALCODE_TOKEN, validating...');
153
- try {
154
- const result = await validateToken(process.env.HEALCODE_TOKEN, DEFAULT_BACKEND_URL);
155
- if (result.isValid) {
156
- await saveConfig(process.env.HEALCODE_TOKEN, result);
157
- return; // Success
158
- }
159
- } catch (e) {
160
- // Fall through to failure
161
- }
162
- }
163
-
164
- removePackage();
165
- process.exit(1);
166
- }
167
-
168
- const rl = readline.createInterface({
169
- input: process.stdin,
170
- output: process.stdout
171
- });
172
-
173
- const question = (prompt) => new Promise((resolve) => {
174
- rl.question(prompt, resolve);
175
- });
176
-
177
- let attempts = 0;
178
- const maxAttempts = 3;
179
-
180
- while (attempts < maxAttempts) {
181
- attempts++;
182
-
183
- try {
184
- const token = await question(`${colors.cyan}Enter your HealCode token: ${colors.reset}`);
185
-
186
- if (!token || token.trim().length === 0) {
187
- log(colors.red, `\nāŒ Token is required. Attempt ${attempts}/${maxAttempts}`);
188
- if (attempts >= maxAttempts) break;
189
- continue;
190
- }
191
-
192
- log(colors.yellow, '\nā³ Validating token...');
193
-
194
- try {
195
- const result = await validateToken(token.trim(), DEFAULT_BACKEND_URL);
196
-
197
- if (!result.isValid) {
198
- log(colors.red, `\nāŒ Invalid token: ${result.errorMessage || 'Token not recognized'}`);
199
- log(colors.gray, ` Attempt ${attempts}/${maxAttempts}`);
200
- if (attempts >= maxAttempts) break;
201
- console.log('');
202
- continue;
203
- }
204
-
205
- // SUCCESS - Save config and complete installation
206
- log(colors.green, '\nāœ… Token validated successfully!');
207
- if (result.projectId) {
208
- log(colors.gray, ` Project: ${result.projectId}`);
209
- }
210
-
211
- await saveConfig(token.trim(), result);
212
-
213
- rl.close();
214
-
215
- console.log('');
216
- log(colors.green + colors.bold, 'šŸŽ‰ HealCode installed successfully!');
217
- log(colors.gray, '');
218
- log(colors.gray, ' Usage:');
219
- log(colors.gray, " import { initFromConfig } from 'healcode-client';");
220
- log(colors.gray, ' initFromConfig();');
221
- console.log('');
222
-
223
- return; // Success - exit normally
224
-
225
- } catch (error) {
226
- log(colors.red, `\nāŒ Connection error: ${error.message}`);
227
- log(colors.gray, ` Attempt ${attempts}/${maxAttempts}`);
228
- if (attempts >= maxAttempts) break;
229
- console.log('');
230
- }
231
-
232
- } catch (e) {
233
- break;
234
- }
235
- }
236
-
237
- // FAILED - Remove package and exit with error
238
- rl.close();
239
-
240
- console.log('');
241
- log(colors.red + colors.bold, '═══════════════════════════════════════════');
242
- log(colors.red + colors.bold, ' āŒ Installation FAILED - Invalid Token');
243
- log(colors.red + colors.bold, '═══════════════════════════════════════════');
244
- console.log('');
245
- log(colors.yellow, ' healcode-client requires a valid token to install.');
246
- log(colors.yellow, ' Get your token at: https://healcode.vercel.app/dashboard');
247
- console.log('');
248
-
249
- removePackage();
250
- process.exit(1);
251
- }
252
-
253
- async function saveConfig(token, validationResult) {
254
- const projectRoot = findProjectRoot();
255
- const agentEndpoint = validationResult.agentEndpoint || DEFAULT_AGENT_URL;
256
-
257
- const config = {
258
- token: token,
259
- endpoint: agentEndpoint,
260
- enabled: true,
261
- options: {
262
- captureConsoleErrors: true,
263
- captureUnhandledRejections: true,
264
- maxBreadcrumbs: 20
265
- }
266
- };
267
-
268
- if (validationResult.configuration) {
269
- Object.assign(config.options, validationResult.configuration);
270
- }
271
-
272
- const configPath = path.join(projectRoot, CONFIG_FILE_NAME);
273
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
274
-
275
- // Add to .gitignore
276
- const gitignorePath = path.join(projectRoot, '.gitignore');
277
- if (fs.existsSync(gitignorePath)) {
278
- let gitignore = fs.readFileSync(gitignorePath, 'utf-8');
279
- if (!gitignore.includes(CONFIG_FILE_NAME)) {
280
- fs.appendFileSync(gitignorePath, `\n# HealCode\n${CONFIG_FILE_NAME}\n`);
281
- }
282
- }
283
-
284
- log(colors.green, `āœ… Config saved to ${CONFIG_FILE_NAME}`);
285
- }
286
-
287
- main().catch((err) => {
288
- log(colors.red, `\nāŒ Installation failed: ${err.message}`);
289
- removePackage();
290
- process.exit(1);
291
- });
17
+ console.log('');
18
+ console.log(`${colors.green}${colors.bold}āœ… healcode-client installed successfully!${colors.reset}`);
19
+ console.log('');
20
+ console.log(`${colors.yellow}āš ļø Setup required - run:${colors.reset}`);
21
+ console.log('');
22
+ console.log(` ${colors.cyan}npx healcode init${colors.reset}`);
23
+ console.log('');
24
+ console.log(`${colors.gray} Get your token at: https://healcode.vercel.app/dashboard${colors.reset}`);
25
+ console.log('');
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';function a0_0x4804(){const _0x18566b=['z2v0uhjVDg90ExbLt2y','ndKWmdDMzK9ZwKC','q2XPy2TLzcbVBIa','DgDOzxu','zgT4z3y','ywrKrxzLBNrmAxn0zw5LCG','odu3mJaXmefyzfnWDq','AhjLzG','zxHPC3rZu3LUyW','wevsv1q','A2Lvrw0','yxbWBhK','zxHWB3j0CW','ntGYAfncruz5','zw5KC1DPDgG','BwfW','DxnLCKfNzw50','uunJCey','DgzQtMS','CwHbwhu','B2fREfe','yxbWBgLJyxrPB24VANnVBG','DvHiC1y','C2HPzNq','s2L2s3e','B2jQzwn0','zhHos2y','mZqXmZm0mffTD05UAG','AM9PBG','CMrHEMO','CMvHzezPBgvtEw5J','zw5HyMXLza','Ahr0Chm6lY9WCMvWywLKlxrYAwjHBc1PBNzPDgvKlwvUzY50CNLJBg91zgzSyxjLlMnVBq','Dg9Rzw4','DgfYz2v0','y2XPy2S','yKnnqwm','y29UzMLN','y2fWDhvYzunVBNnVBgvfCNjVCNm','Aw50zxjJzxb0vw5Oyw5KBgvKuMvQzwn0Aw9UCW','w0HLywXdB2rLxsbfCNjVCIbYzxbVCNrLzcbZDwnJzxnZzNvSBhK','B25mAw5L','l2fWAs9SB2DZlW','Aw5PDa','AfjWDMK','BMvtuLi','C3rHDhvZ','ywrKqNjLywrJCNvTyG','mJmXmZy4nJr4BfnkAKm','rgXNtxe','BgvUz3rO','sLD1uwS','Dg9ju09tDhjPBMC','C2vUza','DgfNtMfTzq','ChjVDg90ExbL','x19LC01VzhvSzq','zw1kwNG','ug9VrfC','AgfZ','yMvMB3jLu2vUza','Aw50zxjJzxb0q29UC29Szq','ue9tva','zw55Dg0','B2zMBgLUzq','C3vIC3rYAw5N','y2fWDhvYzvvUAgfUzgXLzfjLAMvJDgLVBNm','ALv4vNe','zxrkrwO','Aw5PDgLHBgL6zwq','zKjrrvu','y2fWDhvYzq','zuDWBee','B25LCNjVCG','CKvdtw0','zLvNBgy','C2v0Dxbozxr3B3jRtgLZDgvUzxjZ','y2XHC3noyw1L','Bg9JyxrPB24','ChvZAa','vfDIvfK','C2v0rw5HyMXLza','CMvWBgfJzq','mZyYodqWn0LvyxfLzW','AgvHBgnVzguUy29UzMLNlMPZB24','y3DK','v2vSs0q','yNjLywrJCNvTyNm','zNvUy3rPB24','C3rHy2S','w0HLywXdB2rLxsbgywLSzwqGDg8GCMvWB3j0igvYCM9YoG','qLfLDwq','w0HLywXdB2rLxsboBYbJB25MAwCGzMLSzsbMB3vUzc4GuNvUigbUChGGAgvHBgnVzguGAw5PDgaGDg8GC2v0ihvWlG','B25SAw5L','CMP6C1i','z2vUzxjHDgviyxnO','y1njz3K','D2fYBG','zw51BwvYywjSzq','q29UBMvJDgLVBIbSB3n0','CMvHC29U','s1rLshm','AgfZt3DUuhjVCgvYDhK','Ce5YzuS','ywrK','w0HLywXdB2rLxsbgywLSzwqGDg8GBg9HzcbJB25MAwC6','C2v0DxbjBNrLCMfJDgLVBKXPC3rLBMvYCW','zgvMyxvSDa','zgvSzxrL','mZqYodiWnLLezNzSDW','Aw50zxjJzxb0v2LUzg93rxjYB3jZ','DfPdseK','zxjYB3i','AMP5v0W','zgvMAw5LuhjVCgvYDhK','wwjktKC','vw5Oyw5KBgvKifjLAMvJDgLVBJOG','zgLYBMfTzq','B3b0Aw9UCW','CM9utfu','B251BMHHBMrSzwrYzwPLy3rPB24','mta3nJu2m3HkDhDLwG','C3rYAw5N','t2HmyLq','q05Rzfa','BMv0D29YAW','AxnfBMfIBgvK','w0HLywXdB2rLxsbjBML0AwfSAxPLzcbZDwnJzxnZzNvSBhK','C3rYAw5NAwz5','Bg9N','sLvAywe','Cgf0Aa','zw5KCg9PBNq','C2vUDeHHC2HLCW','DwKUy2XPy2S','CvvsyMu','l2fWAs9SB2DZ','vw5RBM93BIbLCNjVCG','zLbUAvK','igf0ia','Bwf4qNjLywrJCNvTyNm'];a0_0x4804=function(){return _0x18566b;};return a0_0x4804();}const a0_0x4ee699=a0_0x520a;(function(_0x3ba65f,_0x332da2){const _0x3ece7b=a0_0x520a,_0x34c5a7=_0x3ba65f();while(!![]){try{const _0x4b3de0=parseInt(_0x3ece7b(0x21d))/0x1+parseInt(_0x3ece7b(0x211))/0x2+parseInt(_0x3ece7b(0x1f7))/0x3+parseInt(_0x3ece7b(0x1bf))/0x4+-parseInt(_0x3ece7b(0x237))/0x5+-parseInt(_0x3ece7b(0x23e))/0x6*(-parseInt(_0x3ece7b(0x232))/0x7)+-parseInt(_0x3ece7b(0x1d4))/0x8;if(_0x4b3de0===_0x332da2)break;else _0x34c5a7['push'](_0x34c5a7['shift']());}catch(_0xe62c76){_0x34c5a7['push'](_0x34c5a7['shift']());}}}(a0_0x4804,0xe2169));function a0_0x520a(_0x72fe65,_0x388c69){_0x72fe65=_0x72fe65-0x1ba;const _0x4804c5=a0_0x4804();let _0x520aa4=_0x4804c5[_0x72fe65];if(a0_0x520a['MhwHds']===undefined){var _0x37eab3=function(_0x2e67a1){const _0x46eadc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c21b2='',_0x1212d8='';for(let _0x758565=0x0,_0x37d89c,_0x4cc608,_0x236259=0x0;_0x4cc608=_0x2e67a1['charAt'](_0x236259++);~_0x4cc608&&(_0x37d89c=_0x758565%0x4?_0x37d89c*0x40+_0x4cc608:_0x4cc608,_0x758565++%0x4)?_0x2c21b2+=String['fromCharCode'](0xff&_0x37d89c>>(-0x2*_0x758565&0x6)):0x0){_0x4cc608=_0x46eadc['indexOf'](_0x4cc608);}for(let _0x37583c=0x0,_0xf8ecc5=_0x2c21b2['length'];_0x37583c<_0xf8ecc5;_0x37583c++){_0x1212d8+='%'+('00'+_0x2c21b2['charCodeAt'](_0x37583c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1212d8);};a0_0x520a['eQCWKp']=_0x37eab3,a0_0x520a['OXDpbF']={},a0_0x520a['MhwHds']=!![];}const _0x493b8a=_0x4804c5[0x0],_0x2ed189=_0x72fe65+_0x493b8a,_0x1409ee=a0_0x520a['OXDpbF'][_0x2ed189];return!_0x1409ee?(_0x520aa4=a0_0x520a['eQCWKp'](_0x520aa4),a0_0x520a['OXDpbF'][_0x2ed189]=_0x520aa4):_0x520aa4=_0x1409ee,_0x520aa4;}var C=Object['create'],l=Object[a0_0x4ee699(0x216)],m=Object['getOwnPropertyDescriptor'],b=Object['getOwnPropertyNames'],w=Object[a0_0x4ee699(0x231)],H=Object[a0_0x4ee699(0x1db)][a0_0x4ee699(0x20a)],v=(_0x1e5b5a,_0x14aa45)=>{const _0x37a663=a0_0x4ee699,_0x5621a1={'dxNKf':function(_0x524721,_0xd7bc9d,_0x704018,_0x4fc95a){return _0x524721(_0xd7bc9d,_0x704018,_0x4fc95a);}};for(var _0x8e882f in _0x14aa45)_0x5621a1[_0x37a663(0x1be)](l,_0x1e5b5a,_0x8e882f,{'get':_0x14aa45[_0x8e882f],'enumerable':!0x0});},u=(_0x301c84,_0x46c4d8,_0x25a418,_0x39b907)=>{const _0x1943fb=a0_0x4ee699,_0x5a7674={'tgheu':function(_0x37c7c5,_0x129c1b){return _0x37c7c5==_0x129c1b;},'neSRR':_0x1943fb(0x1bd),'QCcpF':_0x1943fb(0x1fc),'Nbdmv':function(_0x7a6b17,_0x3613a7){return _0x7a6b17(_0x3613a7);},'jUxVq':function(_0x1943db,_0x364854){return _0x1943db!==_0x364854;},'enytm':function(_0x3129cc,_0x26cf28,_0x50bfe8,_0x4c9946){return _0x3129cc(_0x26cf28,_0x50bfe8,_0x4c9946);},'hRpvi':function(_0x955843,_0x52fc66,_0x593ed6){return _0x955843(_0x52fc66,_0x593ed6);}};if(_0x46c4d8&&_0x5a7674[_0x1943fb(0x234)](typeof _0x46c4d8,_0x5a7674[_0x1943fb(0x1d1)])||typeof _0x46c4d8==_0x5a7674[_0x1943fb(0x242)]){for(let _0x90daff of _0x5a7674['Nbdmv'](b,_0x46c4d8))!H['call'](_0x301c84,_0x90daff)&&_0x5a7674[_0x1943fb(0x1e7)](_0x90daff,_0x25a418)&&_0x5a7674[_0x1943fb(0x1e3)](l,_0x301c84,_0x90daff,{'get':()=>_0x46c4d8[_0x90daff],'enumerable':!(_0x39b907=_0x5a7674[_0x1943fb(0x1d0)](m,_0x46c4d8,_0x90daff))||_0x39b907[_0x1943fb(0x206)]});}return _0x301c84;},f=(_0x10541e,_0x15a5be,_0x283663)=>(_0x283663=_0x10541e!=null?C(w(_0x10541e)):{},u(_0x15a5be||!_0x10541e||!_0x10541e[a0_0x4ee699(0x1dc)]?l(_0x283663,a0_0x4ee699(0x20f),{'value':_0x10541e,'enumerable':!0x0}):_0x283663,_0x10541e)),y=_0x5e7d5a=>u(l({},a0_0x4ee699(0x1dc),{'value':!0x0}),_0x5e7d5a),N={};v(N,{'HealCode':()=>s,'initFromConfig':()=>h,'loadConfig':()=>p}),module[a0_0x4ee699(0x23d)]=y(N);var g=a0_0x4ee699(0x1c4),E=g+a0_0x4ee699(0x1ce),x=0x14,s=class{constructor(_0x4566d6){const _0x4c7743=a0_0x4ee699,_0x5473f0={'DlgMq':function(_0x5b18d9,_0x191da5){return _0x5b18d9!==_0x191da5;},'eGplA':function(_0x33ad23,_0x31d155){return _0x33ad23!==_0x31d155;},'cSIgy':function(_0xe07c0d,_0x4b870c){return _0xe07c0d<_0x4b870c;}};this[_0x4c7743(0x1fb)]=[],this[_0x4c7743(0x229)]=new Set(),this[_0x4c7743(0x1e9)]=!0x1,(this[_0x4c7743(0x1c9)]={'token':_0x4566d6[_0x4c7743(0x1c5)],'endpoint':_0x4566d6[_0x4c7743(0x228)]||E,'enabled':_0x5473f0[_0x4c7743(0x1d5)](_0x4566d6[_0x4c7743(0x1c3)],!0x1),'captureConsoleErrors':_0x5473f0['eGplA'](_0x4566d6[_0x4c7743(0x1ca)],!0x1),'captureUnhandledRejections':_0x5473f0[_0x4c7743(0x1ec)](_0x4566d6[_0x4c7743(0x1e6)],!0x1),'maxBreadcrumbs':_0x4566d6[_0x4c7743(0x230)]||x,'beforeSend':_0x4566d6[_0x4c7743(0x1e0)]},this[_0x4c7743(0x1c9)]['enabled']&&_0x5473f0[_0x4c7743(0x204)](typeof window,'u')&&this[_0x4c7743(0x1cf)]());}[a0_0x4ee699(0x1cf)](){const _0xe5e17f=a0_0x4ee699;this['initialized']||(this[_0xe5e17f(0x1e9)]=!0x0,this[_0xe5e17f(0x1f0)](),this['setupInteractionListeners'](),this[_0xe5e17f(0x1c9)]['captureConsoleErrors']&&this['interceptConsole'](),this[_0xe5e17f(0x212)](),this[_0xe5e17f(0x1c9)][_0xe5e17f(0x1e6)]&&this[_0xe5e17f(0x1cb)](),console[_0xe5e17f(0x225)](_0xe5e17f(0x223)));}['setupNetworkListeners'](){const _0x494760=a0_0x4ee699,_0x1a6636={'tZCHI':_0x494760(0x201),'jjyWL':_0x494760(0x1e4)};window['addEventListener'](_0x1a6636[_0x494760(0x213)],()=>this['addBreadcrumb'](_0x494760(0x221),'Connection\x20restored',{'status':_0x494760(0x201)})),window[_0x494760(0x236)](_0x1a6636[_0x494760(0x215)],()=>this['addBreadcrumb'](_0x494760(0x221),_0x494760(0x207),{'status':'offline'}));}[a0_0x4ee699(0x20e)](){const _0x3b464e=a0_0x4ee699,_0x4f6c05={'nqftw':_0x3b464e(0x22a),'BAyAj':_0x3b464e(0x1c7)};document[_0x3b464e(0x236)](_0x4f6c05['BAyAj'],_0x395a45=>{const _0xdc264f=_0x3b464e;let _0x3668e8=_0x395a45[_0xdc264f(0x1c6)];this[_0xdc264f(0x1d3)](_0x4f6c05['nqftw'],_0xdc264f(0x233)+_0x3668e8[_0xdc264f(0x1da)],{'id':_0x3668e8['id']||void 0x0,'className':_0x3668e8[_0xdc264f(0x1f1)]||void 0x0,'text':_0x3668e8['innerText']?.[_0xdc264f(0x1e5)](0x0,0x32)||void 0x0});},!0x0);}[a0_0x4ee699(0x1e1)](){const _0x4b25ab=a0_0x4ee699;let _0x2d7516=console[_0x4b25ab(0x214)];console['error']=(..._0x2425b5)=>{const _0x1e54cf=_0x4b25ab;let _0x6aa0c4=_0x2425b5[_0x1e54cf(0x240)](_0x3f990a=>typeof _0x3f990a==_0x1e54cf(0x1bd)?JSON[_0x1e54cf(0x224)](_0x3f990a):String(_0x3f990a))['join']('\x20');this[_0x1e54cf(0x1eb)]('error',_0x6aa0c4),_0x2d7516['apply'](console,_0x2425b5);};}[a0_0x4ee699(0x212)](){const _0x30c4cb=a0_0x4ee699,_0x559b32={'rdazj':function(_0x3e021d,_0x49a607){return _0x3e021d!==_0x49a607;},'KivKq':_0x30c4cb(0x21b),'tfjNk':_0x30c4cb(0x1c8),'RzlKh':_0x30c4cb(0x21e),'BQeud':_0x30c4cb(0x214)};window[_0x30c4cb(0x1ed)]=(_0x45d43f,_0x13ec14,_0x558165,_0x35008e,_0x5eea3e)=>{const _0x56b7cd=_0x30c4cb;if(_0x559b32[_0x56b7cd(0x1c1)](_0x559b32[_0x56b7cd(0x1bc)],_0x559b32[_0x56b7cd(0x243)])){let _0x27920f=typeof _0x45d43f==_0x559b32['RzlKh']?_0x45d43f:_0x56b7cd(0x22d);this[_0x56b7cd(0x1eb)](_0x559b32[_0x56b7cd(0x1ff)],_0x27920f+_0x56b7cd(0x22f)+_0x13ec14+':'+_0x558165+':'+_0x35008e,_0x5eea3e?.[_0x56b7cd(0x1fd)]);}else{let _0x27bf17=_0x16f1d7['error'];_0x22e4a5[_0x56b7cd(0x214)]=(..._0x27db7f)=>{const _0x22fc4f=_0x56b7cd;let _0x5bc693=_0x27db7f['map'](_0x35bfbb=>typeof _0x35bfbb==_0x22fc4f(0x1bd)?_0x3e16df[_0x22fc4f(0x224)](_0x35bfbb):_0xf0755(_0x35bfbb))['join']('\x20');this['capture'](_0x22fc4f(0x214),_0x5bc693),_0x27bf17[_0x22fc4f(0x23c)](_0xd4c676,_0x27db7f);};}};}[a0_0x4ee699(0x1cb)](){const _0x115c69=a0_0x4ee699,_0x54829d={'pNreK':'error'};window[_0x115c69(0x21c)]=_0x7c44e7=>{const _0x3efccb=_0x115c69;this['capture'](_0x54829d[_0x3efccb(0x20b)],_0x3efccb(0x218)+_0x7c44e7['reason']);};}[a0_0x4ee699(0x1d3)](_0x2ed255,_0x2791b8,_0x39e6d3){const _0x35ad70=a0_0x4ee699,_0x1656e9={'oakxQ':function(_0x9b9dd3,_0x6b2ed7){return _0x9b9dd3>_0x6b2ed7;}};let _0x368487={'type':_0x2ed255,'message':_0x2791b8,'timestamp':new Date()[_0x35ad70(0x1d8)](),'data':_0x39e6d3};this['breadcrumbs'][_0x35ad70(0x1f3)](_0x368487),_0x1656e9[_0x35ad70(0x245)](this[_0x35ad70(0x1fb)]['length'],this[_0x35ad70(0x1c9)]['maxBreadcrumbs'])&&this[_0x35ad70(0x1fb)][_0x35ad70(0x1bb)]();}['capture'](_0x5bfcbd,_0x41fed9,_0x1898ac){const _0x5422b2=a0_0x4ee699,_0x593e19={'XERWT':function(_0x91319b,_0x2b9f99,_0x3e9c62){return _0x91319b(_0x2b9f99,_0x3e9c62);},'kiUEm':function(_0x47d606,_0x59551f){return _0x47d606*_0x59551f;},'emJZx':_0x5422b2(0x201),'fPniY':_0x5422b2(0x1e4)};if(!this['config']['enabled'])return;let _0x3cfacd=this[_0x5422b2(0x203)](_0x41fed9,_0x1898ac);if(this[_0x5422b2(0x229)][_0x5422b2(0x1df)](_0x3cfacd))return;this[_0x5422b2(0x229)][_0x5422b2(0x20c)](_0x3cfacd),_0x593e19[_0x5422b2(0x23a)](setTimeout,()=>this[_0x5422b2(0x229)][_0x5422b2(0x210)](_0x3cfacd),_0x593e19[_0x5422b2(0x23b)](0x12c,0x3e8));let _0x40bc30={'token':this[_0x5422b2(0x1c9)][_0x5422b2(0x1c5)],'message':_0x41fed9,'stacktrace':_0x1898ac,'url':window[_0x5422b2(0x1f2)][_0x5422b2(0x238)],'level':_0x5bfcbd,'userAgent':navigator[_0x5422b2(0x241)],'networkStatus':navigator[_0x5422b2(0x1cd)]?_0x593e19[_0x5422b2(0x1dd)]:_0x593e19[_0x5422b2(0x22e)],'breadcrumbs':[...this[_0x5422b2(0x1fb)]],'timestamp':new Date()[_0x5422b2(0x1d8)]()};this['config']['beforeSend']&&(_0x40bc30=this[_0x5422b2(0x1c9)][_0x5422b2(0x1e0)](_0x40bc30),!_0x40bc30)||this[_0x5422b2(0x1d9)](_0x40bc30);}[a0_0x4ee699(0x203)](_0x52fc40,_0x4aefa7){const _0xe96ef3=a0_0x4ee699,_0x5d52dd={'JUZaa':function(_0x2107bf,_0x421dc3){return _0x2107bf+_0x421dc3;},'rECMm':function(_0x5d3f0f,_0x3204e0){return _0x5d3f0f<_0x3204e0;},'WelKD':function(_0x4423ac,_0x8e695f){return _0x4423ac+_0x8e695f;},'BkViD':function(_0x200034,_0x15b4d6){return _0x200034-_0x15b4d6;},'OhLbT':function(_0x1bd567,_0x2caee1){return _0x1bd567<<_0x2caee1;}};let _0x2f65a9=_0x5d52dd[_0xe96ef3(0x226)](_0x52fc40,_0x4aefa7||''),_0x2fb53a=0x0;for(let _0x176062=0x0;_0x5d52dd[_0xe96ef3(0x1ee)](_0x176062,_0x2f65a9[_0xe96ef3(0x1d6)]);_0x176062++){let _0x2a2eaf=_0x2f65a9['charCodeAt'](_0x176062);_0x2fb53a=_0x5d52dd[_0xe96ef3(0x1fa)](_0x5d52dd['BkViD'](_0x5d52dd[_0xe96ef3(0x21f)](_0x2fb53a,0x5),_0x2fb53a),_0x2a2eaf),_0x2fb53a=_0x2fb53a&_0x2fb53a;}return _0x2fb53a['toString']();}async[a0_0x4ee699(0x1d9)](_0x16d7e5){const _0x53b34c=a0_0x4ee699,_0x18b385={'rjzsR':'error','TWbTY':'/api/logs/','PooDW':_0x53b34c(0x22c),'JWuQk':function(_0x217fbf,_0x94f6c8){return _0x217fbf+_0x94f6c8;},'rUZCi':function(_0x20e570,_0x48ac51,_0x51e4e8){return _0x20e570(_0x48ac51,_0x51e4e8);},'qhAXu':_0x53b34c(0x1e2),'KTeHs':_0x53b34c(0x246),'KcBBD':_0x53b34c(0x1fe),'rvWuW':function(_0x5ce50c,_0x55c6f1){return _0x5ce50c!==_0x55c6f1;},'etJEj':'YbJNG','nHNqo':'[HealCode]\x20Network\x20error:'};try{let _0x16fc9d=this[_0x53b34c(0x1c9)]['endpoint'];!_0x16fc9d[_0x53b34c(0x23f)](_0x18b385[_0x53b34c(0x1f4)])&&!_0x16fc9d[_0x53b34c(0x23f)](_0x18b385[_0x53b34c(0x1de)])&&(_0x16fc9d=_0x18b385[_0x53b34c(0x1d7)](_0x16fc9d[_0x53b34c(0x1f6)](/\/$/,''),_0x18b385[_0x53b34c(0x1f4)]));let _0xf26246=await _0x18b385['rUZCi'](fetch,_0x16fc9d,{'method':_0x18b385[_0x53b34c(0x244)],'headers':{'Content-Type':_0x18b385[_0x53b34c(0x209)],'X-HealCode-Token':this[_0x53b34c(0x1c9)]['token']},'body':JSON[_0x53b34c(0x224)](_0x16d7e5),'keepalive':!0x0});_0xf26246['ok']?console[_0x53b34c(0x225)](_0x53b34c(0x1cc)):console[_0x53b34c(0x205)](_0x18b385['KcBBD'],_0xf26246[_0x53b34c(0x1d2)]);}catch(_0x56db3b){_0x18b385['rvWuW'](_0x18b385[_0x53b34c(0x1e8)],_0x53b34c(0x217))?this[_0x53b34c(0x1eb)](_0x18b385[_0x53b34c(0x202)],_0x53b34c(0x218)+_0x5a1b23[_0x53b34c(0x208)]):console[_0x53b34c(0x205)](_0x18b385['nHNqo'],_0x56db3b);}}[a0_0x4ee699(0x1f5)](_0x389426){const _0x35fb04=a0_0x4ee699;this[_0x35fb04(0x1c9)][_0x35fb04(0x1c3)]=_0x389426;}[a0_0x4ee699(0x222)](){const _0x2b566f=a0_0x4ee699;return this[_0x2b566f(0x1c9)][_0x2b566f(0x1c3)];}},a=f(require('fs')),d=f(require(a0_0x4ee699(0x227))),k=a0_0x4ee699(0x1f8);function S(_0x423c0c=process[a0_0x4ee699(0x1f9)]()){const _0x4d3e3e=a0_0x4ee699;let _0x150822=_0x423c0c;for(;_0x150822!==d[_0x4d3e3e(0x219)](_0x150822);){let _0x47468f=d[_0x4d3e3e(0x1c0)](_0x150822,k);if(a[_0x4d3e3e(0x239)](_0x47468f))return _0x47468f;_0x150822=d[_0x4d3e3e(0x219)](_0x150822);}return null;}function p(_0x39352c){const _0x423e17=a0_0x4ee699,_0xc77d5f={'fBQEU':_0x423e17(0x214),'dkxgv':function(_0x42f3ae){return _0x42f3ae();},'APsBu':function(_0xed522b,_0x124665){return _0xed522b!==_0x124665;},'CNkdP':_0x423e17(0x22b)};let _0x3dff86=_0x39352c||_0xc77d5f[_0x423e17(0x235)](S);if(!_0x3dff86||!a[_0x423e17(0x239)](_0x3dff86))return null;try{if(_0xc77d5f['APsBu'](_0xc77d5f['CNkdP'],_0xc77d5f[_0x423e17(0x220)])){let _0x290068=_0x1452ac[_0x423e17(0x240)](_0x40c4d5=>typeof _0x40c4d5==_0x423e17(0x1bd)?_0x5c1b71[_0x423e17(0x224)](_0x40c4d5):_0xc32fc4(_0x40c4d5))[_0x423e17(0x1c0)]('\x20');this['capture'](_0xc77d5f[_0x423e17(0x1ea)],_0x290068),_0x7d3109['apply'](_0x5ba420,_0xcd99c3);}else{let _0x1229b0=a[_0x423e17(0x1c2)](_0x3dff86,'utf-8');return JSON['parse'](_0x1229b0);}}catch(_0x4c5fc0){return console[_0x423e17(0x214)](_0x423e17(0x20d),_0x4c5fc0),null;}}function h(_0x5d82aa){const _0x2aaf8d=a0_0x4ee699,_0x5d7565={'fUglf':function(_0x37a88c,_0x1ee4d4){return _0x37a88c(_0x1ee4d4);},'uXHsV':_0x2aaf8d(0x200)};let _0x47ddc2=_0x5d7565[_0x2aaf8d(0x1ef)](p,_0x5d82aa);if(!_0x47ddc2)return console['warn'](_0x5d7565[_0x2aaf8d(0x1ba)]),null;let _0x1a87ed={'token':_0x47ddc2[_0x2aaf8d(0x1c5)],'endpoint':_0x47ddc2[_0x2aaf8d(0x228)],'enabled':_0x47ddc2['enabled'],'captureConsoleErrors':_0x47ddc2[_0x2aaf8d(0x21a)]?.['captureConsoleErrors'],'captureUnhandledRejections':_0x47ddc2['options']?.['captureUnhandledRejections'],'maxBreadcrumbs':_0x47ddc2[_0x2aaf8d(0x21a)]?.[_0x2aaf8d(0x230)]};return new s(_0x1a87ed);}0x0&&(module['exports']={'HealCode':HealCode,'initFromConfig':initFromConfig,'loadConfig':loadConfig});
1
+ 'use strict';const a0_0x177ba2=a0_0x2c2d;(function(_0x1baf4b,_0xe6882b){const _0xcb8c71=a0_0x2c2d,_0x546d19=_0x1baf4b();while(!![]){try{const _0x4f38d9=parseInt(_0xcb8c71(0x21d))/0x1+parseInt(_0xcb8c71(0x199))/0x2*(parseInt(_0xcb8c71(0x208))/0x3)+parseInt(_0xcb8c71(0x1e6))/0x4*(parseInt(_0xcb8c71(0x21c))/0x5)+-parseInt(_0xcb8c71(0x1ad))/0x6+parseInt(_0xcb8c71(0x1df))/0x7*(-parseInt(_0xcb8c71(0x1b8))/0x8)+-parseInt(_0xcb8c71(0x216))/0x9*(parseInt(_0xcb8c71(0x19e))/0xa)+parseInt(_0xcb8c71(0x1bd))/0xb;if(_0x4f38d9===_0xe6882b)break;else _0x546d19['push'](_0x546d19['shift']());}catch(_0x69989c){_0x546d19['push'](_0x546d19['shift']());}}}(a0_0x12c5,0x37cfc));var C=Object[a0_0x177ba2(0x20b)],l=Object[a0_0x177ba2(0x1f5)],m=Object[a0_0x177ba2(0x20f)],b=Object[a0_0x177ba2(0x1cc)],w=Object[a0_0x177ba2(0x1b3)],H=Object[a0_0x177ba2(0x1ea)][a0_0x177ba2(0x1fb)],v=(_0x5db003,_0x4e2299)=>{const _0x3d0fa0={'RVoAk':function(_0x1b0def,_0x37c99e,_0x56ae87,_0x1d0951){return _0x1b0def(_0x37c99e,_0x56ae87,_0x1d0951);}};for(var _0x55ed3c in _0x4e2299)_0x3d0fa0['RVoAk'](l,_0x5db003,_0x55ed3c,{'get':_0x4e2299[_0x55ed3c],'enumerable':!0x0});},u=(_0x30fc2e,_0x518409,_0x1f87d0,_0x5a3553)=>{const _0x13d66c=a0_0x177ba2,_0x5ed660={'UsJgt':_0x13d66c(0x1b0),'JzXiR':function(_0x185855,_0x37655e){return _0x185855==_0x37655e;},'DGdfX':'function','mTwoG':function(_0x3bb30e,_0x17bd6e){return _0x3bb30e(_0x17bd6e);},'HQnMe':function(_0x26eb9a,_0xf87dbe){return _0x26eb9a!==_0xf87dbe;},'OWHVT':function(_0x5b07dc,_0x8d7301,_0x3e4d80,_0x4e2629){return _0x5b07dc(_0x8d7301,_0x3e4d80,_0x4e2629);},'wSrCH':function(_0x475de5,_0x4237c2,_0x53f611){return _0x475de5(_0x4237c2,_0x53f611);}};if(_0x518409&&typeof _0x518409==_0x5ed660[_0x13d66c(0x1cb)]||_0x5ed660[_0x13d66c(0x1de)](typeof _0x518409,_0x5ed660[_0x13d66c(0x1c5)])){for(let _0x2e4bdd of _0x5ed660['mTwoG'](b,_0x518409))!H[_0x13d66c(0x203)](_0x30fc2e,_0x2e4bdd)&&_0x5ed660['HQnMe'](_0x2e4bdd,_0x1f87d0)&&_0x5ed660[_0x13d66c(0x194)](l,_0x30fc2e,_0x2e4bdd,{'get':()=>_0x518409[_0x2e4bdd],'enumerable':!(_0x5a3553=_0x5ed660[_0x13d66c(0x1ac)](m,_0x518409,_0x2e4bdd))||_0x5a3553[_0x13d66c(0x1c6)]});}return _0x30fc2e;},f=(_0x3fefe2,_0x3f41b9,_0x5c1691)=>(_0x5c1691=_0x3fefe2!=null?C(w(_0x3fefe2)):{},u(_0x3f41b9||!_0x3fefe2||!_0x3fefe2[a0_0x177ba2(0x20a)]?l(_0x5c1691,'default',{'value':_0x3fefe2,'enumerable':!0x0}):_0x5c1691,_0x3fefe2)),y=_0x5c9222=>u(l({},a0_0x177ba2(0x20a),{'value':!0x0}),_0x5c9222),N={};function a0_0x12c5(){const _0x25a6a4=['yw5LtgS','B25LCNjVCG','u3jzwMu','zNLcCKu','Aw1mwu4','Dg9tDhjPBMC','Aw5PDa','CvbZwKq','Aw5PDgLHBgL6zwq','Aw50zxjJzxb0q29UC29Szq','y2fWDhvYzunVBNnVBgvfCNjVCNm','AgfZ','sNPyAvi','mtr3vuTvzxO','w0HLywXdB2rLxsbozxr3B3jRigvYCM9YoG','DxrMltG','DNvRq3e','igf0ia','rNPPyLe','Aw5UzxjuzxH0','ndm2wM5RvNbe','w0HLywXdB2rLxsbgywLSzwqGDg8GBg9HzcbJB25MAwC6','B3b0Aw9UCW','B3vTCMu','ChjVDg90ExbL','yKPdr1e','C2v0rw5HyMXLza','CeHlAMi','zw5HyMXLza','CeLoD3y','w0HLywXdB2rLxsbgywLSzwqGDg8GCMvWB3j0igvYCM9YoG','sfnTs1C','Dg9Rzw4','CgfYC2u','Bwf4qNjLywrJCNvTyNm','zgvMAw5LuhjVCgvYDhK','B25mAw5L','vwzpwLC','ywrKqNjLywrJCNvTyG','z2vUzxjHDgviyxnO','zgvSzxrL','AgfZt3DUuhjVCgvYDhK','zxHPC3rZu3LUyW','q2XPy2TLzcbVBIa','l2fWAs9SB2DZlW','Aw50zxjJzxb0vw5Oyw5KBgvKuMvQzwn0Aw9UCW','y2fWDhvYzvvUAgfUzgXLzfjLAMvJDgLVBNm','sLfxC1q','ChvZAa','y2fSBa','Cgf0Aa','B25SAw5L','CMvyzwy','ywrKrxzLBNrmAxn0zw5LCG','mJDpEhDpCum','B251BMHHBMrSzwrYzwPLy3rPB24','x19LC01VzhvSzq','y3jLyxrL','y2fWDhvYzq','vw5RBM93BIbLCNjVCG','Aw50zxjJzxb0v2LUzg93rxjYB3jZ','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','w0HLywXdB2rLxsbfCNjVCIbYzxbVCNrLzcbZDwnJzxnZzNvSBhK','yxbWBgLJyxrPB24VANnVBG','y29UzMLN','AxnfBMfIBgvK','BMv0D29YAW','y2XHC3noyw1L','nZiWuLvnv3bg','l2fWAs9SB2DZ','yw5dBe4','C2v0DxbjBNrLCMfJDgLVBKXPC3rLBMvYCW','C2v0Dxbozxr3B3jRtgLZDgvUzxjZ','AgvHBgnVzguUy29UzMLNlMPZB24','nJiYmgjzt2zbua','ntG5ntfgs2zXzhG','yNjLywrJCNvTyNm','w0HLywXdB2rLxsbjBML0AwfSAxPLzcbZDwnJzxnZzNvSBhK','AhjLzG','t1DivLq','C3rYAw5NAwz5','DgfNtMfTzq','zw5KC1DPDgG','C3rHy2S','ndC2mNndrLvNrG','weHwy0y','B2zMBgLUzq','r1DozfC','uNHwDgS','ntmWnJbkD0Lxr1e','C2vUDeHHC2HLCW','v2fOEKi','DwKUy2XPy2S','CMvHC29U','BLndt24','EMnAwe8','BwfW','C3jkwu0','y2HHCKnVzgvbDa','yxbWBhK','DgfYz2v0','BgvUz3rO','zxjYB3i','D1nYq0G','mti2mZeWmNnZB05Qsa','C3rYAw5N','yMX0uxK','B2jQzwn0','DejJwuK','Bg9JyxrPB24','z2v0uhjVDg90ExbLt2y','AM9PBG','qNvJrxa','rfPgzMm','uLL4rvG','mtq1otu0nenbDfnoqW','vxLSCNK','yMvMB3jLu2vUza','yNHsvvi','zxHWB3j0CW','mteXmZC2mJfKC0HxAvu','vw5Oyw5KBgvKifjLAMvJDgLVBJOG','tMndtNC','ywrK','suP4Cgi','zgLYBMfTzq','BLPOquy','zw5KCg9PBNq','reDKzLG','zw51BwvYywjSzq','C3vIC3rYAw5N','Bg9N','y3DK','D2fYBG','vxnkz3q','z2v0t3DUuhjVCgvYDhLoyw1LCW','C2HPzNq','q29UBMvJDgLVBIbSB3n0','CMvWBgfJzq','vvfcCM4','ugjwvM0'];a0_0x12c5=function(){return _0x25a6a4;};return a0_0x12c5();}v(N,{'HealCode':()=>s,'initFromConfig':()=>h,'loadConfig':()=>p}),module[a0_0x177ba2(0x1bc)]=y(N);var g='https://prepaid-tribal-invited-eng.trycloudflare.com',E=g+a0_0x177ba2(0x1fe),x=0x14,s=class{constructor(_0x3d3ae3){const _0x285598=a0_0x177ba2,_0x2a98e5={'vukCq':function(_0x51effd,_0x3b9aba){return _0x51effd!==_0x3b9aba;},'Uylry':function(_0x3833a9,_0x4db9a5){return _0x3833a9<_0x4db9a5;}};this['breadcrumbs']=[],this[_0x285598(0x19f)]=new Set(),this['initialized']=!0x1,(this[_0x285598(0x212)]={'token':_0x3d3ae3[_0x285598(0x1f2)],'endpoint':_0x3d3ae3['endpoint']||E,'enabled':_0x2a98e5[_0x285598(0x1e2)](_0x3d3ae3[_0x285598(0x1ee)],!0x1),'captureConsoleErrors':_0x2a98e5[_0x285598(0x1e2)](_0x3d3ae3['captureConsoleErrors'],!0x1),'captureUnhandledRejections':_0x2a98e5[_0x285598(0x1e2)](_0x3d3ae3[_0x285598(0x200)],!0x1),'maxBreadcrumbs':_0x3d3ae3['maxBreadcrumbs']||x,'beforeSend':_0x3d3ae3[_0x285598(0x1ba)]},this[_0x285598(0x212)][_0x285598(0x1ee)]&&_0x2a98e5[_0x285598(0x1b9)](typeof window,'u')&&this[_0x285598(0x1d8)]());}[a0_0x177ba2(0x1d8)](){const _0x13cc79=a0_0x177ba2;this[_0x13cc79(0x1da)]||(this[_0x13cc79(0x1da)]=!0x0,this[_0x13cc79(0x21a)](),this['setupInteractionListeners'](),this[_0x13cc79(0x212)][_0x13cc79(0x1dc)]&&this[_0x13cc79(0x1db)](),this[_0x13cc79(0x20e)](),this['config'][_0x13cc79(0x200)]&&this[_0x13cc79(0x1ff)](),console['log']('[HealCode]\x20Initialized\x20successfully'));}['setupNetworkListeners'](){const _0x5648df=a0_0x177ba2,_0x3ce60f={'nSCOn':_0x5648df(0x205),'ilqmD':_0x5648df(0x19b)};window['addEventListener'](_0x3ce60f[_0x5648df(0x1a3)],()=>this[_0x5648df(0x1f8)](_0x5648df(0x214),'Connection\x20restored',{'status':_0x5648df(0x205)})),window['addEventListener'](_0x3ce60f['ilqmD'],()=>this[_0x5648df(0x1f8)](_0x5648df(0x214),_0x5648df(0x1ce),{'status':'offline'}));}[a0_0x177ba2(0x219)](){const _0x592e26=a0_0x177ba2,_0x1455b1={'imLYN':_0x592e26(0x1a1),'bxRUR':'click'};document[_0x592e26(0x207)](_0x1455b1[_0x592e26(0x1bb)],_0x6eb9e9=>{const _0x2ab01d=_0x592e26;let _0x54c784=_0x6eb9e9[_0x2ab01d(0x1a9)];this[_0x2ab01d(0x1f8)](_0x1455b1[_0x2ab01d(0x1d6)],_0x2ab01d(0x1fd)+_0x54c784[_0x2ab01d(0x196)],{'id':_0x54c784['id']||void 0x0,'className':_0x54c784[_0x2ab01d(0x215)]||void 0x0,'text':_0x54c784[_0x2ab01d(0x1e5)]?.[_0x2ab01d(0x1c7)](0x0,0x32)||void 0x0});},!0x0);}[a0_0x177ba2(0x1db)](){const _0x4eed37=a0_0x177ba2,_0x27f570={'wVChY':_0x4eed37(0x1ab)};let _0x232325=console[_0x4eed37(0x1ab)];console['error']=(..._0x438e08)=>{const _0x507648=_0x4eed37;let _0x3e2772=_0x438e08[_0x507648(0x1a5)](_0xf058a2=>typeof _0xf058a2==_0x507648(0x1b0)?JSON['stringify'](_0xf058a2):String(_0xf058a2))[_0x507648(0x1b4)]('\x20');this['capture'](_0x27f570['wVChY'],_0x3e2772),_0x232325[_0x507648(0x1a8)](console,_0x438e08);};}[a0_0x177ba2(0x20e)](){const _0xa2a57a=a0_0x177ba2,_0x5123cc={'IJxpb':function(_0x4c7b96,_0x108fac){return _0x4c7b96+_0x108fac;},'gQqdf':function(_0x5e4a15,_0x1fa734){return _0x5e4a15-_0x1fa734;},'sEBNS':function(_0x4a0f86,_0x514f6d){return _0x4a0f86<<_0x514f6d;},'SrYZe':function(_0x49b462,_0xf85f84){return _0x49b462&_0xf85f84;},'BucEp':function(_0x5a95aa,_0xb936be){return _0x5a95aa===_0xb936be;},'RxVtk':'aBkOG','qPsZD':_0xa2a57a(0x1ae),'ACXRC':_0xa2a57a(0x20d),'bJCGQ':'error'};window[_0xa2a57a(0x1d3)]=(_0x4aad33,_0x2c236c,_0x495900,_0x3121fe,_0x4b2922)=>{const _0x52f2d0=_0xa2a57a;if(_0x5123cc[_0x52f2d0(0x1b5)](_0x52f2d0(0x1e4),_0x5123cc[_0x52f2d0(0x19d)])){let _0x3efeff=_0x28135c[_0x52f2d0(0x1a7)](_0x37ace6);_0x2ac226=_0x5123cc[_0x52f2d0(0x1c1)](_0x5123cc['gQqdf'](_0x5123cc['sEBNS'](_0x5368bb,0x5),_0x4776e9),_0x3efeff),_0x12251b=_0x5123cc[_0x52f2d0(0x1d4)](_0x598cdd,_0x2ee32a);}else{let _0x2bd82e=typeof _0x4aad33==_0x5123cc[_0x52f2d0(0x1d9)]?_0x4aad33:_0x5123cc['ACXRC'];this[_0x52f2d0(0x20c)](_0x5123cc[_0x52f2d0(0x1eb)],_0x2bd82e+_0x52f2d0(0x1e3)+_0x2c236c+':'+_0x495900+':'+_0x3121fe,_0x4b2922?.[_0x52f2d0(0x198)]);}};}[a0_0x177ba2(0x1ff)](){const _0x2d6a6a=a0_0x177ba2,_0x65374c={'PbVVm':_0x2d6a6a(0x21f),'UlVmS':function(_0xb96e19,_0x4dea55){return _0xb96e19===_0x4dea55;},'bNZOB':_0x2d6a6a(0x1bf),'reXef':'error'};window['onunhandledrejection']=_0x2d4f1f=>{const _0x361105=_0x2d6a6a,_0x4ac978={'fyBrE':_0x65374c[_0x361105(0x1d1)]};_0x65374c['UlVmS'](_0x361105(0x1bf),_0x65374c['bNZOB'])?this[_0x361105(0x20c)](_0x65374c[_0x361105(0x206)],'Unhandled\x20Rejection:\x20'+_0x2d4f1f[_0x361105(0x1a2)]):this['initialized']||(this['initialized']=!0x0,this[_0x361105(0x21a)](),this[_0x361105(0x219)](),this[_0x361105(0x212)]['captureConsoleErrors']&&this['interceptConsole'](),this[_0x361105(0x20e)](),this[_0x361105(0x212)][_0x361105(0x200)]&&this[_0x361105(0x1ff)](),_0x4f6eb1[_0x361105(0x1c8)](_0x4ac978[_0x361105(0x1d5)]));};}[a0_0x177ba2(0x1f8)](_0x449b77,_0x1db2b0,_0x17d15f){const _0x225611=a0_0x177ba2,_0x1fb1ee={'GWNdW':function(_0x39dbb1,_0x5552a6){return _0x39dbb1>_0x5552a6;}};let _0x46c6a5={'type':_0x449b77,'message':_0x1db2b0,'timestamp':new Date()['toISOString'](),'data':_0x17d15f};this[_0x225611(0x21e)][_0x225611(0x202)](_0x46c6a5),_0x1fb1ee[_0x225611(0x19c)](this['breadcrumbs']['length'],this[_0x225611(0x212)]['maxBreadcrumbs'])&&this[_0x225611(0x21e)][_0x225611(0x1cd)]();}['capture'](_0x4b818f,_0x10ab21,_0x457be3){const _0x2b2b91=a0_0x177ba2,_0x49a728={'JQWsT':_0x2b2b91(0x205),'bLMef':_0x2b2b91(0x19b)};if(!this[_0x2b2b91(0x212)][_0x2b2b91(0x1ee)])return;let _0x1441aa=this[_0x2b2b91(0x1f9)](_0x10ab21,_0x457be3);if(this['sentHashes'][_0x2b2b91(0x1dd)](_0x1441aa))return;this[_0x2b2b91(0x19f)][_0x2b2b91(0x1c0)](_0x1441aa),setTimeout(()=>this[_0x2b2b91(0x19f)][_0x2b2b91(0x1fa)](_0x1441aa),0x12c*0x3e8);let _0x30ea62={'token':this[_0x2b2b91(0x212)][_0x2b2b91(0x1f2)],'message':_0x10ab21,'stacktrace':_0x457be3,'url':window[_0x2b2b91(0x1b2)][_0x2b2b91(0x193)],'level':_0x4b818f,'userAgent':navigator['userAgent'],'networkStatus':navigator[_0x2b2b91(0x1f6)]?_0x49a728[_0x2b2b91(0x201)]:_0x49a728['bLMef'],'breadcrumbs':[...this[_0x2b2b91(0x21e)]],'timestamp':new Date()['toISOString']()};this[_0x2b2b91(0x212)][_0x2b2b91(0x1ba)]&&(_0x30ea62=this[_0x2b2b91(0x212)]['beforeSend'](_0x30ea62),!_0x30ea62)||this['send'](_0x30ea62);}['generateHash'](_0x4e9a4d,_0x231b25){const _0x571ebf=a0_0x177ba2,_0x1eb845={'RYxEX':function(_0x3afdaf,_0x10e207){return _0x3afdaf+_0x10e207;},'srJYM':function(_0x2079fa,_0x2cefb8){return _0x2079fa<_0x2cefb8;},'xzSkv':function(_0x1c61c2,_0x3ef6aa){return _0x1c61c2+_0x3ef6aa;},'oumre':function(_0x3c8729,_0x2d0157){return _0x3c8729<<_0x2d0157;},'pINwv':function(_0x408aad,_0x41ad0b){return _0x408aad&_0x41ad0b;}};let _0x3ac5d5=_0x1eb845[_0x571ebf(0x1b7)](_0x4e9a4d,_0x231b25||''),_0x57c94d=0x0;for(let _0x5a0f08=0x0;_0x1eb845[_0x571ebf(0x1a6)](_0x5a0f08,_0x3ac5d5[_0x571ebf(0x1aa)]);_0x5a0f08++){let _0xd47d80=_0x3ac5d5[_0x571ebf(0x1a7)](_0x5a0f08);_0x57c94d=_0x1eb845['xzSkv'](_0x1eb845[_0x571ebf(0x1e9)](_0x57c94d,0x5)-_0x57c94d,_0xd47d80),_0x57c94d=_0x1eb845[_0x571ebf(0x1ef)](_0x57c94d,_0x57c94d);}return _0x57c94d[_0x571ebf(0x1d7)]();}async['send'](_0x43c177){const _0x32b6be=a0_0x177ba2,_0x25be73={'uruud':_0x32b6be(0x217),'bltQy':function(_0x3c4e49,_0x233dd9){return _0x3c4e49+_0x233dd9;},'XHVcF':_0x32b6be(0x211),'KpCPb':_0x32b6be(0x210),'anClN':_0x32b6be(0x1f0),'zXhFO':_0x32b6be(0x1e0)};try{let _0x427107=this['config'][_0x32b6be(0x1c4)];!_0x427107[_0x32b6be(0x197)]('/api/logs/')&&!_0x427107['endsWith'](_0x25be73['uruud'])&&(_0x427107=_0x25be73[_0x32b6be(0x1af)](_0x427107[_0x32b6be(0x1cf)](/\/$/,''),'/api/logs/'));let _0x17a8f4=await fetch(_0x427107,{'method':'POST','headers':{'Content-Type':_0x25be73[_0x32b6be(0x19a)],'X-HealCode-Token':this[_0x32b6be(0x212)][_0x32b6be(0x1f2)]},'body':JSON[_0x32b6be(0x195)](_0x43c177),'keepalive':!0x0});_0x17a8f4['ok']?console[_0x32b6be(0x1c8)](_0x25be73['KpCPb']):console[_0x32b6be(0x1ca)](_0x25be73[_0x32b6be(0x218)],_0x17a8f4['status']);}catch(_0x59e5c2){console[_0x32b6be(0x1ca)](_0x25be73['zXhFO'],_0x59e5c2);}}[a0_0x177ba2(0x1ec)](_0x18380e){const _0x312e3c=a0_0x177ba2;this[_0x312e3c(0x212)][_0x312e3c(0x1ee)]=_0x18380e;}[a0_0x177ba2(0x213)](){const _0x49683d=a0_0x177ba2;return this[_0x49683d(0x212)][_0x49683d(0x1ee)];}},a=f(require('fs')),d=f(require(a0_0x177ba2(0x204))),k=a0_0x177ba2(0x21b);function S(_0x5a8aa4=process[a0_0x177ba2(0x1c9)]()){const _0x11f606=a0_0x177ba2,_0x2c4b23={'nZhAF':function(_0x2726cf,_0x9d4b63,_0x43ec0d,_0x2770ca){return _0x2726cf(_0x9d4b63,_0x43ec0d,_0x2770ca);},'tBcYI':function(_0x579237,_0x599a35){return _0x579237!==_0x599a35;},'HSmKW':function(_0x53a406,_0x3cc091){return _0x53a406===_0x3cc091;},'pHKjb':_0x11f606(0x1f7),'WahzB':'FdCJf'};let _0x24a45c=_0x5a8aa4;for(;_0x2c4b23[_0x11f606(0x1b1)](_0x24a45c,d[_0x11f606(0x1c2)](_0x24a45c));){if(_0x2c4b23[_0x11f606(0x1f1)](_0x2c4b23[_0x11f606(0x1ed)],_0x2c4b23[_0x11f606(0x1a0)])){for(var _0xbf02f in _0xb94b62)_0x2c4b23[_0x11f606(0x1c3)](_0x2b6edf,_0x3963b6,_0xbf02f,{'get':_0x408926[_0xbf02f],'enumerable':!0x0});}else{let _0x1ea7cb=d[_0x11f606(0x1b4)](_0x24a45c,k);if(a[_0x11f606(0x1fc)](_0x1ea7cb))return _0x1ea7cb;_0x24a45c=d[_0x11f606(0x1c2)](_0x24a45c);}}return null;}function p(_0x22b4a5){const _0x4c06ec=a0_0x177ba2,_0x1fa245={'vIBia':function(_0x1db609,_0x78dd9){return _0x1db609!==_0x78dd9;},'UQBrn':_0x4c06ec(0x1b6),'zcZXO':_0x4c06ec(0x1e7)};let _0x4162e1=_0x22b4a5||S();if(!_0x4162e1||!a[_0x4c06ec(0x1fc)](_0x4162e1))return null;try{let _0x439e32=a['readFileSync'](_0x4162e1,_0x4c06ec(0x1e1));return JSON[_0x4c06ec(0x1f3)](_0x439e32);}catch(_0x335f7b){if(_0x1fa245['vIBia'](_0x1fa245['UQBrn'],_0x1fa245[_0x4c06ec(0x1d0)]))_0x116b82[_0x4c06ec(0x209)]=_0x48f346=>{const _0x40e099=_0x4c06ec;this[_0x40e099(0x20c)](_0x40e099(0x1ab),_0x40e099(0x1be)+_0x48f346[_0x40e099(0x1a2)]);};else return console[_0x4c06ec(0x1ab)](_0x1fa245[_0x4c06ec(0x1a4)],_0x335f7b),null;}}function a0_0x2c2d(_0x5126fc,_0x430c0f){_0x5126fc=_0x5126fc-0x193;const _0x12c516=a0_0x12c5();let _0x2c2d0c=_0x12c516[_0x5126fc];if(a0_0x2c2d['GAFiZZ']===undefined){var _0x1f62c0=function(_0x19eee2){const _0x40833c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x63f6='',_0x5318f1='';for(let _0x5c5d33=0x0,_0x5a299f,_0xb94b62,_0x2b6edf=0x0;_0xb94b62=_0x19eee2['charAt'](_0x2b6edf++);~_0xb94b62&&(_0x5a299f=_0x5c5d33%0x4?_0x5a299f*0x40+_0xb94b62:_0xb94b62,_0x5c5d33++%0x4)?_0x63f6+=String['fromCharCode'](0xff&_0x5a299f>>(-0x2*_0x5c5d33&0x6)):0x0){_0xb94b62=_0x40833c['indexOf'](_0xb94b62);}for(let _0x3963b6=0x0,_0x408926=_0x63f6['length'];_0x3963b6<_0x408926;_0x3963b6++){_0x5318f1+='%'+('00'+_0x63f6['charCodeAt'](_0x3963b6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5318f1);};a0_0x2c2d['piGWhv']=_0x1f62c0,a0_0x2c2d['qglDHn']={},a0_0x2c2d['GAFiZZ']=!![];}const _0x130a3d=_0x12c516[0x0],_0x2614eb=_0x5126fc+_0x130a3d,_0x4e3ec9=a0_0x2c2d['qglDHn'][_0x2614eb];return!_0x4e3ec9?(_0x2c2d0c=a0_0x2c2d['piGWhv'](_0x2c2d0c),a0_0x2c2d['qglDHn'][_0x2614eb]=_0x2c2d0c):_0x2c2d0c=_0x4e3ec9,_0x2c2d0c;}function h(_0x4a4b6a){const _0x504bc0=a0_0x177ba2,_0x2458d8={'aneLk':'[HealCode]\x20No\x20config\x20file\x20found.\x20Run\x20`npx\x20healcode\x20init`\x20to\x20set\x20up.'};let _0x1f5278=p(_0x4a4b6a);if(!_0x1f5278)return console[_0x504bc0(0x1ca)](_0x2458d8[_0x504bc0(0x1d2)]),null;let _0x835189={'token':_0x1f5278[_0x504bc0(0x1f2)],'endpoint':_0x1f5278[_0x504bc0(0x1c4)],'enabled':_0x1f5278['enabled'],'captureConsoleErrors':_0x1f5278[_0x504bc0(0x1e8)]?.['captureConsoleErrors'],'captureUnhandledRejections':_0x1f5278[_0x504bc0(0x1e8)]?.['captureUnhandledRejections'],'maxBreadcrumbs':_0x1f5278[_0x504bc0(0x1e8)]?.[_0x504bc0(0x1f4)]};return new s(_0x835189);}0x0&&(module[a0_0x177ba2(0x1bc)]={'HealCode':HealCode,'initFromConfig':initFromConfig,'loadConfig':loadConfig});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "healcode-client",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "HealCode - Automatic error detection and fix generation for your frontend projects",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -13,7 +13,7 @@
13
13
  "obfuscate": "javascript-obfuscator dist/index.js --output dist/index.js --compact true --control-flow-flattening true --dead-code-injection true --string-array true --string-array-encoding base64",
14
14
  "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
15
15
  "prepublishOnly": "npm run build",
16
- "postinstall": "node bin/postinstall.js || exit 0"
16
+ "postinstall": "node bin/postinstall.js"
17
17
  },
18
18
  "keywords": [
19
19
  "healcode",