@vizzly/dashboard 0.15.0-dev-bc6f8543474a2b6449f75c417595b4e1144c9d0a → 0.15.0-dev-4beae8623ea0574c0fe50b5f3fd0ef2ec64b955a

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,6 +2,7 @@ import React__default, { Fragment, useEffect, useState, useContext, createContex
2
2
  import isEmpty$3 from 'lodash-es/isEmpty';
3
3
  import _, { isArray, capitalize, isEmpty as isEmpty$2, isFunction, replace, isObject, isNumber, every, some, mergeWith, remove as remove$2, cloneDeep, findIndex, reduce, merge, sumBy, mapValues, zipObject, isDate, omit as omit$1, maxBy, reject, defaultsDeep, isString, flatMap, filter, uniq, uniqBy, debounce as debounce$1, orderBy, minBy, throttle, get as get$1, min, max, groupBy, isEqual, intersection } from 'lodash-es';
4
4
  import { QueryEngineConfig } from '@vizzly/semantic-layer-public';
5
+ import pino from 'pino';
5
6
  import moment from 'moment-timezone';
6
7
  import Joi from '@vizzly/joi';
7
8
  import { v4 } from 'uuid';
@@ -764,6 +765,43 @@ var snakeCaseToHumanReadable = function snakeCaseToHumanReadable(str) {
764
765
  return capitalise(_replaceAll(str, '_', ' '));
765
766
  };
766
767
 
768
+ var enableBrowserLogging = function enableBrowserLogging() {
769
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') return true;
770
+ return false;
771
+ };
772
+ var getOptions = function getOptions() {
773
+ if (enableBrowserLogging()) {
774
+ return {
775
+ browser: {
776
+ asObject: true
777
+ }
778
+ };
779
+ } else {
780
+ var _process$env, _process$env2, _process$env3, _process$env4;
781
+ var otelExporter = (_process$env = process.env) == null ? void 0 : _process$env['OTEL_EXPORTER_OTLP_ENDPOINT'];
782
+ var otelLogsExporter = (_process$env2 = process.env) == null ? void 0 : _process$env2['OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'];
783
+ var enableTerminalLogging = !!((_process$env3 = process.env) != null && _process$env3['TERMINAL_LOGGING']);
784
+ var enableOTEL = !!otelExporter || !!otelLogsExporter;
785
+ var logLevel = ((_process$env4 = process.env) == null ? void 0 : _process$env4['LOG_LEVEL']) || 'info';
786
+ var targets = [];
787
+ if (!!process.stdout.isTTY || !enableOTEL || !!enableTerminalLogging) {
788
+ targets.push({
789
+ target: 'pino-pretty',
790
+ level: logLevel,
791
+ customPrettifiers: {},
792
+ options: {
793
+ colorize: true,
794
+ singleLine: false
795
+ }
796
+ });
797
+ }
798
+ return pino.transport({
799
+ targets: targets
800
+ });
801
+ }
802
+ };
803
+ var logger = /*#__PURE__*/pino( /*#__PURE__*/getOptions());
804
+
767
805
  var LOG_LEVELS = ['debug', 'info', 'warning', 'error', 'properties'];
768
806
 
769
807
  // Singleton.
@@ -798,46 +836,66 @@ var shouldLog = function shouldLog(level) {
798
836
  });
799
837
  return currentLogLevelIndex <= logLevelIndex;
800
838
  };
801
- var format = function format(value) {
802
- if (value instanceof Error) return value;
803
- if (isObject(value)) return JSON.stringify(value);
804
- if (isArray(value)) return JSON.stringify(value);
805
- return value;
806
- };
807
839
  var logDebug = function logDebug() {
808
- var _console;
809
840
  for (var _len = arguments.length, message = new Array(_len), _key = 0; _key < _len; _key++) {
810
841
  message[_key] = arguments[_key];
811
842
  }
812
843
  // Actually log as info because then it shows in browsers without making another change...
813
- if (shouldLog('debug')) (_console = console).info.apply(_console, ["[VIZZLY DEBUG]"].concat(message.map(format)));
844
+ if (shouldLog('debug')) logger.info.apply(logger, parseToPino("[VIZZLY DEBUG]", message));
814
845
  };
