@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,114 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import objectHash from 'object-hash';
13
+ var AnalyticsController = /** @class */ (function () {
14
+ function AnalyticsController() {
15
+ this.enabled = false;
16
+ }
17
+ AnalyticsController.prototype.init = function (enabled) {
18
+ this.data = new Map();
19
+ this.enabled = enabled;
20
+ };
21
+ AnalyticsController.prototype.set = function (options) {
22
+ if (!this.enabled)
23
+ return options.value;
24
+ var uniqueKey = this.getKey(options.value.name, options.context);
25
+ this.data.set(uniqueKey, options.value);
26
+ return this.data.get(uniqueKey);
27
+ };
28
+ AnalyticsController.prototype.mark = function (options) {
29
+ if (!this.enabled)
30
+ return undefined;
31
+ var uniqueKey = this.getKey(options.name, options.context);
32
+ var entry = {
33
+ name: options.name,
34
+ type: 'mark',
35
+ value: performance.now(),
36
+ createdAt: Date.now(),
37
+ };
38
+ this.data.set(uniqueKey, entry);
39
+ return entry;
40
+ };
41
+ AnalyticsController.prototype.measure = function (options) {
42
+ if (!this.enabled)
43
+ return undefined;
44
+ var uniqueKey = this.getKey(options.name, options.context);
45
+ var startMark = this.data.get(this.getKey(options.start, options.context));
46
+ var endMark = this.data.get(this.getKey(options.end, options.context));
47
+ if (!startMark || !endMark) {
48
+ return undefined;
49
+ }
50
+ var duration = endMark.value - startMark.value;
51
+ var roundedDuration = Math.round(duration * 100) / 100;
52
+ var existingEntry = this.data.get(uniqueKey);
53
+ if (existingEntry && options.sum) {
54
+ var newDuration = existingEntry.value + roundedDuration;
55
+ var newEntry = __assign(__assign({}, existingEntry), { value: newDuration });
56
+ this.data.set(uniqueKey, newEntry);
57
+ return newEntry;
58
+ }
59
+ var entry = {
60
+ name: options.name,
61
+ type: 'measure',
62
+ value: roundedDuration,
63
+ createdAt: Date.now(),
64
+ };
65
+ if (options.detail) {
66
+ entry.detail = options.detail;
67
+ }
68
+ this.data.set(uniqueKey, entry);
69
+ return entry;
70
+ };
71
+ AnalyticsController.prototype.update = function (options) {
72
+ if (!this.enabled)
73
+ return options.value;
74
+ var uniqueKey = this.getKey(options.value.name, options.context);
75
+ var currentItem = this.data.get(uniqueKey);
76
+ if (currentItem) {
77
+ var newItem = __assign(__assign({}, currentItem), options.value);
78
+ this.data.set(uniqueKey, newItem);
79
+ }
80
+ else {
81
+ this.data.set(uniqueKey, options.value);
82
+ }
83
+ return this.data.get(uniqueKey);
84
+ };
85
+ AnalyticsController.prototype.getResourceInfosFromPerformanceAPI = function () {
86
+ if (typeof performance === 'undefined')
87
+ return [];
88
+ var entries = performance.getEntriesByType('resource');
89
+ return entries;
90
+ };
91
+ AnalyticsController.prototype.get = function (options) {
92
+ var uniqueKey = this.getKey(options.name, options.context);
93
+ return this.data.get(uniqueKey);
94
+ };
95
+ AnalyticsController.prototype.getByType = function (type) {
96
+ return Array.from(this.data.values()).filter(function (entry) { return entry.type === type; });
97
+ };
98
+ AnalyticsController.prototype.getByName = function (name) {
99
+ return Array.from(this.data.values()).filter(function (entry) { return entry.name === name; });
100
+ };
101
+ AnalyticsController.prototype.clear = function () {
102
+ this.data.clear();
103
+ };
104
+ AnalyticsController.prototype.getKey = function (key, context) {
105
+ if (!context) {
106
+ return key;
107
+ }
108
+ var hash = objectHash(context);
109
+ return key + '_' + hash;
110
+ };
111
+ return AnalyticsController;
112
+ }());
113
+ export { AnalyticsController };
114
+ //# 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;
@@ -1,5 +1,6 @@
1
1
  import cloneDeep from 'lodash/cloneDeep';
