skikrumb-api 2.1.1 → 2.1.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.
Files changed (2) hide show
  1. package/dist/index.js +27 -16
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -20,7 +20,9 @@ class SkiKrumbRealtimeClient {
20
20
  return Promise.resolve();
21
21
  }
22
22
  // Additional guard: check if we're already connecting or connected
23
- if (this.websocket && (this.websocket.readyState === WebSocket.CONNECTING || this.websocket.readyState === WebSocket.OPEN)) {
23
+ if (this.websocket &&
24
+ (this.websocket.readyState === WebSocket.CONNECTING ||
25
+ this.websocket.readyState === WebSocket.OPEN)) {
24
26
  return Promise.resolve();
25
27
  }
26
28
  // Clean up any stale websocket before creating new one
@@ -39,7 +41,8 @@ class SkiKrumbRealtimeClient {
39
41
  connectToWebSocket() {
40
42
  return new Promise((resolve, reject) => {
41
43
  try {
42
- const baseWsUrl = this.url.replace(/^https/, 'wss').replace(/^http/, 'ws') + '/realtime';
44
+ const baseWsUrl = this.url.replace(/^https/, 'wss').replace(/^http/, 'ws') +
45
+ '/realtime';
43
46
  let wsUrl = `${baseWsUrl}?token=${encodeURIComponent(this.sessionToken)}`;
44
47
  if (this.supabaseToken) {
45
48
  wsUrl += `&supabaseToken=${encodeURIComponent(this.supabaseToken)}`;
@@ -59,7 +62,8 @@ class SkiKrumbRealtimeClient {
59
62
  this.emit('connected', message);
60
63
  resolve();
61
64
  }
62
- else if (message.type === 'auth_error' || message.type === 'error') {
65
+ else if (message.type === 'auth_error' ||
66
+ message.type === 'error') {
63
67
  console.error('❌ Authentication/Connection failed:', message.message || message.error);
64
68
  (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.close();
65
69
  reject(new Error(`Connection failed: ${message.message || message.error}`));
@@ -77,12 +81,18 @@ class SkiKrumbRealtimeClient {
77
81
  // Transform device data to match expected React Native format
78
82
  const deviceData = {
79
83
  ...message.data,
80
- device_id: ((_b = message.data.deveui) === null || _b === void 0 ? void 0 : _b.replace(/'/g, '')) || message.data.device_id,
81
- serial_number: ((_c = message.data.serial_number) === null || _c === void 0 ? void 0 : _c.replace(/'/g, '')) || message.data.serial_number,
82
- gps_fix: ((_d = message.data.gps_fix) === null || _d === void 0 ? void 0 : _d.replace(/'/g, '')) || message.data.gps_fix,
83
- gateway_id: ((_e = message.data.gateway_uuid) === null || _e === void 0 ? void 0 : _e.replace(/'/g, '')) || message.data.gateway_id,
84
- created_at: ((_f = message.data.recorded_at) === null || _f === void 0 ? void 0 : _f.replace(/'/g, '')) || message.data.created_at || message.timestamp,
85
- timestamp: message.timestamp
84
+ device_id: ((_b = message.data.deveui) === null || _b === void 0 ? void 0 : _b.replace(/'/g, '')) ||
85
+ message.data.device_id,
86
+ serial_number: ((_c = message.data.serial_number) === null || _c === void 0 ? void 0 : _c.replace(/'/g, '')) ||
87
+ message.data.serial_number,
88
+ gps_fix: ((_d = message.data.gps_fix) === null || _d === void 0 ? void 0 : _d.replace(/'/g, '')) ||
89
+ message.data.gps_fix,
90
+ gateway_id: ((_e = message.data.gateway_uuid) === null || _e === void 0 ? void 0 : _e.replace(/'/g, '')) ||
91
+ message.data.gateway_id,
92
+ created_at: ((_f = message.data.recorded_at) === null || _f === void 0 ? void 0 : _f.replace(/'/g, '')) ||
93
+ message.data.created_at ||
94
+ message.timestamp,
95
+ timestamp: message.timestamp,
86
96
  };
87
97
  this.emit('device_data', deviceData);
88
98
  }
@@ -103,7 +113,7 @@ class SkiKrumbRealtimeClient {
103
113
  }
104
114
  };
105
115
  this.websocket.onerror = (error) => {
106
- console.error(' Realtime connection error:', error);
116
+ console.warn('⚠️ Realtime connection event');
107
117
  this.isConnecting = false;
108
118
  this.emit('error', error);
109
119
  reject(error);
@@ -161,7 +171,8 @@ class SkiKrumbRealtimeClient {
161
171
  this.websocket.onerror = null;
162
172
  this.websocket.onclose = null;
163
173
  // Close the connection if it's still open
164
- if (this.websocket.readyState === WebSocket.OPEN || this.websocket.readyState === WebSocket.CONNECTING) {
174
+ if (this.websocket.readyState === WebSocket.OPEN ||
175
+ this.websocket.readyState === WebSocket.CONNECTING) {
165
176
  this.websocket.close(1000, 'Manual disconnect');
166
177
  }
167
178
  this.websocket = null;
@@ -174,7 +185,10 @@ class SkiKrumbRealtimeClient {
174
185
  }
175
186
  requestRefresh() {
176
187
  if (this.websocket && this.websocket.readyState === WebSocket.OPEN) {
177
- this.websocket.send(JSON.stringify({ type: 'request_refresh', timestamp: new Date().toISOString() }));
188
+ this.websocket.send(JSON.stringify({
189
+ type: 'request_refresh',
190
+ timestamp: new Date().toISOString(),
191
+ }));
178
192
  }
179
193
  }
180
194
  on(event, callback) {
@@ -339,9 +353,7 @@ export const skiKrumb = (options = {
339
353
  'x-client': options.requestedWith,
340
354
  },
341
355
  });
342
- const response = await refreshRequest
343
- .post('auth/external/refresh')
344
- .json();
356
+ const response = await refreshRequest.post('auth/external/refresh').json();
345
357
  return {
346
358
  success: response.success,
347
359
  sessionToken: response.sessionToken,
@@ -355,7 +367,6 @@ export const skiKrumb = (options = {
355
367
  throw error;
356
368
  }
357
369
  };
358
- // Sharing API endpoints
359
370
  const createSharingLink = async (shareRequest) => {
360
371
  try {
361
372
  const requestWithAuth = ky.create({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skikrumb-api",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "Wrapper for the skiKrumb API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",