@dcupl/common 1.1.3 → 1.1.4

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 (39) hide show
  1. package/dist/lib-cjs/analytics.controller.d.ts +80 -0
  2. package/dist/lib-cjs/analytics.controller.js +120 -0
  3. package/dist/lib-cjs/analytics.controller.js.map +1 -0
  4. package/dist/lib-cjs/changeDetection.d.ts +5 -1
  5. package/dist/lib-cjs/changeDetection.js +52 -25
  6. package/dist/lib-cjs/changeDetection.js.map +1 -1
  7. package/dist/lib-cjs/index.d.ts +2 -0
  8. package/dist/lib-cjs/index.js +2 -0
  9. package/dist/lib-cjs/index.js.map +1 -1
  10. package/dist/lib-cjs/performance.d.ts +2 -0
  11. package/dist/lib-cjs/performance.js +10 -0
  12. package/dist/lib-cjs/performance.js.map +1 -1
  13. package/dist/lib-cjs/property-parser.d.ts +5 -0
  14. package/dist/lib-cjs/property-parser.js +115 -0
  15. package/dist/lib-cjs/property-parser.js.map +1 -0
  16. package/dist/lib-cjs/types/data.types.d.ts +1 -0
  17. package/dist/lib-cjs/types/dcupl.types.d.ts +4 -0
  18. package/dist/lib-cjs/types/model.types.d.ts +1 -0
  19. package/dist/lib-esm/analytics.controller.d.ts +80 -0
  20. package/dist/lib-esm/analytics.controller.js +114 -0
  21. package/dist/lib-esm/analytics.controller.js.map +1 -0
  22. package/dist/lib-esm/changeDetection.d.ts +5 -1
  23. package/dist/lib-esm/changeDetection.js +52 -25
  24. package/dist/lib-esm/changeDetection.js.map +1 -1
  25. package/dist/lib-esm/index.d.ts +2 -0
  26. package/dist/lib-esm/index.js +2 -0
  27. package/dist/lib-esm/index.js.map +1 -1
  28. package/dist/lib-esm/performance.d.ts +2 -0
  29. package/dist/lib-esm/performance.js +10 -0
  30. package/dist/lib-esm/performance.js.map +1 -1
  31. package/dist/lib-esm/property-parser.d.ts +5 -0
  32. package/dist/lib-esm/property-parser.js +108 -0
  33. package/dist/lib-esm/property-parser.js.map +1 -0
  34. package/dist/lib-esm/types/data.types.d.ts +1 -0
  35. package/dist/lib-esm/types/dcupl.types.d.ts +4 -0
  36. package/dist/lib-esm/types/model.types.d.ts +1 -0
  37. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ export type AnalyticsEntryType = 'resource' | 'mark' | 'measure' | 'data' | 'sdk_action';
