@dcupl/common 1.1.3 → 1.1.5

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 (45) 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/helper.d.ts +1 -0
  8. package/dist/lib-cjs/helper.js +7 -1
  9. package/dist/lib-cjs/helper.js.map +1 -1
  10. package/dist/lib-cjs/index.d.ts +2 -0
  11. package/dist/lib-cjs/index.js +2 -0
  12. package/dist/lib-cjs/index.js.map +1 -1
  13. package/dist/lib-cjs/performance.d.ts +2 -0
  14. package/dist/lib-cjs/performance.js +10 -0
  15. package/dist/lib-cjs/performance.js.map +1 -1
  16. package/dist/lib-cjs/property-parser.d.ts +5 -0
  17. package/dist/lib-cjs/property-parser.js +115 -0
  18. package/dist/lib-cjs/property-parser.js.map +1 -0
  19. package/dist/lib-cjs/types/data.types.d.ts +1 -0
  20. package/dist/lib-cjs/types/dcupl.types.d.ts +4 -0
  21. package/dist/lib-cjs/types/model.types.d.ts +1 -0
  22. package/dist/lib-esm/analytics.controller.d.ts +80 -0
  23. package/dist/lib-esm/analytics.controller.js +114 -0
  24. package/dist/lib-esm/analytics.controller.js.map +1 -0
  25. package/dist/lib-esm/changeDetection.d.ts +5 -1
  26. package/dist/lib-esm/changeDetection.js +52 -25
  27. package/dist/lib-esm/changeDetection.js.map +1 -1
  28. package/dist/lib-esm/helper.d.ts +1 -0
  29. package/dist/lib-esm/helper.js +5 -0
  30. package/dist/lib-esm/helper.js.map +1 -1
  31. package/dist/lib-esm/index.d.ts +2 -0
  32. package/dist/lib-esm/index.js +2 -0
  33. package/dist/lib-esm/index.js.map +1 -1
  34. package/dist/lib-esm/performance.d.ts +2 -0
  35. package/dist/lib-esm/performance.js +10 -0
  36. package/dist/lib-esm/performance.js.map +1 -1
  37. package/dist/lib-esm/property-parser.d.ts +5 -0
  38. package/dist/lib-esm/property-parser.js +108 -0
  39. package/dist/lib-esm/property-parser.js.map +1 -0
  40. package/dist/lib-esm/types/data.types.d.ts +1 -0
  41. package/dist/lib-esm/types/dcupl.types.d.ts +4 -0
  42. package/dist/lib-esm/types/model.types.d.ts +1 -0
  43. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +1 -1
@@ -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;
@@ -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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"}
@@ -7,3 +7,4 @@ export declare const groupBy: (arr: any[], criteria: any) => any;
7
7
  export declare function generateKey(length?: number): string;
8
8
  export declare const removeTrailingSlash: (str: string) => string;
9
9
  export declare const escapeRegExp: (text: string) => string;
10
+ export declare const unescapeRegExp: (escapedText: string) => string;
@@ -80,4 +80,9 @@ export var escapeRegExp = function (text) {
80
80
  */
81
81
  // return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
82
82
  };
83
+ export var unescapeRegExp = function (escapedText) {
84
+ if (typeof escapedText !== 'string')
85
+ return '';
86
+ return escapedText.replace(/\\([[\]{}()*+?.,\\^$|#])/g, '$1');
87
+ };
83
88
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helper.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;