@uxbertlabs/reportly 1.0.20 → 1.0.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ReportlyProvider.d.ts","sourceRoot":"","sources":["../../src/components/ReportlyProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAyC,SAAS,EAAe,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI/D,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAmED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,oBAAoB,EAAE,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,YAAY,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACxD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAID,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAW,EAAE,EAAE,qBAAqB,qBA0KhF;AAED,wBAAgB,WAAW,IAAI,mBAAmB,CAMjD"}
1
+ {"version":3,"file":"ReportlyProvider.d.ts","sourceRoot":"","sources":["../../src/components/ReportlyProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAyC,SAAS,EAAwB,MAAM,OAAO,CAAC;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI/D,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAmED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,oBAAoB,EAAE,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,YAAY,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACxD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAID,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAW,EAAE,EAAE,qBAAqB,qBA0KhF;AAED,wBAAgB,WAAW,IAAI,mBAAmB,CAMjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/features/export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAuB,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErF,cAAM,MAAM;IACV,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,SAAS,CAAC,EAAE,SAAS;IAKjC,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;IAsB9C,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,eAAe;IAUvB,cAAc,IAAI,UAAU,EAAE;IAI9B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKvC,gBAAgB,IAAI,IAAI;IAKxB,eAAe,IAAI,IAAI;IAiBvB;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAW/D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI/C;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI;IAIhC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGpC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/features/export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAuB,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErF,cAAM,MAAM;IACV,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,SAAS,CAAC,EAAE,SAAS;IASjC,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM;IA0B9C,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,eAAe;IAevB,cAAc,IAAI,UAAU,EAAE;IAI9B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASvC,gBAAgB,IAAI,IAAI;IASxB,eAAe,IAAI,IAAI;IAsBvB;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAW/D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI/C;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI;IAIhC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGpC;AAED,eAAe,MAAM,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -298,29 +298,40 @@ class N8nIntegration {
298
298
 
299
299
  class Export {
300
300
  constructor(n8nConfig) {
301
- this.savedIssues = this.loadSavedIssues();
301
+ this.savedIssues = [];
302
302
  this.n8nIntegration = new N8nIntegration(n8nConfig);
303
+ // Defer localStorage access to avoid SSR issues
304
+ if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {
305
+ this.savedIssues = this.loadSavedIssues();
306
+ }
303
307
  }
304
308
  exportToJSON(issueData) {
305
309
  const json = JSON.stringify(issueData, null, 2);
306
- const blob = new Blob([json], {
307
- type: 'application/json'
308
- });
309
- const url = URL.createObjectURL(blob);
310
- // Create download link
311
- const link = document.createElement('a');
312
- link.href = url;
313
- link.download = `issue-${Date.now()}.json`;
314
- document.body.appendChild(link);
315
- link.click();
316
- document.body.removeChild(link);
317
- // Clean up
318
- URL.revokeObjectURL(url);
319
- // Save to localStorage
320
- this.saveIssue(issueData);
310
+ // Check if we're in a browser environment
311
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
312
+ const blob = new Blob([json], {
313
+ type: 'application/json'
314
+ });
315
+ const url = URL.createObjectURL(blob);
316
+ // Create download link
317
+ const link = document.createElement('a');
318
+ link.href = url;
319
+ link.download = `issue-${Date.now()}.json`;
320
+ document.body.appendChild(link);
321
+ link.click();
322
+ document.body.removeChild(link);
323
+ // Clean up
324
+ URL.revokeObjectURL(url);
325
+ // Save to localStorage
326
+ this.saveIssue(issueData);
327
+ }
321
328
  return json;
322
329
  }
323
330
  saveIssue(issueData) {
331
+ // Check if we're in a browser environment
332
+ if (typeof window === 'undefined' || typeof localStorage === 'undefined') {
333
+ return;
334
+ }
324
335
  try {
325
336
  this.savedIssues.push({
326
337
  ...issueData,
@@ -337,6 +348,10 @@ class Export {
337
348
  }
338
349
  }
339
350
  loadSavedIssues() {
351
+ // Check if we're in a browser environment
352
+ if (typeof window === 'undefined' || typeof localStorage === 'undefined') {
353
+ return [];
354
+ }
340
355
  try {
341
356
  const saved = localStorage.getItem('uxbert-saved-issues');
342
357
  return saved ? JSON.parse(saved) : [];
@@ -350,13 +365,23 @@ class Export {
350
365
  }
351
366
  deleteSavedIssue(issueId) {
352
367
  this.savedIssues = this.savedIssues.filter(issue => issue.id !== issueId);
353
- localStorage.setItem('uxbert-saved-issues', JSON.stringify(this.savedIssues));
368
+ // Check if we're in a browser environment
369
+ if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {
370
+ localStorage.setItem('uxbert-saved-issues', JSON.stringify(this.savedIssues));
371
+ }
354
372
  }
355
373
  clearSavedIssues() {
356
374
  this.savedIssues = [];
357
- localStorage.removeItem('uxbert-saved-issues');
375
+ // Check if we're in a browser environment
376
+ if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {
377
+ localStorage.removeItem('uxbert-saved-issues');
378
+ }
358
379
  }
359
380
  exportAllIssues() {
381
+ // Check if we're in a browser environment
382
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
383
+ return;
384
+ }
360
385
  const json = JSON.stringify(this.savedIssues, null, 2);
361
386
  const blob = new Blob([json], {
362
387
  type: 'application/json'
@@ -9579,10 +9604,10 @@ function ReportlyProvider({
9579
9604
  });
9580
9605
  // Annotation manager state - will be set by Reportly component
9581
9606
  const [annotationManager, setAnnotationManagerState] = React.useState(null);
9582
- // Initialize services
9583
- const deviceInfo = new DeviceInfo();
9584
- const exportService = new Export(config.integrations?.n8n);
9585
- const screenshot = new Screenshot();
9607
+ // Initialize services with useMemo to ensure they're only created once and support SSR
9608
+ const deviceInfo = React.useMemo(() => new DeviceInfo(), []);
9609
+ const exportService = React.useMemo(() => new Export(config.integrations?.n8n), [config.integrations?.n8n]);
9610
+ const screenshot = React.useMemo(() => new Screenshot(), []);
9586
9611
  const openModal = React.useCallback(() => {
9587
9612
  dispatch({
9588
9613
  type: 'OPEN_MODAL'