@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.
- 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/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/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
|
@@ -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
|
-
|
|
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
|
|
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 && '
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
102
|
-
|
|
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":";;;;;;AAAA,+DAAyC;AAEzC,6CAAqC;
|
|
1
|
+
{"version":3,"file":"changeDetection.js","sourceRoot":"","sources":["../../src/changeDetection.ts"],"names":[],"mappings":"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"}
|
package/dist/lib-cjs/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-cjs/index.js
CHANGED
|
@@ -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"}
|
|
@@ -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;
|