@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.
- package/dist/lib-cjs/analytics.controller.d.ts +80 -0
- package/dist/lib-cjs/analytics.controller.js +120 -0
- package/dist/lib-cjs/analytics.controller.js.map +1 -0
- package/dist/lib-cjs/changeDetection.d.ts +5 -1
- package/dist/lib-cjs/changeDetection.js +52 -25
- package/dist/lib-cjs/changeDetection.js.map +1 -1
- package/dist/lib-cjs/helper.d.ts +1 -0
- package/dist/lib-cjs/helper.js +7 -1
- package/dist/lib-cjs/helper.js.map +1 -1
- package/dist/lib-cjs/index.d.ts +2 -0
- package/dist/lib-cjs/index.js +2 -0
- package/dist/lib-cjs/index.js.map +1 -1
- package/dist/lib-cjs/performance.d.ts +2 -0
- package/dist/lib-cjs/performance.js +10 -0
- package/dist/lib-cjs/performance.js.map +1 -1
- package/dist/lib-cjs/property-parser.d.ts +5 -0
- package/dist/lib-cjs/property-parser.js +115 -0
- package/dist/lib-cjs/property-parser.js.map +1 -0
- package/dist/lib-cjs/types/data.types.d.ts +1 -0
- package/dist/lib-cjs/types/dcupl.types.d.ts +4 -0
- package/dist/lib-cjs/types/model.types.d.ts +1 -0
- package/dist/lib-esm/analytics.controller.d.ts +80 -0
- package/dist/lib-esm/analytics.controller.js +114 -0
- package/dist/lib-esm/analytics.controller.js.map +1 -0
- package/dist/lib-esm/changeDetection.d.ts +5 -1
- package/dist/lib-esm/changeDetection.js +52 -25
- package/dist/lib-esm/changeDetection.js.map +1 -1
- package/dist/lib-esm/helper.d.ts +1 -0
- package/dist/lib-esm/helper.js +5 -0
- package/dist/lib-esm/helper.js.map +1 -1
- package/dist/lib-esm/index.d.ts +2 -0
- package/dist/lib-esm/index.js +2 -0
- package/dist/lib-esm/index.js.map +1 -1
- package/dist/lib-esm/performance.d.ts +2 -0
- package/dist/lib-esm/performance.js +10 -0
- package/dist/lib-esm/performance.js.map +1 -1
- package/dist/lib-esm/property-parser.d.ts +5 -0
- package/dist/lib-esm/property-parser.js +108 -0
- package/dist/lib-esm/property-parser.js.map +1 -0
- package/dist/lib-esm/types/data.types.d.ts +1 -0
- package/dist/lib-esm/types/dcupl.types.d.ts +4 -0
- package/dist/lib-esm/types/model.types.d.ts +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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
|
-
|
|
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
|
|
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 && '
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
95
|
-
|
|
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":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"changeDetection.js","sourceRoot":"","sources":["../../src/changeDetection.ts"],"names":[],"mappings":"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"}
|
package/dist/lib-esm/helper.d.ts
CHANGED
|
@@ -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;
|
package/dist/lib-esm/helper.js
CHANGED
|
@@ -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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"}
|
package/dist/lib-esm/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/lib-esm/index.js
CHANGED
|
@@ -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"}
|
|
@@ -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;
|