@dcupl/common 1.11.11 → 2.0.0-beta.1

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 (97) hide show
  1. package/dist/esm/attribute-dependency-graph.d.ts +119 -0
  2. package/dist/esm/cache.controller.d.ts +56 -1
  3. package/dist/esm/changeDetection.d.ts +1 -1
  4. package/dist/esm/date-utils.d.ts +50 -0
  5. package/dist/esm/deep-query.service.d.ts +133 -0
  6. package/dist/esm/dependency-graph.d.ts +102 -3
  7. package/dist/esm/index.d.ts +4 -0
  8. package/dist/esm/index.js +3096 -19
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/indices.controller.d.ts +92 -0
  11. package/dist/esm/logger/index.d.ts +2 -0
  12. package/dist/esm/logger/logger.d.ts +101 -0
  13. package/dist/esm/pivot.d.ts +2 -1
  14. package/dist/esm/query-builder.d.ts +435 -2
  15. package/dist/esm/queryData.d.ts +9 -4
  16. package/dist/esm/types/dcupl.types.d.ts +80 -0
  17. package/dist/esm/types/internal.types.d.ts +1 -1
  18. package/dist/esm/types/list.types.d.ts +10 -0
  19. package/dist/esm/types/model.types.d.ts +49 -12
  20. package/dist/esm/types/query.types.d.ts +500 -2
  21. package/dist/node/index.cjs +5 -0
  22. package/dist/node/index.cjs.map +1 -0
  23. package/package.json +7 -8
  24. package/dist/browser/common.umd.js +0 -2
  25. package/dist/browser/common.umd.js.map +0 -1
  26. package/dist/esm/analytics.controller.js +0 -105
  27. package/dist/esm/analytics.controller.js.map +0 -1
  28. package/dist/esm/cache.controller.js +0 -40
  29. package/dist/esm/cache.controller.js.map +0 -1
  30. package/dist/esm/changeDetection.js +0 -179
  31. package/dist/esm/changeDetection.js.map +0 -1
  32. package/dist/esm/computeSuggestions.js +0 -38
  33. package/dist/esm/computeSuggestions.js.map +0 -1
  34. package/dist/esm/dependency-graph.js +0 -136
  35. package/dist/esm/dependency-graph.js.map +0 -1
  36. package/dist/esm/getAggregation.js +0 -170
  37. package/dist/esm/getAggregation.js.map +0 -1
  38. package/dist/esm/getFacets.js +0 -67
  39. package/dist/esm/getFacets.js.map +0 -1
  40. package/dist/esm/helper.js +0 -102
  41. package/dist/esm/helper.js.map +0 -1
  42. package/dist/esm/indices.controller.js +0 -97
  43. package/dist/esm/indices.controller.js.map +0 -1
  44. package/dist/esm/object-hash.js +0 -33
  45. package/dist/esm/object-hash.js.map +0 -1
  46. package/dist/esm/performance.js +0 -33
  47. package/dist/esm/performance.js.map +0 -1
  48. package/dist/esm/pivot.js +0 -132
  49. package/dist/esm/pivot.js.map +0 -1
  50. package/dist/esm/property-parser.js +0 -57
  51. package/dist/esm/property-parser.js.map +0 -1
  52. package/dist/esm/query-builder.js +0 -233
  53. package/dist/esm/query-builder.js.map +0 -1
  54. package/dist/esm/query.helper.js +0 -172
  55. package/dist/esm/query.helper.js.map +0 -1
  56. package/dist/esm/queryData.js +0 -360
  57. package/dist/esm/queryData.js.map +0 -1
  58. package/dist/esm/script.controller.js +0 -54
  59. package/dist/esm/script.controller.js.map +0 -1
  60. package/dist/esm/template-parser.js +0 -22
  61. package/dist/esm/template-parser.js.map +0 -1
  62. package/dist/esm/types/aggregation.types.js +0 -2
  63. package/dist/esm/types/aggregation.types.js.map +0 -1
  64. package/dist/esm/types/app-loader.types.js +0 -2
  65. package/dist/esm/types/app-loader.types.js.map +0 -1
  66. package/dist/esm/types/data.types.js +0 -2
  67. package/dist/esm/types/data.types.js.map +0 -1
  68. package/dist/esm/types/dcupl.types.js +0 -2
  69. package/dist/esm/types/dcupl.types.js.map +0 -1
  70. package/dist/esm/types/facets.types.js +0 -2
  71. package/dist/esm/types/facets.types.js.map +0 -1
  72. package/dist/esm/types/filter.types.js +0 -2
  73. package/dist/esm/types/filter.types.js.map +0 -1
  74. package/dist/esm/types/group-by.types.js +0 -2
  75. package/dist/esm/types/group-by.types.js.map +0 -1
  76. package/dist/esm/types/index.js +0 -17
  77. package/dist/esm/types/index.js.map +0 -1
  78. package/dist/esm/types/internal.types.js +0 -2
  79. package/dist/esm/types/internal.types.js.map +0 -1
  80. package/dist/esm/types/list.types.js +0 -2
  81. package/dist/esm/types/list.types.js.map +0 -1
  82. package/dist/esm/types/model.types.js +0 -16
  83. package/dist/esm/types/model.types.js.map +0 -1
  84. package/dist/esm/types/projection.types.js +0 -2
  85. package/dist/esm/types/projection.types.js.map +0 -1
  86. package/dist/esm/types/quality.types.js +0 -2
  87. package/dist/esm/types/quality.types.js.map +0 -1
  88. package/dist/esm/types/query.types.js +0 -12
  89. package/dist/esm/types/query.types.js.map +0 -1
  90. package/dist/esm/types/section.types.js +0 -2
  91. package/dist/esm/types/section.types.js.map +0 -1
  92. package/dist/esm/types/suggestion.types.js +0 -2
  93. package/dist/esm/types/suggestion.types.js.map +0 -1
  94. package/dist/esm/types/testing.types.js +0 -2
  95. package/dist/esm/types/testing.types.js.map +0 -1
  96. package/dist/node/index.cjs.js +0 -1
  97. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,170 +0,0 @@