815
846
  var logInfo = function logInfo() {
816
- var _console2;
817
847
  for (var _len2 = arguments.length, message = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
818
848
  message[_key2] = arguments[_key2];
819
849
  }
820
- if (shouldLog('info')) (_console2 = console).info.apply(_console2, ["[VIZZLY INFO]"].concat(message.map(format)));
850
+ if (shouldLog('info')) logger.info.apply(logger, parseToPino("[VIZZLY INFO]", message));
821
851
  };
822
852
  var logProperties = function logProperties() {
823
853
  for (var _len3 = arguments.length, message = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
824
854
  message[_key3] = arguments[_key3];
825
855
  }
826
- if (shouldLog('properties')) console.info("[VIZZLY Dashboard Properties]", message);
856
+ if (shouldLog('properties')) logger.info.apply(logger, parseToPino("[VIZZLY Dashboard Properties]", message));
827
857
  };
828
858
  var logWarning = function logWarning() {
829
- var _console3;
830
859
  for (var _len4 = arguments.length, message = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
831
860
  message[_key4] = arguments[_key4];
832
861
  }
833
- if (shouldLog('warning')) (_console3 = console).warn.apply(_console3, ["[VIZZLY WARNING]"].concat(message.map(format)));
862
+ if (shouldLog('warning')) logger.warn.apply(logger, parseToPino("[VIZZLY WARNING]", message));
834
863
  };
835
864
  var logError = function logError() {
836
- var _console4;
837
865
  for (var _len5 = arguments.length, message = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
838
866
  message[_key5] = arguments[_key5];
839
867
  }
840
- if (shouldLog('error')) (_console4 = console).error.apply(_console4, ["[VIZZLY ERROR]"].concat(message.map(format)));
868
+ if (shouldLog('error')) logger.error.apply(logger, parseToPino("[VIZZLY ERROR]", message));
869
+ };
870
+ var parseToPino = function parseToPino(prefix, args) {
871
+ var inputs = isArray(args) ? args : [args];
872
+ var err;
873
+ var parts = [];
874
+ for (var _iterator = _createForOfIteratorHelperLoose(inputs), _step; !(_step = _iterator()).done;) {
875
+ var val = _step.value;
876
+ if (!err && val instanceof Error) {
877
+ err = val;
878
+ continue;
879
+ }
880
+ if (isObject(val) || isArray(val)) {
881
+ parts.push(JSON.stringify(val));
882
+ } else if (val !== undefined && val !== null) {
883
+ parts.push(String(val));
884
+ }
885
+ }
886
+ var msg = parts.length ? prefix + " " + parts.join(' ') : prefix;
887
+ return err ? [err, msg] : [msg];
888
+ };
889
+ var wrapCallbackInDebugLog = function wrapCallbackInDebugLog(name, fn) {
890
+ if (fn === undefined) return undefined;
891
+ return function () {
892
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
893
+ args[_key6] = arguments[_key6];
894
+ }
895
+ var result = fn.apply(void 0, args);
896
+ logDebug("Function " + name + " called with", args, 'and returned', result);
897
+ return result;
898
+ };
841
899
  };
842
900
 
843
901
  var NULL_REPLACEMENT = 'No value';
@@ -13020,7 +13078,7 @@ var formatShortDateAndTime = function formatShortDateAndTime(date) {
13020
13078
  });
13021
13079
  return date.toLocaleTimeString(EN_GB_LOCALE, options);
13022
13080
  };
13023
- var format$1 = function format(value, _format) {
13081
+ var format = function format(value, _format) {
13024
13082
  if (_format === 'day_of_month' && (typeof value === 'number' || typeof value === 'string')) {
13025
13083
  return "" + value + numberPostfix(typeof value === 'string' ? parseInt(value) : value);
13026
13084
  }
@@ -13410,7 +13468,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13410
13468
  noValueReplacement = noValue;
13411
13469
  }
13412
13470
  if (value === null || value === undefined) return noValueReplacement;
13413
- return format$1(value, 'hour_of_day');
13471
+ return format(value, 'hour_of_day');
13414
13472
  }
13415
13473
  },
13416
13474
  _vizzly_month_of_year: {
@@ -13420,7 +13478,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13420
13478
  noValueReplacement = noValue;
13421
13479
  }
13422
13480
  if (value === null || value === undefined) return noValueReplacement;