2
2
  import { perf } from './performance';
3
+ import { generateKey } from './helper';
3
4
  var ChangeDetector = /** @class */ (function () {
4
5
  function ChangeDetector() {
5
6
  this.updateListener = new Set();
@@ -7,6 +8,7 @@ var ChangeDetector = /** @class */ (function () {
7
8
  ChangeDetector.prototype._init = function (options) {
8
9
  var _this = this;
9
10
  this.key = options.cdRefKey;
11
+ this.analyticsController = options.analyticsController;
10
12
  this.parentCd = options.parentCd;
11
13
  this.dcuplInitOptions = options.dcuplInitOptions;
12
14
  if (this.parentCd) {
@@ -52,17 +54,61 @@ export var clone = function (obj, shouldClone) {
52
54
  return cloneDeep(obj);
53
55
  }
54
56
  };
57
+ var finish = function (cdRef, msg, start, context, result) {
58
+ var _a, _b;
59
+ try {
60
+ 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;
61
+ var valueToReturn = clone(result, shouldClone);
62
+ var end = perf.now();
63
+ msg.duration = end - start;
64
+ cdRef === null || cdRef === void 0 ? void 0 : cdRef.trigger(msg);
65
+ var value = {
66
+ duration: msg.duration,
67
+ };
68
+ if (msg.modelKey) {
69
+ value.model = msg.modelKey;
70
+ }
71
+ if (msg.args) {
72
+ value.args = msg.args;
73
+ }
74
+ cdRef.analyticsController.mark({
75
+ name: "".concat(msg.name, ":end"),
76
+ context: context,
77
+ });
78
+ cdRef.analyticsController.measure({
79
+ name: "".concat(msg.name),
80
+ start: "".concat(msg.name, ":start"),
81
+ end: "".concat(msg.name, ":end"),
82
+ context: context,
83
+ detail: value,
84
+ });
85
+ return valueToReturn;
86
+ }
87
+ catch (err) {
88
+ return result;
89
+ }
90
+ };
55
91
  export var trigger = function (msg) {
56
92
  var log = function (_target, _propertyKey, descriptor) {
57
93
  var originalMethod = descriptor.value;
58
94
  descriptor.value = function () {
59
- var _a, _b, _c;
95
+ var _a;
60
96
  var args = [];
61
97
  for (var _i = 0; _i < arguments.length; _i++) {
62
98
  args[_i] = arguments[_i];
63
99
  }
64
100
  var cdRef = this.cdRef;
65
101
  var start = perf.now();
102
+ var context = '';
103
+ if (msg.mergeAnalytics) {
104
+ }
105
+ else {
106
+ context = generateKey();
107
+ }
108
+ cdRef.analyticsController.mark({
109
+ name: "".concat(msg.name, ":start"),
110
+ context: context,
111
+ });
66
112
  var modelKey = (_a = this.model) === null || _a === void 0 ? void 0 : _a.key;
67
113
  if (!msg.originCdRefKey && cdRef.key) {
68
114
  msg.originCdRefKey = cdRef.key;
@@ -74,32 +120,13 @@ export var trigger = function (msg) {
74
120
  var result = originalMethod.apply(this, args);
75
121
  msg.method = _propertyKey;
76
122
  msg.args = args;
77
- if (result && 'pipe' in result) {
78
- // result = (result as Observable<any>).pipe(
79
- // map((value) => {
80
- // cdRef?.trigger(msg);
81
- // return clone(value, !!msg.cloneResult);
82
- // }),
83
- // );
84
- return result;
85
- }
86
- else if (result && 'then' in result) {
87
- return result.then(function (value) {
88
- var end = perf.now();
89
- msg.duration = end - start;
90
- cdRef === null || cdRef === void 0 ? void 0 : cdRef.trigger(msg);
91
- return clone(value, !!msg.cloneResult);
123
+ if (result && 'then' in result) {
124
+ return result.then(function (result) {
125
+ return finish(cdRef, msg, start, context, result);
92
126
  });
93
127
  }
94
- var end = perf.now();
95
- msg.duration = end - start;
96
- cdRef === null || cdRef === void 0 ? void 0 : cdRef.trigger(msg);
97
- 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;
98
- try {
99
- return clone(result, shouldClone);
100
- }
101
- catch (err) {
102
- return result;
128
+ else {
129
+ return finish(cdRef, msg, start, context, result);
103
130
  }
104
131
  }
105
132
  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';
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -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
  };
@@ -7,5 +7,15 @@ export var perf = {
7
7
  return new Date().getTime();
8
8
  }
9
9
  },
10
+ mark: function (name) {
11
+ if (typeof performance !== 'undefined') {
12
+ performance.mark(name);
13
+ }
14
+ },
15
+ measure: function (name, start, end) {
16
+ if (typeof performance !== 'undefined') {
17
+ performance.measure(name, start, end);
18
+ }
19
+ },
10
20
  };
11
21
  //# sourceMappingURL=performance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/performance.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,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,MAAM,CAAC,IAAM,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,108 @@
1
+ var __values = (this && this.__values) || function(o) {
2
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
+ if (m) return m.call(o);
4
+ if (o && typeof o.length === "number") return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
+ };
12
+ var __read = (this && this.__read) || function (o, n) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
14
+ if (!m) return o;
15
+ var i = m.call(o), r, ar = [], e;
16
+ try {
17
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
+ }
19
+ catch (error) { e = { error: error }; }
20
+ finally {
21
+ try {
22
+ if (r && !r.done && (m = i["return"])) m.call(i);
23
+ }
24
+ finally { if (e) throw e.error; }
25
+ }
26
+ return ar;
27
+ };
28
+ import { isDate } from 'date-fns';
29
+ // returns a list of properties based on the input data
30
+ export var getPropertiesForData = function (data, deep) {
31
+ var e_1, _a, e_2, _b;
32
+ var properties = [];
33
+ try {
34
+ for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
35
+ var item = data_1_1.value;
36
+ var _loop_1 = function (key, value) {
37
+ var property = properties.find(function (p) { return p.key === key; });
38
+ var type = getDcuplPropertyTypeForNativeType(value);
39
+ if (property) {
40
+ if (property.type !== type) {
41
+ property.type = 'any';
42
+ }
43
+ }
44
+ else {
45
+ var prop = {
46
+ key: key,
47
+ type: type,
48
+ };
49
+ properties.push(prop);
50
+ }
51
+ };
52
+ try {
53
+ for (var _c = (e_2 = void 0, __values(Object.entries(item))), _d = _c.next(); !_d.done; _d = _c.next()) {
54
+ var _e = __read(_d.value, 2), key = _e[0], value = _e[1];
55
+ _loop_1(key, value);
56
+ }
57
+ }
58
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
59
+ finally {
60
+ try {
61
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
62
+ }
63
+ finally { if (e_2) throw e_2.error; }
64
+ }
65
+ if (!deep) {
66
+ break;
67
+ }
68
+ }
69
+ }
70
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
71
+ finally {
72
+ try {
73
+ if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
74
+ }
75
+ finally { if (e_1) throw e_1.error; }
76
+ }
77
+ return properties;
78
+ };
79
+ export var isInt = function (n) {
80
+ return Number(n) === n && n % 1 === 0;
81
+ };
82
+ export var isFloat = function (n) {
83
+ return Number(n) === n && n % 1 !== 0;
84
+ };
85
+ export var getDcuplPropertyTypeForNativeType = function (value) {
86
+ var type = typeof value;
87
+ switch (type) {
88
+ case 'string':
89
+ return 'string';
90
+ case 'number':
91
+ if (isInt(value)) {
92
+ return 'int';
93
+ }
94
+ else if (isFloat(value)) {
95
+ return 'float';
96
+ }
97
+ else {
98
+ return 'any';
99
+ }
100
+ case 'boolean':
101
+ return 'boolean';
102
+ case 'object':
103
+ return isDate(value) ? 'date' : 'json';
104
+ default:
105
+ return 'any';
106
+ }
107
+ };
108
+ //# sourceMappingURL=property-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-parser.js","sourceRoot":"","sources":["../../src/property-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,uDAAuD;AACvD,MAAM,CAAC,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,iCAAiC,CAAC,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;AAEF,MAAM,CAAC,IAAM,KAAK,GAAG,UAAC,CAAM;IAC1B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,CAAM;IAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,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,KAAK,CAAC,KAAK,CAAC,EAAE;gBAChB,OAAO,KAAK,CAAC;aACd;iBAAM,IAAI,OAAO,CAAC,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,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC"}
@@ -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;