1
- function getScalingFactor(numbers) {
2
- let maxDecimalPlaces = 0;
3
- for (let num of numbers) {
4
- const decimalPart = num.toString().split('.')[1];
5
- if (decimalPart) {
6
- maxDecimalPlaces = Math.max(maxDecimalPlaces, decimalPart.length);
7
- }
8
- }
9
- return Math.pow(10, maxDecimalPlaces);
10
- }
11
- function add(a, b, factor) {
12
- return (a * factor + b * factor) / factor;
13
- }
14
- function divide(a, b, factor) {
15
- return (a * factor) / (b * factor);
16
- }
17
- export const getAggregation = (options, relevantData, indexMap, attribute) => {
18
- if (!attribute) {
19
- throw new Error('Attribute not found');
20
- }
21
- const aggregation = {
22
- attribute: attribute,
23
- types: options.types,
24
- };
25
- let numberAgg;
26
- if (aggregation.types.includes('sum') || aggregation.types.includes('avg') || aggregation.types.includes('count')) {
27
- numberAgg = getNumberAggregation(attribute, relevantData);
28
- }
29
- let minMax;
30
- if (aggregation.types.includes('min') || aggregation.types.includes('max')) {
31
- minMax = getMinMax(options.attribute, relevantData);
32
- }
33
- options.types.forEach((type) => {
34
- if (type === 'sum') {
35
- aggregation.sum = numberAgg?.sum;
36
- }
37
- else if (type === 'avg') {
38
- aggregation.avg = numberAgg?.average;
39
- }
40
- else if (type === 'count') {
41
- aggregation.count = numberAgg?.count;
42
- }
43
- else if (type === 'min') {
44
- aggregation.min = minMax && minMax[0];
45
- }
46
- else if (type === 'max') {
47
- aggregation.max = minMax && minMax[1];
48
- }
49
- else if (type === 'distinct') {
50
- aggregation.distinct = getDistinct(options, relevantData, indexMap);
51
- }
52
- else if (type === 'group') {
53
- aggregation.group = getGroups(options, relevantData);
54
- }
55
- });
56
- return aggregation;
57
- };
58
- const getMinMax = (attribute, data) => {
59
- let minV = undefined;
60
- let maxV = undefined;
61
- for (const item of data.values()) {
62
- if (item) {
63
- const value = item[attribute];
64
- if (minV === undefined || value < minV)
65
- minV = value;
66
- if (maxV === undefined || value > maxV)
67
- maxV = value;
68
- }
69
- }
70
- if (minV === undefined || maxV === undefined) {
71
- return undefined;
72
- }
73
- return [minV, maxV];
74
- };
75
- const getGroups = (options, data) => {
76
- const values = [];
77
- options.groupOptions?.groups?.forEach((group) => {
78
- values.push({
79
- option: group,
80
- count: 0,
81
- keys: [],
82
- });
83
- });
84
- const notFound = {
85
- option: { value: ['$dcupl_not_found'] },
86
- count: 0,
87
- keys: [],
88
- };
89
- for (const item of data.values()) {
90
- const relevantEntry = item[options.attribute];
91
- for (const group of values) {
92
- if ((typeof group.option.value !== 'undefined' && group.option.value.includes(relevantEntry)) ||
93
- (typeof group.option.from !== 'undefined' &&
94
- group.option.from < relevantEntry &&
95
- typeof group.option.to !== 'undefined' &&
96
- group.option.to > relevantEntry)) {
97
- group.count++;
98
- group.keys.push(item.key);
99
- }
100
- else {
101
- if (options?.groupOptions?.calculateNotFound) {
102
- notFound.count++;
103
- notFound.keys.push(item.key);
104
- }
105
- }
106
- }
107
- }
108
- if (options?.groupOptions?.calculateNotFound) {
109
- values.push(notFound);
110
- }
111
- return values;
112
- };
113
- const getNumberAggregation = (attribute, data) => {
114
- // let sum = new Decimal(0);
115
- let sum = 0;
116
- let count = 0;
117
- for (const item of data.values()) {
118
- if (!item)
119
- continue;
120
- const value = item[attribute];
121
- if (Array.isArray(value)) {
122
- for (const val of value) {
123
- if (typeof val === 'number') {
124
- // sum = sum.add(val);
125
- sum = add(sum, val, getScalingFactor([sum, val]));
126
- count++;
127
- }
128
- }
129
- }
130
- else if (typeof value === 'number') {
131
- // sum = sum.add(value);
132
- sum = add(sum, value, getScalingFactor([sum, value]));
133
- count++;
134
- }
135
- }
136
- if (count === 0) {
137
- return undefined;
138
- }
139
- // const average = sum.dividedBy(count).toNumber();
140
- const average = divide(sum, count, getScalingFactor([sum, count]));
141
- const agg = {
142
- average,
143
- count: data.size,
144
- sum: sum,
145
- };
146
- return agg;
147
- };
148
- export const getDistinct = (options, data, indexMap) => {
149
- const values = [];
150
- for (const [attributeValue, itemKeys] of indexMap) {
151
- if (options.excludeUndefineds && typeof attributeValue === 'undefined') {
152
- continue;
153
- }
154
- if (itemKeys.find((key) => data.has(key))) {
155
- const value = {
156
- value: attributeValue,
157
- count: itemKeys.length,
158
- };
159
- if (!options.distinctOptions?.skipKeys) {
160
- value.keys = itemKeys;
161
- }
162
- values.push(value);
163
- if (options.distinctOptions?.limit && values.length >= options.distinctOptions.limit) {
164
- break;
165
- }
166
- }
167
- }
168
- return values;
169
- };
170
- //# sourceMappingURL=getAggregation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAggregation.js","sourceRoot":"","sources":["../../src/getAggregation.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- import { DcuplQueryBuilder } from './query-builder';
2
- import { cloneDeep } from 'lodash-es';
3
- const queryBuilder = new DcuplQueryBuilder();
4
- export function getFacets(modelData, remoteModelData, options, query, attribute, modelIndexMap, queryManager) {
5
- const filterItemEntries = [];
6
- const queryWithoutCurrentFilter = queryBuilder.removeQuery({ groupKey: attribute }, cloneDeep(query));
7
- const currentFilteredData = queryManager.queryData(modelData, queryWithoutCurrentFilter, false, modelIndexMap);
8
- const remoteModelDataKeys = remoteModelData ? [...remoteModelData?.keys()] : [];
9
- const validFacetKeys = new Set(remoteModelDataKeys);
10
- const indexMap = modelIndexMap.get(attribute);
11
- if (!options.excludeUnresolved) {
12
- for (const key of indexMap.keys()) {
13
- validFacetKeys.add(key);
14
- }
15
- }
16
- if (options.excludeUndefineds) {
17
- validFacetKeys.delete(undefined);
18
- }
19
- else {
20
- validFacetKeys.add(undefined);
21
- }
22
- for (const validFacetKey of validFacetKeys.values()) {
23
- const result = new Map();
24
- const indexedValueKeys = indexMap.get(validFacetKey) || [];
25
- for (const key of indexedValueKeys) {
26
- const value = currentFilteredData.get(key);
27
- if (value) {
28
- result.set(key, value);
29
- if (!options?.calculateFacets) {
30
- break;
31
- }
32
- }
33
- }
34
- const facetEntry = {
35
- key: String(validFacetKey),
36
- value: validFacetKey,
37
- selected: isFilterItemEntrySelected(attribute, validFacetKey, query),
38
- enabled: result.size > 0,
39
- size: result.size,
40
- entry: remoteModelData.get(validFacetKey),
41
- resultKeys: Array.from(result.keys()),
42
- };
43
- if (options?.excludeZeros && facetEntry.size === 0) {
44
- continue;
45
- }
46
- if (options?.count && filterItemEntries.length === options?.count) {
47
- return filterItemEntries;
48
- }
49
- filterItemEntries.push(facetEntry);
50
- }
51
- return filterItemEntries;
52
- }
53
- const isFilterItemEntrySelected = (groupKey, facetKey, query) => {
54
- const idx = query.queries.findIndex((query) => queryBuilder.isQueryGroup(query) && query.groupKey === groupKey);
55
- if (idx > -1) {
56
- const queryGroup = query.queries[idx];
57
- return !!queryGroup.queries.find((query) => {
58
- if (queryBuilder.isQuery(query)) {
59
- const key = query.value?.key || query.value;
60
- return query.attribute === groupKey && key === facetKey;
61
- }
62
- return false;
63
- });
64
- }
65
- return false;
66
- };
67
- //# sourceMappingURL=getFacets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFacets.js","sourceRoot":"","sources":["../../src/getFacets.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- export const getFilterEntryId = (filterItemId, value = '') => {
2
- return `${filterItemId}#${value}`;
3
- };
4
- export const getNumberConstraintUid = (options) => {
5
- const value = `${options.gt}_${options.gte}_${options.lt}_${options.lte}_${options.eq}_${options.ne}`;
6
- return value;
7
- };
8
- export const getDateConstraintUid = (options) => {
9
- const value = `${options.gt}_${options.gte}_${options.lt}_${options.lte}_${options.eq}_${options.ne}`;
10
- return value;
11
- };
12
- export const uniqBy = (arr, predicate) => {
13
- const cb = typeof predicate === 'function' ? predicate : (o) => o[predicate];
14
- return [
15
- ...arr
16
- .reduce((map, item) => {
17
- const key = item === null || item === undefined ? item : cb(item);
18
- map.has(key) || map.set(key, item);
19
- return map;
20
- }, new Map())
21
- .values(),
22
- ];
23
- };
24
- export const groupBy = (arr, criteria) => {
25
- return arr.reduce(function (obj, item) {
26
- // Check if the criteria is a function to run on the item or a property of it
27
- const key = typeof criteria === 'function' ? criteria(item) : item[criteria];
28
- // If the key doesn't exist yet, create it
29
- if (!obj.hasOwnProperty(key)) {
30
- obj[key] = [];
31
- }
32
- // Push the value to the object
33
- obj[key].push(item);
34
- // Return the object to the next item in the loop
35
- return obj;
36
- }, {});
37
- };
38
- export function generateKey(length = 10) {
39
- let text = '';
40
- const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
41
- for (let i = 0; i < length; i++)
42
- text += possible.charAt(Math.floor(Math.random() * possible.length));
43
- return text;
44
- }
45
- export const removeTrailingSlash = (str) => {
46
- return str.replace(/\/+$/, '');
47
- };
48
- export const escapeRegExp = (text) => {
49
- if (typeof text !== 'string')
50
- return '';
51
- return text.replace(/[[\]{}()*+?.,\\^$|#]/g, '\\$&');
52
- /**
53
- * original regex
54
- * remove \s -
55
- */
56
- // return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
57
- };
58
- export const unescapeRegExp = (escapedText) => {
59
- if (typeof escapedText !== 'string')
60
- return '';
61
- return escapedText.replace(/\\([[\]{}()*+?.,\\^$|#])/g, '$1');
62
- };
63
- export const hasMinimumVersion = (version, minVersion) => {
64
- try {
65
- return compareVersions(version, minVersion) >= 0;
66
- }
67
- catch (err) {
68
- return false;
69
- }
70
- };
71
- /**
72
- * Compares two semantic version strings.
73
- * @param v1 - First version string (e.g., "1.10.2").
74
- * @param v2 - Second version string (e.g., "1.9.0").
75
- * @returns A number: -1 if v1 < v2, 1 if v1 > v2, 0 if equal.
76
- * @throws Error if the input is not a valid semantic version.
77
- */
78
- export const compareVersions = (v1, v2) => {
79
- if (!isValidVersion(v1) || !isValidVersion(v2)) {
80
- throw new Error(`Invalid version format: v1="${v1}", v2="${v2}". Expected format: "x.y.z"`);
81
- }
82
- const v1Parts = v1.split('.').map(Number);
83
- const v2Parts = v2.split('.').map(Number);
84
- for (let i = 0; i < 3; i++) {
85
- const num1 = v1Parts[i] || 0; // Default to 0 if undefined (e.g., "1.2" treated as "1.2.0")
86
- const num2 = v2Parts[i] || 0;
87
- if (num1 > num2)
88
- return 1;
89
- if (num1 < num2)
90
- return -1;
91
- }
92
- return 0;
93
- };
94
- /**
95
- * Validates if a string follows semantic versioning (x.y.z).
96
- * @param version - Version string to validate.
97
- * @returns True if valid, otherwise false.
98
- */
99
- export const isValidVersion = (version) => {
100
- return /^\d+(\.\d+){0,2}$/.test(version);
101
- };
102
- //# sourceMappingURL=helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helper.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAoB,EAAE,KAAK,GAAG,EAAE,EAAU,EAAE;IAC3E,OAAO,GAAG,YAAY,IAAI,KAAK,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA4B,EAAU,EAAE;IAC7E,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IACtG,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAA0B,EAAU,EAAE;IACzE,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IACtG,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAU,EAAE,SAAiB,EAAS,EAAE;IAC7D,MAAM,EAAE,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAM,EAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEvF,OAAO;QACL,GAAG,GAAG;aACH,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAElE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEnC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;aACZ,MAAM,EAAE;KACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,QAAa,EAAO,EAAE;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,IAAI;QACnC,6EAA6E;QAC7E,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7E,0CAA0C;QAC1C,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,+BAA+B;QAC/B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,iDAAiD;QACjD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,MAAM,GAAG,EAAE;IACrC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,gEAAgE,CAAC;IAElF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE;IACzD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE;IACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAExC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACrD;;;OAGG;IACH,2DAA2D;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAU,EAAE;IAC5D,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE/C,OAAO,WAAW,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,UAAkB,EAAW,EAAE;IAChF,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAU,EAAU,EAAE;IAChE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,UAAU,EAAE,6BAA6B,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6DAA6D;QAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAW,EAAE;IACzD,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC"}
@@ -1,97 +0,0 @@
1
- import { generateObjectHash } from './object-hash';
2
- export class IndicesController {
3
- indexMap = new Map();
4
- // Possible performance gain*
5
- dataMap = new Map();
6
- constructor() { }
7
- reset(attributeKey) {
8
- if (attributeKey) {
9
- this.indexMap.delete(attributeKey);
10
- this.dataMap.delete(attributeKey);
11
- }
12
- else {
13
- this.indexMap.clear();
14
- this.dataMap.clear();
15
- }
16
- }
17
- fillDataMap(attributeKey, attributeValue) {
18
- let valueMap = this.dataMap.get(attributeKey);
19
- if (!valueMap) {
20
- valueMap = new Map();
21
- this.dataMap.set(attributeKey, valueMap);
22
- }
23
- for (const value of attributeValue) {
24
- let keyAsString;
25
- if (typeof value === 'object' && value && value.key) {
26
- keyAsString = value.key;
27
- }
28
- else if (Array.isArray(value)) {
29
- for (const item of value) {
30
- this.fillDataMap(attributeKey, [item]);
31
- }
32
- return;
33
- }
34
- else {
35
- keyAsString = value;
36
- }
37
- let listItem = valueMap.get(keyAsString);
38
- if (!listItem) {
39
- listItem = { key: keyAsString };
40
- this.dataMap.get(attributeKey)?.set(keyAsString, listItem);
41
- }
42
- }
43
- }
44
- fillInverseIndex(attributeKey, originKey, foreignKeys) {
45
- if (!attributeKey || !originKey || !foreignKeys || !Array.isArray(foreignKeys)) {
46
- return;
47
- }
48
- const valueMap = this.indexMap.get(attributeKey) || new Map();
49
- for (const value of foreignKeys) {
50
- let keyAsString;
51
- if (typeof value === 'object' && value && value.key) {
52
- keyAsString = value.key;
53
- }
54
- else if (Array.isArray(value)) {
55
- // keyAsString = JSON.stringify(value);
56
- for (const item of value) {
57
- this.fillInverseIndex(attributeKey, originKey, [item]);
58
- }
59
- return;
60
- }
61
- else {
62
- keyAsString = value;
63
- }
64
- const valueArray = valueMap.get(keyAsString) || [];
65
- valueArray.push(originKey);
66
- valueMap.set(keyAsString, valueArray);
67
- }
68
- this.indexMap.set(attributeKey, valueMap);
69
- }
70
- getIndex(attributeKey, context) {
71
- const indexName = this.getIndexName(attributeKey, context);
72
- return this.indexMap.get(indexName);
73
- }
74
- getData(attributeKey, context) {
75
- const indexName = this.getIndexName(attributeKey, context);
76
- return this.dataMap.get(indexName);
77
- }
78
- getOrCreateIndex(attributeKey, relevantData, context) {
79
- const indexName = this.getIndexName(attributeKey, context);
80
- let index = this.getIndex(indexName);
81
- if (!index) {
82
- this.reset(indexName);
83
- this.indexMap.set(indexName, new Map());
84
- for (const entry of relevantData.values()) {
85
- const attributeValue = entry[attributeKey];
86
- this.fillInverseIndex(indexName, entry.key, [attributeValue]);
87
- this.fillDataMap(indexName, [attributeValue]);
88
- }
89
- index = this.getIndex(indexName) || new Map();
90
- }
91
- return index;
92
- }
93
- getIndexName(attributeKey, context) {
94
- return context ? attributeKey + '_' + generateObjectHash(context) : attributeKey;
95
- }
96
- }
97
- //# sourceMappingURL=indices.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indices.controller.js","sourceRoot":"","sources":["../../src/indices.controller.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export function generateObjectHash(input) {
2
- const stringifiedInput = fastStringify(input);
3
- return simpleHash(stringifiedInput);
4
- }
5
- function fastStringify(input) {
6
- if (typeof input !== 'object' || input === null) {
7
- return String(input);
8
- }
9
- if (Array.isArray(input)) {
10
- return '[' + input.map(fastStringify).join(',') + ']';
11
- }
12
- const keys = Object.keys(input).sort();
13
- let result = '{';
14
- for (let i = 0; i < keys.length; i++) {
15
- const key = keys[i];
16
- result += key + ':' + fastStringify(input[key]);
17
- if (i < keys.length - 1) {
18
- result += ',';
19
- }
20
- }
21
- result += '}';
22
- return result;
23
- }
24
- function simpleHash(str) {
25
- let hash = 0;
26
- for (let i = 0; i < str.length; i++) {
27
- const char = str.charCodeAt(i);
28
- hash = (hash << 5) - hash + char;
29
- hash |= 0; // Convert to 32bit integer
30
- }
31
- return hash.toString(16);
32
- }
33
- //# sourceMappingURL=object-hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-hash.js","sourceRoot":"","sources":["../../src/object-hash.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,KAAU;IAC3C,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,KAAU;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACxD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,MAAM,GAAG,GAAG,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,CAAC;IACd,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,IAAI,CAAC,CAAC,CAAC,2BAA2B;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,33 +0,0 @@
1
- export const perf = {
2
- now: () => {
3
- if (typeof performance !== 'undefined' && performance.now) {
4
- return performance.now();
5
- }
6
- else {
7
- return new Date().getTime();
8
- }
9
- },
10
- mark: (name) => {
11
- if (typeof performance !== 'undefined' && performance.mark) {
12
- performance.mark(name);
13
- }
14
- },
15
- measure: (name, start, end) => {
16
- if (typeof performance !== 'undefined' && performance.measure) {
17
- performance.measure(name, start, end);
18
- }
19
- },
20
- getEntriesByName(url) {
21
- if (typeof performance !== 'undefined' && performance.getEntriesByName) {
22
- return performance.getEntriesByName(url);
23
- }
24
- return undefined;
25
- },
26
- getEntriesByType(type) {
27
- if (typeof performance !== 'undefined' && performance.getEntriesByType) {
28
- return performance.getEntriesByType(type);
29
- }
30
- return undefined;
31
- },
32
- };
33
- //# sourceMappingURL=performance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/performance.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,GAAG,EAAE,GAAW,EAAE;QAChB,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1D,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,IAAY,EAAQ,EAAE;QAC3B,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW,EAAQ,EAAE;QAC1D,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YAC9D,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,GAAW;QAC1B,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACvE,OAAO,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,gBAAgB,CAAC,IAAY;QAC3B,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACvE,OAAO,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC"}