13423
- return format$1(value, 'month_of_year');
13481
+ return format(value, 'month_of_year');
13424
13482
  }
13425
13483
  },
13426
13484
  _vizzly_day_of_month: {
@@ -13430,7 +13488,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13430
13488
  noValueReplacement = noValue;
13431
13489
  }
13432
13490
  if (value === null || value === undefined) return noValueReplacement;
13433
- return format$1(value, 'day_of_month');
13491
+ return format(value, 'day_of_month');
13434
13492
  }
13435
13493
  },
13436
13494
  _vizzly_day_of_week_iso: {
@@ -13440,7 +13498,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13440
13498
  noValueReplacement = noValue;
13441
13499
  }
13442
13500
  if (value === null || value === undefined) return noValueReplacement;
13443
- return format$1(value, 'day_of_week_iso');
13501
+ return format(value, 'day_of_week_iso');
13444
13502
  }
13445
13503
  },
13446
13504
  _vizzly_week_of_year: {
@@ -13450,7 +13508,7 @@ var defaultNumberFormatOptions = function defaultNumberFormatOptions(textOverrid
13450
13508
  noValueReplacement = noValue;
13451
13509
  }
13452
13510
  if (value === null || value === undefined) return noValueReplacement;
13453
- return format$1(value, 'week_of_year');
13511
+ return format(value, 'week_of_year');
13454
13512
  }
13455
13513
  }
13456
13514
  };