2
+ export type AnalyticsEntryBase<Value = any> = {
3
+ name: string;
4
+ type: AnalyticsEntryType;
5
+ value: Value;
6
+ createdAt: number;
7
+ };
8
+ export type AnalyticsEntryResource = AnalyticsEntryBase<AnalyticsEntryResourceValue> & {
9
+ type: 'resource';
10
+ };
11
+ export type AnalyticsEntryMark = AnalyticsEntryBase<number> & {
12
+ type: 'mark';
13
+ };
14
+ export type AnalyticsEntryMeasure = AnalyticsEntryBase<number> & {
15
+ type: 'measure';
16
+ detail?: any;
17
+ };
18
+ export type AnalyticsEntryData = AnalyticsEntryBase<any> & {
19
+ type: 'data';
20
+ };
21
+ export type AnalyticsEntrySdkAction = AnalyticsEntryBase<AnalyticsEntrySdkActionValue> & {
22
+ type: 'sdk_action';
23
+ };
24
+ export type AnalyticsEntry = AnalyticsEntryResource | AnalyticsEntryMark | AnalyticsEntryMeasure | AnalyticsEntryData | AnalyticsEntrySdkAction;
25
+ export type AnalyticsEntrySdkActionValue = {
26
+ duration: number;
27
+ model?: string;
28
+ args?: any;
29
+ };
30
+ export type AnalyticsEntryResourceValue = {
31
+ model: string;
32
+ start: number;
33
+ startTime: number;
34
+ requestStart: number;
35
+ responseStart: number;
36
+ responseEnd: number;
37
+ end: number;
38
+ duration: number;
39
+ parseStart: number;
40
+ parseEnd: number;
41
+ transformStart?: number;
42
+ transformEnd?: number;
43
+ decodedBodySize: number;
44
+ encodedBodySize: number;
45
+ };
46
+ export declare class AnalyticsController {
47
+ private data;
48
+ private enabled;
49
+ constructor();
50
+ init(enabled: boolean): void;
51
+ set(options: {
52
+ value: AnalyticsEntry;
53
+ context?: any;
54
+ }): AnalyticsEntry | undefined;
55
+ mark(options: {
56
+ name: string;
57
+ context?: any;
58
+ }): AnalyticsEntryMark | undefined;
59
+ measure(options: {
60
+ name: string;
61
+ start: string;
62
+ end: string;
63
+ context?: any;
64
+ detail?: any;
65
+ sum?: boolean;
66
+ }): AnalyticsEntryMeasure | undefined;
67
+ update(options: {
68
+ value: AnalyticsEntry;
69
+ context?: any;
70
+ }): AnalyticsEntry | undefined;
71
+ getResourceInfosFromPerformanceAPI(): Array<PerformanceResourceTiming>;
72
+ get(options: {
73
+ name: string;
74
+ context?: any;
75
+ }): AnalyticsEntry | undefined;
76
+ getByType(type: AnalyticsEntryType): Array<AnalyticsEntry>;
77
+ getByName(name: string): Array<AnalyticsEntry>;
78
+ clear(): void;
79
+ getKey(key: string, context: any): string;
80
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.AnalyticsController = void 0;
18
+ var object_hash_1 = __importDefault(require("object-hash"));
19
+ var AnalyticsController = /** @class */ (function () {
20
+ function AnalyticsController() {
21
+ this.enabled = false;
22
+ }
23
+ AnalyticsController.prototype.init = function (enabled) {
24
+ this.data = new Map();
25
+ this.enabled = enabled;
26
+ };
27
+ AnalyticsController.prototype.set = function (options) {
28
+ if (!this.enabled)
29
+ return options.value;
30
+ var uniqueKey = this.getKey(options.value.name, options.context);
31
+ this.data.set(uniqueKey, options.value);
32
+ return this.data.get(uniqueKey);
33
+ };
34
+ AnalyticsController.prototype.mark = function (options) {
35
+ if (!this.enabled)
36
+ return undefined;
37
+ var uniqueKey = this.getKey(options.name, options.context);
38
+ var entry = {
39
+ name: options.name,
40
+ type: 'mark',
41
+ value: performance.now(),
42
+ createdAt: Date.now(),
43
+ };
44
+ this.data.set(uniqueKey, entry);
45
+ return entry;
46
+ };
47
+ AnalyticsController.prototype.measure = function (options) {
48
+ if (!this.enabled)
49
+ return undefined;
50
+ var uniqueKey = this.getKey(options.name, options.context);
51
+ var startMark = this.data.get(this.getKey(options.start, options.context));
52
+ var endMark = this.data.get(this.getKey(options.end, options.context));
53
+ if (!startMark || !endMark) {
54
+ return undefined;
55
+ }
56
+ var duration = endMark.value - startMark.value;
57
+ var roundedDuration = Math.round(duration * 100) / 100;
58
+ var existingEntry = this.data.get(uniqueKey);
59
+ if (existingEntry && options.sum) {
60
+ var newDuration = existingEntry.value + roundedDuration;
61
+ var newEntry = __assign(__assign({}, existingEntry), { value: newDuration });
62
+ this.data.set(uniqueKey, newEntry);
63
+ return newEntry;
64
+ }
65
+ var entry = {
66
+ name: options.name,
67
+ type: 'measure',
68
+ value: roundedDuration,
69
+ createdAt: Date.now(),
70
+ };
71
+ if (options.detail) {
72
+ entry.detail = options.detail;
73
+ }
74
+ this.data.set(uniqueKey, entry);
75
+ return entry;
76
+ };
77
+ AnalyticsController.prototype.update = function (options) {
78
+ if (!this.enabled)
79
+ return options.value;
80
+ var uniqueKey = this.getKey(options.value.name, options.context);
81
+ var currentItem = this.data.get(uniqueKey);
82
+ if (currentItem) {
83
+ var newItem = __assign(__assign({}, currentItem), options.value);
84
+ this.data.set(uniqueKey, newItem);
85
+ }
86
+ else {
87
+ this.data.set(uniqueKey, options.value);
88
+ }
89
+ return this.data.get(uniqueKey);
90
+ };
91
+ AnalyticsController.prototype.getResourceInfosFromPerformanceAPI = function () {
92
+ if (typeof performance === 'undefined')
93
+ return [];
94
+ var entries = performance.getEntriesByType('resource');
95
+ return entries;
96
+ };
97
+ AnalyticsController.prototype.get = function (options) {
98
+ var uniqueKey = this.getKey(options.name, options.context);
99
+ return this.data.get(uniqueKey);
100
+ };
101
+ AnalyticsController.prototype.getByType = function (type) {
102
+ return Array.from(this.data.values()).filter(function (entry) { return entry.type === type; });
103
+ };
104
+ AnalyticsController.prototype.getByName = function (name) {
105
+ return Array.from(this.data.values()).filter(function (entry) { return entry.name === name; });
106
+ };
107
+ AnalyticsController.prototype.clear = function () {
108
+ this.data.clear();
109
+ };
110
+ AnalyticsController.prototype.getKey = function (key, context) {
111
+ if (!context) {
112
+ return key;
113
+ }
114
+ var hash = (0, object_hash_1.default)(context);
115
+ return key + '_' + hash;
116
+ };
117
+ return AnalyticsController;
118
+ }());
119
+ exports.AnalyticsController = AnalyticsController;
120
+ //# sourceMappingURL=analytics.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.controller.js","sourceRoot":"","sources":["../../src/analytics.controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CallbackFunction, DcuplInitOptions } from './types';
2
+ import { AnalyticsController } from './analytics.controller';
2
3
  export type DcuplUpdateScope = 'all' | 'global' | 'list' | 'list$';
3
4
  export type DcuplUpdateTrigger = 'user' | 'loader';
4
5
  export type DcuplUpdateType = 'loader_fetch_finished' | 'file_loaded' | 'file_processed' | 'dcupl_initialized' | 'dcupl_updated_manually' | 'data_reprocessed_manually' | 'result_updated' | 'filter_applied' | 'global_triggered_update';
@@ -9,17 +10,19 @@ export type DcuplUpdateMessage = {
9
10
  args?: any;
10
11
  action?: DcuplUpdateAction;
11
12
  type?: DcuplUpdateType;
12
- title?: string;
13
+ name?: string;
13
14
  origin?: DcuplUpdateTrigger;
14
15
  duration?: number;
15
16
  originCdRefKey?: string;
16
17
  modelKey?: string;
17
18
  cloneResult?: boolean;
19
+ mergeAnalytics?: boolean;
18
20
  };
19
21
  export declare class ChangeDetector {
20
22
  key: string;
21
23
  protected parentCd: ChangeDetector | undefined;
22
24
  dcuplInitOptions: DcuplInitOptions;
25
+ analyticsController: AnalyticsController;
23
26
  private off;
24
27
  private updateListener;
25
28
  constructor();
@@ -27,6 +30,7 @@ export declare class ChangeDetector {
27
30
  cdRefKey: string;
28
31
  dcuplInitOptions: DcuplInitOptions;
29
32
  parentCd?: ChangeDetector;
33
+ analyticsController: AnalyticsController;
30
34
  }): void;
31
35
  destroy(): void;
32
36
  trigger(msg: DcuplUpdateMessage): void;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.trigger = exports.clone = exports.ChangeDetector = void 0;
7
7
  var cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
8
8
  var performance_1 = require("./performance");
9
+ var helper_1 = require("./helper");
9
10
  var ChangeDetector = /** @class */ (function () {
10
11
  function ChangeDetector() {
11
12
  this.updateListener = new Set();
@@ -13,6 +14,7 @@ var ChangeDetector = /** @class */ (function () {
13
14
  ChangeDetector.prototype._init = function (options) {
14
15
  var _this = this;
15
16
  this.key = options.cdRefKey;
17
+ this.analyticsController = options.analyticsController;
16
18
  this.parentCd = options.parentCd;
17
19
  this.dcuplInitOptions = options.dcuplInitOptions;
18
20
  if (this.parentCd) {
@@ -59,17 +61,61 @@ var clone = function (obj, shouldClone) {
59
61
  }
60
62
  };
61
63
  exports.clone = clone;
64
+ var finish = function (cdRef, msg, start, context, result) {
65
+ var _a, _b;
66
+ try {
67
+ var shouldClone = !!((_b = (_a = cdRef.dcuplInitOptions.performance) === null || _a === void 0 ? void 0 : _a.clone) === null || _b === void 0 ? void 0 : _b.enabled) && !!msg.cloneResult;
68
+ var valueToReturn = (0, exports.clone)(result, shouldClone);
69
+ var end = performance_1.perf.now();
70
+ msg.duration = end - start;
71
+ cdRef === null || cdRef === void 0 ? void 0 : cdRef.trigger(msg);
72
+ var value = {
73
+ duration: msg.duration,
74
+ };
75
+ if (msg.modelKey) {
76
+ value.model = msg.modelKey;
77
+ }
78
+ if (msg.args) {
79
+ value.args = msg.args;
80
+ }
81
+ cdRef.analyticsController.mark({
82
+ name: "".concat(msg.name, ":end"),
83
+ context: context,
84
+ });
85
+ cdRef.analyticsController.measure({
86
+ name: "".concat(msg.name),
87
+ start: "".concat(msg.name, ":start"),
88
+ end: "".concat(msg.name, ":end"),
89
+ context: context,
90
+ detail: value,
91
+ });
92
+ return valueToReturn;
93
+ }
94
+ catch (err) {
95
+ return result;
96
+ }
97
+ };
62
98
  var trigger = function (msg) {
63
99
  var log = function (_target, _propertyKey, descriptor) {
64
100
  var originalMethod = descriptor.value;
65
101
  descriptor.value = function () {
66
- var _a, _b, _c;
102
+ var _a;
67
103
  var args = [];
68
104
  for (var _i = 0; _i < arguments.length; _i++) {
69
105
  args[_i] = arguments[_i];
70
106
  }
71
107
  var cdRef = this.cdRef;
72
108
  var start = performance_1.perf.now();
109
+ var context = '';
110
+ if (msg.mergeAnalytics) {
111
+ }
112
+ else {
113
+ context = (0, helper_1.generateKey)();
114
+ }
115
+ cdRef.analyticsController.mark({
116
+ name: "".concat(msg.name, ":start"),
117
+ context: context,
118
+ });
73
119
  var modelKey = (_a = this.model) === null || _a === void 0 ? void 0 : _a.key;
74
120
  if (!msg.originCdRefKey && cdRef.key) {
75
121
  msg.originCdRefKey = cdRef.key;
@@ -81,32 +127,13 @@ var trigger = function (msg) {
81
127
  var result = originalMethod.apply(this, args);
82
128
  msg.method = _propertyKey;
83
129
  msg.args = args;
84
- if (result && 'pipe' in result) {
85
- // result = (result as Observable<any>).pipe(
86
- // map((value) => {
87
- // cdRef?.trigger(msg);
88
- // return clone(value, !!msg.cloneResult);
89
- // }),
90
- // );
91
- return result;
92
- }
93
- else if (result && 'then' in result) {
94
- return result.then(function (value) {
95
- var end = performance_1.perf.now();
96
- msg.duration = end - start;
97
- cdRef === null || cdRef === void 0 ? void 0 : cdRef.trigger(msg);
98
- return (0, exports.clone)(value, !!msg.cloneResult);
130
+ if (result && 'then' in result) {
131
+ return result.then(function (result) {
132
+ return finish(cdRef, msg, start, context, result);
99
133
  });
100
134
  }
101
- var end = performance_1.perf.now();
102
- msg.duration = end - start;
103
- cdRef === null || cdRef === void 0 ? void 0 : cdRef.trigger(msg);
104
- var shouldClone = !!((_c = (_b = cdRef.dcuplInitOptions.performance) === null || _b === void 0 ? void 0 : _b.clone) === null || _c === void 0 ? void 0 : _c.enabled) && !!msg.cloneResult;
105
- try {
106
- return (0, exports.clone)(result, shouldClone);
107
- }
108
- catch (err) {
109
- return result;
135
+ else {
136
+ return finish(cdRef, msg, start, context, result);
110
137
  }
111
138
  }
112
139
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"changeDetection.js","sourceRoot":"","sources":["../../src/changeDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeDetection.js","sourceRoot":"","sources":["../../src/changeDetection.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from './analytics.controller';
1
2
  export * from './changeDetection';
2
3
  export * from './cache.controller';
3
4
  export * from './computeSuggestions';
@@ -7,6 +8,7 @@ export * from './helper';
7
8
  export * from './indices.controller';
8
9
  export * from './performance';
9
10
  export * from './pivot';
11
+ export * from './property-parser';
10
12
  export * from './query-builder';
11
13
  export * from './query.helper';
12
14
  export * from './queryData';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./analytics.controller"), exports);
17
18
  __exportStar(require("./changeDetection"), exports);
18
19
  __exportStar(require("./cache.controller"), exports);
19
20
  __exportStar(require("./computeSuggestions"), exports);
@@ -23,6 +24,7 @@ __exportStar(require("./helper"), exports);
23
24
  __exportStar(require("./indices.controller"), exports);
24
25
  __exportStar(require("./performance"), exports);
25
26
  __exportStar(require("./pivot"), exports);
27
+ __exportStar(require("./property-parser"), exports);
26
28
  __exportStar(require("./query-builder"), exports);
27
29
  __exportStar(require("./query.helper"), exports);
28
30
  __exportStar(require("./queryData"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,uDAAqC;AACrC,mDAAiC;AACjC,8CAA4B;AAC5B,2CAAyB;AACzB,uDAAqC;AACrC,gDAA8B;AAC9B,0CAAwB;AACxB,kDAAgC;AAChC,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,oDAAkC;AAClC,qDAAmC;AACnC,uDAAqC;AACrC,mDAAiC;AACjC,8CAA4B;AAC5B,2CAAyB;AACzB,uDAAqC;AACrC,gDAA8B;AAC9B,0CAAwB;AACxB,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB"}
@@ -1,3 +1,5 @@
1
1
  export declare const perf: {
2
2
  now: () => number;
3
+ mark: (name: string) => void;
4
+ measure: (name: string, start: string, end: string) => void;
3
5
  };
@@ -10,5 +10,15 @@ exports.perf = {
10
10
  return new Date().getTime();
11
11
  }
12
12
  },
13
+ mark: function (name) {
14
+ if (typeof performance !== 'undefined') {
15
+ performance.mark(name);
16
+ }
17
+ },
18
+ measure: function (name, start, end) {
19
+ if (typeof performance !== 'undefined') {
20
+ performance.measure(name, start, end);
21
+ }
22
+ },
13
23
  };
14
24
  //# sourceMappingURL=performance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/performance.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG;IAClB,GAAG,EAAE;QACH,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;YACtC,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;SAC1B;aAAM;YACL,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;SAC7B;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/performance.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG;IAClB,GAAG,EAAE;QACH,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;YACtC,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;SAC1B;aAAM;YACL,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,IAAI,EAAE,UAAC,IAAY;QACjB,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;YACtC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;IACH,CAAC;IACD,OAAO,EAAE,UAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QAChD,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;YACtC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACvC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Property, PropertyType } from './types';
2
+ export declare const getPropertiesForData: (data: any[], deep: boolean) => Property[];
3
+ export declare const isInt: (n: any) => boolean;
4
+ export declare const isFloat: (n: any) => boolean;
5
+ export declare const getDcuplPropertyTypeForNativeType: (value: any) => PropertyType;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.getDcuplPropertyTypeForNativeType = exports.isFloat = exports.isInt = exports.getPropertiesForData = void 0;
31
+ var date_fns_1 = require("date-fns");
32
+ // returns a list of properties based on the input data
33
+ var getPropertiesForData = function (data, deep) {
34
+ var e_1, _a, e_2, _b;
35
+ var properties = [];
36
+ try {
37
+ for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
38
+ var item = data_1_1.value;
39
+ var _loop_1 = function (key, value) {
40
+ var property = properties.find(function (p) { return p.key === key; });
41
+ var type = (0, exports.getDcuplPropertyTypeForNativeType)(value);
42
+ if (property) {
43
+ if (property.type !== type) {
44
+ property.type = 'any';
45
+ }
46
+ }
47
+ else {
48
+ var prop = {
49
+ key: key,
50
+ type: type,
51
+ };
52
+ properties.push(prop);
53
+ }
54
+ };
55
+ try {
56
+ for (var _c = (e_2 = void 0, __values(Object.entries(item))), _d = _c.next(); !_d.done; _d = _c.next()) {
57
+ var _e = __read(_d.value, 2), key = _e[0], value = _e[1];
58
+ _loop_1(key, value);
59
+ }
60
+ }
61
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
62
+ finally {
63
+ try {
64
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
65
+ }
66
+ finally { if (e_2) throw e_2.error; }
67
+ }
68
+ if (!deep) {
69
+ break;
70
+ }
71
+ }
72
+ }
73
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
74
+ finally {
75
+ try {
76
+ if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
77
+ }
78
+ finally { if (e_1) throw e_1.error; }
79
+ }
80
+ return properties;
81
+ };
82
+ exports.getPropertiesForData = getPropertiesForData;
83
+ var isInt = function (n) {
84
+ return Number(n) === n && n % 1 === 0;
85
+ };
86
+ exports.isInt = isInt;
87
+ var isFloat = function (n) {
88
+ return Number(n) === n && n % 1 !== 0;
89
+ };
90
+ exports.isFloat = isFloat;
91
+ var getDcuplPropertyTypeForNativeType = function (value) {
92
+ var type = typeof value;
93
+ switch (type) {
94
+ case 'string':
95
+ return 'string';
96
+ case 'number':
97
+ if ((0, exports.isInt)(value)) {
98
+ return 'int';
99
+ }
100
+ else if ((0, exports.isFloat)(value)) {
101
+ return 'float';
102
+ }
103
+ else {
104
+ return 'any';
105
+ }
106
+ case 'boolean':
107
+ return 'boolean';
108
+ case 'object':
109
+ return (0, date_fns_1.isDate)(value) ? 'date' : 'json';
110
+ default:
111
+ return 'any';
112
+ }
113
+ };
114
+ exports.getDcuplPropertyTypeForNativeType = getDcuplPropertyTypeForNativeType;
115
+ //# sourceMappingURL=property-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-parser.js","sourceRoot":"","sources":["../../src/property-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;AAGlC,uDAAuD;AAChD,IAAM,oBAAoB,GAAG,UAAC,IAAW,EAAE,IAAa;;IAC7D,IAAM,UAAU,GAAe,EAAE,CAAC;;QAElC,KAAmB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA,4CAAE;YAApB,IAAM,IAAI,iBAAA;oCACD,GAAG,EAAE,KAAK;gBACpB,IAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,KAAK,GAAG,EAAb,CAAa,CAAC,CAAC;gBACvD,IAAM,IAAI,GAAG,IAAA,yCAAiC,EAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,QAAQ,EAAE;oBACZ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;wBAC1B,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;qBACvB;iBACF;qBAAM;oBACL,IAAM,IAAI,GAAa;wBACrB,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,IAAI;qBACJ,CAAC;oBACT,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;;;gBAbH,KAA2B,IAAA,oBAAA,SAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA,gBAAA;oBAApC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;4BAAV,GAAG,EAAE,KAAK;iBAcrB;;;;;;;;;YACD,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM;aACP;SACF;;;;;;;;;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAzBW,QAAA,oBAAoB,wBAyB/B;AAEK,IAAM,KAAK,GAAG,UAAC,CAAM;IAC1B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEK,IAAM,OAAO,GAAG,UAAC,CAAM;IAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,IAAM,iCAAiC,GAAG,UAAC,KAAU;IAC1D,IAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAE1B,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,IAAI,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE;gBAChB,OAAO,KAAK,CAAC;aACd;iBAAM,IAAI,IAAA,eAAO,EAAC,KAAK,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC;aAChB;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;QACH,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,IAAA,iBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AArBW,QAAA,iCAAiC,qCAqB5C"}
@@ -9,6 +9,7 @@ export type DataContainer<ListType extends RawItem | ListItem = ListItem, ModelN
9
9
  data: ListType[];
10
10
  keyProperty?: string;
11
11
  autoGenerateKey?: boolean;
12
+ autoGenerateProperties?: boolean;
12
13
  };
13
14
  export type DataContainerType = 'upsert' | 'update' | 'set' | 'remove';
14
15
  export type ReferenceDataTypes<ListType extends ListItem = ListItem> = string | string[] | ListType | ListType[];
@@ -4,6 +4,7 @@ export type DcuplInitOptions = {
4
4
  config?: DcuplInitConfig;
5
5
  errorTracking?: DcuplInitErrorTrackingConfig;
6
6
  performance?: DcuplInitPerformanceConfig;
7
+ analytics?: DcuplInitErrorAnalyticsConfig;
7
8
  };
8
9
  export type DcuplInitPerformanceConfig = {
9
10
  cache?: {
@@ -16,6 +17,9 @@ export type DcuplInitPerformanceConfig = {
16
17
  export type DcuplInitErrorTrackingConfig = {
17
18
  enabled: boolean;
18
19
  };
20
+ export type DcuplInitErrorAnalyticsConfig = {
21
+ enabled: boolean;
22
+ };
19
23
  export type DcuplInitConfig = {
20
24
  projectId?: string;
21
25
  apiKey?: string;
@@ -249,6 +249,7 @@ export type ModelDefinition<ModelNames extends string = string> = {
249
249
  data?: RawItem[];
250
250
  supportsAutoCreation?: boolean;
251
251
  autoGenerateKey?: boolean;
252
+ autoGenerateProperties?: boolean;
252
253
  keyProperty?: string;
253
254
  valueMappings?: ValueMappingConfig[];
254
255
  meta?: ModelMetadata;