@@ -13822,7 +13880,7 @@ function formattedFallbackDateTime(value) {
13822
13880
  var formattedDate;
13823
13881
  try {
13824
13882
  // Attempt to format using your custom DateTime functions
13825
- formattedDate = format$1(date, 'DD MMMM YYYY, hh:mm') || '';
13883
+ formattedDate = format(date, 'DD MMMM YYYY, hh:mm') || '';
13826
13884
  if (!formattedDate) throw new Error('Invalid format');
13827
13885
  } catch (e) {
13828
13886
  // Fallback to native Date handling if custom format fails
@@ -16176,119 +16234,119 @@ var defaultDateTimeFormatOptions = {
16176
16234
  hour_of_day: {
16177
16235
  description: 'Hour of the day',
16178
16236
  formatter: function formatter(date) {
16179
- return format$1(date, 'hour_of_day');
16237
+ return format(date, 'hour_of_day');
16180
16238
  }
16181
16239
  },
16182
16240
  /** @deprecated - moved to number formatting option */
16183
16241
  month_of_year: {
16184
16242
  description: 'Month of the year',
16185
16243
  formatter: function formatter(date) {
16186
- return format$1(date, 'month_of_year');
16244
+ return format(date, 'month_of_year');
16187
16245
  }
16188
16246
  },
16189
16247
  /** @deprecated - moved to number formatting option */
16190
16248
  day_of_month: {
16191
16249
  description: 'Day of month',
16192
16250
  formatter: function formatter(date) {
16193
- return format$1(date, 'day_of_month');
16251
+ return format(date, 'day_of_month');
16194
16252
  }
16195
16253
  },
16196
16254
  /** @deprecated - moved to number formatting option */
16197
16255
  day_of_week_iso: {
16198
16256
  description: 'Day of week',
16199
16257
  formatter: function formatter(date) {
16200
- return format$1(date, 'day_of_week_iso');
16258
+ return format(date, 'day_of_week_iso');
16201
16259
  }
16202
16260
  },
16203
16261
  /** @deprecated - moved to number formatting option */
16204
16262
  week_of_year: {
16205
16263
  description: 'Week of year',
16206
16264
  formatter: function formatter(date) {
16207
- return format$1(date, 'week_of_year');
16265
+ return format(date, 'week_of_year');
16208
16266
  }
16209
16267
  },
16210
16268
  'DD/MM/YYYY': {
16211
16269
  description: 'DD/MM/YYYY',
16212
16270
  formatter: function formatter(date) {
16213
- return format$1(date, 'DD/MM/YYYY');
16271
+ return format(date, 'DD/MM/YYYY');
16214
16272
  }
16215
16273
  },
16216
16274
  'MM/DD/YYYY': {
16217
16275
  description: 'MM/DD/YYYY',
16218
16276
  formatter: function formatter(date) {
16219
- return format$1(date, 'MM/DD/YYYY');
16277
+ return format(date, 'MM/DD/YYYY');
16220
16278
  }
16221
16279
  },
16222
16280
  'DD-MM-YYYY': {
16223
16281
  description: 'DD-MM-YYYY',
16224
16282
  formatter: function formatter(date) {
16225
- return format$1(date, 'DD-MM-YYYY');
16283
+ return format(date, 'DD-MM-YYYY');
16226
16284
  }
16227
16285
  },
16228
16286
  'MM-DD-YYYY': {
16229
16287
  description: 'MM-DD-YYYY',
16230
16288
  formatter: function formatter(date) {
16231
- return format$1(date, 'MM-DD-YYYY');
16289
+ return format(date, 'MM-DD-YYYY');
16232
16290
  }
16233
16291
  },
16234
16292
  'DD MMMM YYYY, hh:mm': {
16235
16293
  description: 'DD MMMM YYYY, hh:mm',
16236
16294
  formatter: function formatter(date) {
16237
- return format$1(date, 'DD MMMM YYYY, hh:mm');
16295
+ return format(date, 'DD MMMM YYYY, hh:mm');
16238
16296
  }
16239
16297
  },
16240
16298
  'dddd DD MMMM YYYY, hh:mm': {
16241
16299
  description: 'dddd DD MMMM YYYY, hh:mm',
16242
16300
  formatter: function formatter(date) {
16243
- return format$1(date, 'dddd DD MMMM YYYY, hh:mm');
16301
+ return format(date, 'dddd DD MMMM YYYY, hh:mm');
16244
16302
  }
16245
16303
  },
16246
16304
  'hh:mm': {
16247
16305
  description: 'hh:mm',
16248
16306
  formatter: function formatter(date) {
16249
- return format$1(date, 'hh:mm');
16307
+ return format(date, 'hh:mm');
16250
16308
  }
16251
16309
  },
16252
16310
  'hh:mm:ss': {
16253
16311
  description: 'hh:mm:ss',
16254
16312
  formatter: function formatter(date) {
16255
- return format$1(date, 'hh:mm:ss');
16313
+ return format(date, 'hh:mm:ss');
16256
16314
  }
16257
16315
  },
16258
16316
  'DD MMMM YYYY': {
16259
16317
  description: 'DD MMMM YYYY',
16260
16318
  formatter: function formatter(date) {
16261
- return format$1(date, 'DD MMMM YYYY');
16319
+ return format(date, 'DD MMMM YYYY');
16262
16320
  }
16263
16321
  },
16264
16322
  'MMMM YYYY': {
16265
16323
  description: 'MMMM YYYY',
16266
16324
  formatter: function formatter(date) {
16267
- return format$1(date, 'MMMM YYYY');
16325
+ return format(date, 'MMMM YYYY');
16268
16326
  }
16269
16327
  },
16270
16328
  YYYY: {
16271
16329
  description: 'YYYY',
16272
16330
  formatter: function formatter(date) {
16273
- return format$1(date, 'YYYY');
16331
+ return format(date, 'YYYY');
16274
16332
  }
16275
16333
  },
16276
16334
  'YYYY-MM-DD[T]HH:mm:ss': {
16277
16335
  description: 'YYYY-MM-DD[T]HH:mm:ss',
16278
16336
  formatter: function formatter(date) {
16279
- return format$1(date, 'YYYY-MM-DD[T]HH:mm:ss');
16337
+ return format(date, 'YYYY-MM-DD[T]HH:mm:ss');
16280
16338
  }
16281
16339
  },
16282
16340
  quarter: {
16283
16341
  description: 'Quarter',
16284
16342
  formatter: function formatter(date) {
16285
- return format$1(date, 'quarter');
16343
+ return format(date, 'quarter');
16286
16344
  }
16287
16345
  },
16288
16346
  week: {
16289
16347
  description: 'Week',
16290
16348
  formatter: function formatter(date) {
16291
- return format$1(date, 'week');
16349
+ return format(date, 'week');
16292
16350
  }
16293
16351
  }
16294
16352
  };
@@ -28793,7 +28851,7 @@ function DateFilter(props) {
28793
28851
  gap: "0.25rem",
28794
28852
  children: [jsxs(Flex, {
28795
28853
  children: [dateType === DateType.Fixed && jsx(DateTimeInput, {
28796
- value: value ? format$1(new Date(value), 'YYYY-MM-DD[T]HH:mm:ss') : undefined,
28854
+ value: value ? format(new Date(value), 'YYYY-MM-DD[T]HH:mm:ss') : undefined,
28797
28855
  onChange: function onChange(date) {
28798
28856
  var value = date ? date.toISOString() : null;
28799
28857
  setFilter({
@@ -69211,7 +69269,7 @@ function available(dashboard) {
69211
69269
  return Array.from(tagSet);
69212
69270
  }
69213
69271
 
69214
- function getOptions(allAvailableTags) {
69272
+ function getOptions$1(allAvailableTags) {
69215
69273
  var seenKeys = new Set();
69216
69274
  var tagOptions = [];
69217
69275
  allAvailableTags.forEach(function (tag) {
@@ -69248,7 +69306,7 @@ var TagsForm = function TagsForm(props) {
69248
69306
  dashboard = _useDashboardContext.dashboard;
69249
69307
  var allAvailableTags = available(dashboard);
69250
69308
  var getTagOptions = function getTagOptions() {
69251
- return getOptions(allAvailableTags);
69309
+ return getOptions$1(allAvailableTags);
69252
69310
  };
69253
69311
  var selectedTags = function selectedTags() {
69254
69312
  var options = getTagOptions();
@@ -81323,7 +81381,7 @@ var GlobalProviderContents = function GlobalProviderContents(props) {
81323
81381
  maxCSVDownloadLimit: props.maxCSVDownloadLimit,
81324
81382
  textOverrides: props.textOverrides,
81325
81383
  developerTools: props.developerTools,
81326
- dashboardFilters: props.dashboardFilters,
81384
+ dashboardFilters: wrapCallbackInDebugLog('dashboardFilters', props.dashboardFilters),
81327
81385
  onDashboardFilterChange: props.onDashboardFilterChange,
81328
81386
  onSave: onSave,
81329
81387
  onOpenConfigManagerUi: canOpenConfigManagerUi ? onOpenConfigManagerUi : undefined,
@@ -1,16 +1,17 @@
1
1
  import { LogLevel } from './types';
2
2
  export declare const LOG_LEVELS: Array<LogLevel>;
3
3
  export declare const setupLogger: (newLogLevel: LogLevel, onLogLevelChange?: ((newLogLevel: LogLevel) => void) | undefined) => {
4
- logDebug: (...message: any) => void;
5
- logError: (...message: any) => void;
6
- logInfo: (...message: any) => void;
7
- logWarning: (...message: any) => void;
8
- logProperties: (...message: any) => void;
4
+ logDebug: (...message: unknown[]) => void;
5
+ logError: (...message: unknown[]) => void;
6
+ logInfo: (...message: unknown[]) => void;
7
+ logWarning: (...message: unknown[]) => void;
8
+ logProperties: (...message: unknown[]) => void;
9
9
  getCurrentLogLevel: () => LogLevel;
10
10
  updateLogLevel: (newLevel: LogLevel) => void;
11
11
  };
12
- export declare const logDebug: (...message: any) => void;
13
- export declare const logInfo: (...message: any) => void;
14
- export declare const logProperties: (...message: any) => void;
15
- export declare const logWarning: (...message: any) => void;
16
- export declare const logError: (...message: any) => void;
12
+ export declare const logDebug: (...message: unknown[]) => void;
13
+ export declare const logInfo: (...message: unknown[]) => void;
14
+ export declare const logProperties: (...message: unknown[]) => void;
15
+ export declare const logWarning: (...message: unknown[]) => void;
16
+ export declare const logError: (...message: unknown[]) => void;
17
+ export declare const wrapCallbackInDebugLog: (name: string, fn: Function | undefined) => ((...args: any) => any) | undefined;
@@ -0,0 +1 @@
1
+ export declare const logger: any;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vizzly/dashboard",
3
3
  "author": "james@vizzly.co",
4
- "version": "0.15.0-dev-bc6f8543474a2b6449f75c417595b4e1144c9d0a",
4
+ "version": "0.15.0-dev-4beae8623ea0574c0fe50b5f3fd0ef2ec64b955a",
5
5
  "source": "src/index.tsx",
6
6
  "types": "./dist/dashboard/src/index.d.ts",
7
7
  "module": "./dist/dashboard.esm.js",