@c8y/client 1022.26.1 → 1022.28.2
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/lib/cjs/src/core/QueriesUtil.d.ts +17 -2
- package/lib/cjs/src/core/QueriesUtil.d.ts.map +1 -1
- package/lib/cjs/src/core/QueriesUtil.js +34 -13
- package/lib/cjs/src/core/QueriesUtil.js.map +1 -1
- package/lib/esm2015/src/core/QueriesUtil.d.ts +17 -2
- package/lib/esm2015/src/core/QueriesUtil.d.ts.map +1 -1
- package/lib/esm2015/src/core/QueriesUtil.js +34 -13
- package/lib/esm2015/src/core/QueriesUtil.js.map +1 -1
- package/lib/src/core/QueriesUtil.d.ts +17 -2
- package/lib/src/core/QueriesUtil.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ export declare class QueriesUtil {
|
|
|
11
11
|
__in: (operand: any, contextKey: any) => any;
|
|
12
12
|
__bygroupid: (operand: any) => string;
|
|
13
13
|
__has: (operand: any) => string;
|
|
14
|
+
__isinhierarchyof: (operand: any) => string;
|
|
14
15
|
__hasany: (operand: any) => string;
|
|
15
16
|
__useFilterQueryString: (queryString: string) => string;
|
|
16
17
|
};
|
|
@@ -27,7 +28,8 @@ export declare class QueriesUtil {
|
|
|
27
28
|
* - **__not** - Negates condition, e.g. `{__not: {'status': 'AVAILABLE'}}`.
|
|
28
29
|
* - **__bygroupid** - True if filtered managed object is assigned to given group, e.g. `{__bygroupid: 10300}`.
|
|
29
30
|
* - **__has** - Specified fragment must have a value defined, e.g. `{__has: 'c8y_IsDevice'}`.
|
|
30
|
-
* - **__hasany** - Matches objects
|
|
31
|
+
* - **__hasany** - Matches objects having at least one of the fragments defined, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
|
|
32
|
+
* - **__isinhierarchyof** - Matches objects that are in hierarchy of given managed object, e.g. `{__isinhierarchyof: '12345'}`.
|
|
31
33
|
* - **__useFilterQueryString** - Gets rid of the `$filter=()… $orderby=…` parts of a query and keeps only what's between the most
|
|
32
34
|
* exterior parentheses of the $filter.
|
|
33
35
|
* EXAMPLE: takes a query of the form
|
|
@@ -89,9 +91,22 @@ export declare class QueriesUtil {
|
|
|
89
91
|
addOrderbys(query: any, orderbys: any, how: 'prepend' | 'append'): any;
|
|
90
92
|
extractAndMergeOrderBys(queries: string[]): string;
|
|
91
93
|
protected glue(stmts: any[], type: string): any;
|
|
94
|
+
protected useAsFloat(operand: string | number): string;
|
|
92
95
|
protected quoteString(s: any): any;
|
|
93
96
|
protected skipEmptyObjects(objs: any[]): any[];
|
|
94
97
|
protected isEmptyObject(obj: object): boolean;
|
|
95
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Escapes a string to be used in OData query.
|
|
100
|
+
*
|
|
101
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
102
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
103
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
104
|
+
*
|
|
105
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
106
|
+
*
|
|
107
|
+
* @param s String to be escaped.
|
|
108
|
+
* @returns Escaped string.
|
|
109
|
+
*/
|
|
110
|
+
private escapeString;
|
|
96
111
|
}
|
|
97
112
|
//# sourceMappingURL=QueriesUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueriesUtil.d.ts","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,SAAS,CAAC,WAAW
|
|
1
|
+
{"version":3,"file":"QueriesUtil.d.ts","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,SAAS,CAAC,WAAW;;;;;;;;;;;;;;8CAgDmB,MAAM;MAM5C;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACH,UAAU,CAAC,KAAK,KAAA,GAAG,MAAM;IAazB,gBAAgB,CAAC,WAAW,KAAA,EAAE,SAAS,CAAC,KAAA,EAAE,SAAS,CAAC,KAAA,GAAG,MAAM;IAiC7D,iBAAiB,CAAC,aAAa,KAAA,GAAG,MAAM;IAcxC,YAAY,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAI1B,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAIzB,SAAS,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAU/C,eAAe,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAI/B,cAAc,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAI9B,WAAW,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ;IActD,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAclD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM;IAIzC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQ7C,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG;IAI5B,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE;IAItC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAInC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -20,16 +20,16 @@ class QueriesUtil {
|
|
|
20
20
|
return `${contextKey} eq ${this.quoteString(operand)}`;
|
|
21
21
|
},
|
|
22
22
|
__gt: (operand, contextKey) => {
|
|
23
|
-
return `${contextKey} gt ${this.
|
|
23
|
+
return `${contextKey} gt ${this.useAsFloat(operand)}`;
|
|
24
24
|
},
|
|
25
25
|
__ge: (operand, contextKey) => {
|
|
26
|
-
return `${contextKey} ge ${this.
|
|
26
|
+
return `${contextKey} ge ${this.useAsFloat(operand)}`;
|
|
27
27
|
},
|
|
28
28
|
__lt: (operand, contextKey) => {
|
|
29
|
-
return `${contextKey} lt ${this.
|
|
29
|
+
return `${contextKey} lt ${this.useAsFloat(operand)}`;
|
|
30
30
|
},
|
|
31
31
|
__le: (operand, contextKey) => {
|
|
32
|
-
return `${contextKey} le ${this.
|
|
32
|
+
return `${contextKey} le ${this.useAsFloat(operand)}`;
|
|
33
33
|
},
|
|
34
34
|
__in: (operand, contextKey) => {
|
|
35
35
|
const stmts = operand
|
|
@@ -45,6 +45,9 @@ class QueriesUtil {
|
|
|
45
45
|
__has: operand => {
|
|
46
46
|
return `has(${operand})`;
|
|
47
47
|
},
|
|
48
|
+
__isinhierarchyof: operand => {
|
|
49
|
+
return `isinhierarchyof(${operand})`;
|
|
50
|
+
},
|
|
48
51
|
__hasany: operand => {
|
|
49
52
|
return `hasany(${operand})`;
|
|
50
53
|
},
|
|
@@ -69,7 +72,8 @@ class QueriesUtil {
|
|
|
69
72
|
* - **__not** - Negates condition, e.g. `{__not: {'status': 'AVAILABLE'}}`.
|
|
70
73
|
* - **__bygroupid** - True if filtered managed object is assigned to given group, e.g. `{__bygroupid: 10300}`.
|
|
71
74
|
* - **__has** - Specified fragment must have a value defined, e.g. `{__has: 'c8y_IsDevice'}`.
|
|
72
|
-
* - **__hasany** - Matches objects
|
|
75
|
+
* - **__hasany** - Matches objects having at least one of the fragments defined, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
|
|
76
|
+
* - **__isinhierarchyof** - Matches objects that are in hierarchy of given managed object, e.g. `{__isinhierarchyof: '12345'}`.
|
|
73
77
|
* - **__useFilterQueryString** - Gets rid of the `$filter=()… $orderby=…` parts of a query and keeps only what's between the most
|
|
74
78
|
* exterior parentheses of the $filter.
|
|
75
79
|
* EXAMPLE: takes a query of the form
|
|
@@ -225,8 +229,15 @@ class QueriesUtil {
|
|
|
225
229
|
glue(stmts, type) {
|
|
226
230
|
return stmts.length > 1 ? `(${stmts.join(`) ${type} (`)})` : stmts[0];
|
|
227
231
|
}
|
|
232
|
+
useAsFloat(operand) {
|
|
233
|
+
operand = this.quoteString(operand);
|
|
234
|
+
if (typeof operand === 'number') {
|
|
235
|
+
return `${operand}f`;
|
|
236
|
+
}
|
|
237
|
+
return operand;
|
|
238
|
+
}
|
|
228
239
|
quoteString(s) {
|
|
229
|
-
return typeof s === 'string' ? `'${this.
|
|
240
|
+
return typeof s === 'string' ? `'${this.escapeString(s)}'` : s;
|
|
230
241
|
}
|
|
231
242
|
skipEmptyObjects(objs) {
|
|
232
243
|
return objs.filter(obj => !this.isEmptyObject(obj));
|
|
@@ -234,13 +245,23 @@ class QueriesUtil {
|
|
|
234
245
|
isEmptyObject(obj) {
|
|
235
246
|
return Object.keys(obj).length === 0;
|
|
236
247
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Escapes a string to be used in OData query.
|
|
250
|
+
*
|
|
251
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
252
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
253
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
254
|
+
*
|
|
255
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
256
|
+
*
|
|
257
|
+
* @param s String to be escaped.
|
|
258
|
+
* @returns Escaped string.
|
|
259
|
+
*/
|
|
260
|
+
escapeString(s) {
|
|
261
|
+
return s
|
|
262
|
+
.replace(/'/g, "''")
|
|
263
|
+
.replace(/\\/g, '\\\\')
|
|
264
|
+
.replace(/(\[|\{|\(|\]|\}|\))/g, '\\$1');
|
|
244
265
|
}
|
|
245
266
|
}
|
|
246
267
|
exports.QueriesUtil = QueriesUtil;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueriesUtil.js","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IAAxB;QACY,gBAAW,GAAG;YACtB,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;YACxD,CAAC;YACD,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"QueriesUtil.js","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export declare class QueriesUtil {
|
|
|
11
11
|
__in: (operand: any, contextKey: any) => any;
|
|
12
12
|
__bygroupid: (operand: any) => string;
|
|
13
13
|
__has: (operand: any) => string;
|
|
14
|
+
__isinhierarchyof: (operand: any) => string;
|
|
14
15
|
__hasany: (operand: any) => string;
|
|
15
16
|
__useFilterQueryString: (queryString: string) => string;
|
|
16
17
|
};
|
|
@@ -27,7 +28,8 @@ export declare class QueriesUtil {
|
|
|
27
28
|
* - **__not** - Negates condition, e.g. `{__not: {'status': 'AVAILABLE'}}`.
|
|
28
29
|
* - **__bygroupid** - True if filtered managed object is assigned to given group, e.g. `{__bygroupid: 10300}`.
|
|
29
30
|
* - **__has** - Specified fragment must have a value defined, e.g. `{__has: 'c8y_IsDevice'}`.
|
|
30
|
-
* - **__hasany** - Matches objects
|
|
31
|
+
* - **__hasany** - Matches objects having at least one of the fragments defined, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
|
|
32
|
+
* - **__isinhierarchyof** - Matches objects that are in hierarchy of given managed object, e.g. `{__isinhierarchyof: '12345'}`.
|
|
31
33
|
* - **__useFilterQueryString** - Gets rid of the `$filter=()… $orderby=…` parts of a query and keeps only what's between the most
|
|
32
34
|
* exterior parentheses of the $filter.
|
|
33
35
|
* EXAMPLE: takes a query of the form
|
|
@@ -89,9 +91,22 @@ export declare class QueriesUtil {
|
|
|
89
91
|
addOrderbys(query: any, orderbys: any, how: 'prepend' | 'append'): any;
|
|
90
92
|
extractAndMergeOrderBys(queries: string[]): string;
|
|
91
93
|
protected glue(stmts: any[], type: string): any;
|
|
94
|
+
protected useAsFloat(operand: string | number): string;
|
|
92
95
|
protected quoteString(s: any): any;
|
|
93
96
|
protected skipEmptyObjects(objs: any[]): any[];
|
|
94
97
|
protected isEmptyObject(obj: object): boolean;
|
|
95
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Escapes a string to be used in OData query.
|
|
100
|
+
*
|
|
101
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
102
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
103
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
104
|
+
*
|
|
105
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
106
|
+
*
|
|
107
|
+
* @param s String to be escaped.
|
|
108
|
+
* @returns Escaped string.
|
|
109
|
+
*/
|
|
110
|
+
private escapeString;
|
|
96
111
|
}
|
|
97
112
|
//# sourceMappingURL=QueriesUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueriesUtil.d.ts","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,SAAS,CAAC,WAAW
|
|
1
|
+
{"version":3,"file":"QueriesUtil.d.ts","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,SAAS,CAAC,WAAW;;;;;;;;;;;;;;8CAgDmB,MAAM;MAM5C;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACH,UAAU,CAAC,KAAK,KAAA,GAAG,MAAM;IAazB,gBAAgB,CAAC,WAAW,KAAA,EAAE,SAAS,CAAC,KAAA,EAAE,SAAS,CAAC,KAAA,GAAG,MAAM;IAiC7D,iBAAiB,CAAC,aAAa,KAAA,GAAG,MAAM;IAcxC,YAAY,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAI1B,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAIzB,SAAS,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAU/C,eAAe,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAI/B,cAAc,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAI9B,WAAW,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ;IActD,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAclD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM;IAIzC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQ7C,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG;IAI5B,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE;IAItC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAInC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -17,16 +17,16 @@ export class QueriesUtil {
|
|
|
17
17
|
return `${contextKey} eq ${this.quoteString(operand)}`;
|
|
18
18
|
},
|
|
19
19
|
__gt: (operand, contextKey) => {
|
|
20
|
-
return `${contextKey} gt ${this.
|
|
20
|
+
return `${contextKey} gt ${this.useAsFloat(operand)}`;
|
|
21
21
|
},
|
|
22
22
|
__ge: (operand, contextKey) => {
|
|
23
|
-
return `${contextKey} ge ${this.
|
|
23
|
+
return `${contextKey} ge ${this.useAsFloat(operand)}`;
|
|
24
24
|
},
|
|
25
25
|
__lt: (operand, contextKey) => {
|
|
26
|
-
return `${contextKey} lt ${this.
|
|
26
|
+
return `${contextKey} lt ${this.useAsFloat(operand)}`;
|
|
27
27
|
},
|
|
28
28
|
__le: (operand, contextKey) => {
|
|
29
|
-
return `${contextKey} le ${this.
|
|
29
|
+
return `${contextKey} le ${this.useAsFloat(operand)}`;
|
|
30
30
|
},
|
|
31
31
|
__in: (operand, contextKey) => {
|
|
32
32
|
const stmts = operand
|
|
@@ -42,6 +42,9 @@ export class QueriesUtil {
|
|
|
42
42
|
__has: operand => {
|
|
43
43
|
return `has(${operand})`;
|
|
44
44
|
},
|
|
45
|
+
__isinhierarchyof: operand => {
|
|
46
|
+
return `isinhierarchyof(${operand})`;
|
|
47
|
+
},
|
|
45
48
|
__hasany: operand => {
|
|
46
49
|
return `hasany(${operand})`;
|
|
47
50
|
},
|
|
@@ -67,7 +70,8 @@ export class QueriesUtil {
|
|
|
67
70
|
* - **__not** - Negates condition, e.g. `{__not: {'status': 'AVAILABLE'}}`.
|
|
68
71
|
* - **__bygroupid** - True if filtered managed object is assigned to given group, e.g. `{__bygroupid: 10300}`.
|
|
69
72
|
* - **__has** - Specified fragment must have a value defined, e.g. `{__has: 'c8y_IsDevice'}`.
|
|
70
|
-
* - **__hasany** - Matches objects
|
|
73
|
+
* - **__hasany** - Matches objects having at least one of the fragments defined, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
|
|
74
|
+
* - **__isinhierarchyof** - Matches objects that are in hierarchy of given managed object, e.g. `{__isinhierarchyof: '12345'}`.
|
|
71
75
|
* - **__useFilterQueryString** - Gets rid of the `$filter=()… $orderby=…` parts of a query and keeps only what's between the most
|
|
72
76
|
* exterior parentheses of the $filter.
|
|
73
77
|
* EXAMPLE: takes a query of the form
|
|
@@ -223,8 +227,15 @@ export class QueriesUtil {
|
|
|
223
227
|
glue(stmts, type) {
|
|
224
228
|
return stmts.length > 1 ? `(${stmts.join(`) ${type} (`)})` : stmts[0];
|
|
225
229
|
}
|
|
230
|
+
useAsFloat(operand) {
|
|
231
|
+
operand = this.quoteString(operand);
|
|
232
|
+
if (typeof operand === 'number') {
|
|
233
|
+
return `${operand}f`;
|
|
234
|
+
}
|
|
235
|
+
return operand;
|
|
236
|
+
}
|
|
226
237
|
quoteString(s) {
|
|
227
|
-
return typeof s === 'string' ? `'${this.
|
|
238
|
+
return typeof s === 'string' ? `'${this.escapeString(s)}'` : s;
|
|
228
239
|
}
|
|
229
240
|
skipEmptyObjects(objs) {
|
|
230
241
|
return objs.filter(obj => !this.isEmptyObject(obj));
|
|
@@ -232,13 +243,23 @@ export class QueriesUtil {
|
|
|
232
243
|
isEmptyObject(obj) {
|
|
233
244
|
return Object.keys(obj).length === 0;
|
|
234
245
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
246
|
+
/**
|
|
247
|
+
* Escapes a string to be used in OData query.
|
|
248
|
+
*
|
|
249
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
250
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
251
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
252
|
+
*
|
|
253
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
254
|
+
*
|
|
255
|
+
* @param s String to be escaped.
|
|
256
|
+
* @returns Escaped string.
|
|
257
|
+
*/
|
|
258
|
+
escapeString(s) {
|
|
259
|
+
return s
|
|
260
|
+
.replace(/'/g, "''")
|
|
261
|
+
.replace(/\\/g, '\\\\')
|
|
262
|
+
.replace(/(\[|\{|\(|\]|\}|\))/g, '\\$1');
|
|
242
263
|
}
|
|
243
264
|
}
|
|
244
265
|
//# sourceMappingURL=QueriesUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueriesUtil.js","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAAxB;QACY,gBAAW,GAAG;YACtB,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;YACxD,CAAC;YACD,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"QueriesUtil.js","sourceRoot":"","sources":["../../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAAxB;QACY,gBAAW,GAAG;YACtB,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;YACxD,CAAC;YACD,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,MAAM,KAAK,GAAG,OAAO;qBAClB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClB,GAAG,CAAC,EAAE,CAAC,EAAE;oBACR,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpD,CAAC,CAAC,CAAC;gBACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,WAAW,EAAE,OAAO,CAAC,EAAE;gBACrB,OAAO,aAAa,OAAO,GAAG,CAAC;YACjC,CAAC;YACD,KAAK,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,OAAO,OAAO,GAAG,CAAC;YAC3B,CAAC;YACD,iBAAiB,EAAE,OAAO,CAAC,EAAE;gBAC3B,OAAO,mBAAmB,OAAO,GAAG,CAAC;YACvC,CAAC;YACD,QAAQ,EAAE,OAAO,CAAC,EAAE;gBAClB,OAAO,UAAU,OAAO,GAAG,CAAC;YAC9B,CAAC;YACD,sBAAsB,EAAE,CAAC,WAAmB,EAAE,EAAE;;gBAC9C,wEAAwE;gBACxE,MAAM,KAAK,GAAG,MAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,0CAAG,CAAC,CAAC,CAAC;gBAC/C,2CAA2C;gBAC3C,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC;IA+NJ,CAAC;IA7NC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACH,UAAU,CAAC,KAAK;QACd,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,CAAC,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,WAAW,EAAE,SAAU,EAAE,SAAU;QAClD,MAAM,QAAQ,GAAG,SAAS,IAAI,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,IAAI,KAAK,CAAC;QAEpC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,EAAE,EAAE,CAAC;oBACP,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACb,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACtC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACnD,IAAI,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACb,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9C,IAAI,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACb,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,aAAa;QAC7B,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,MAAM;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,MAAM;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAsB;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;QACnF,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe,CAAC,KAAK,EAAE,QAAQ;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,QAAQ;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAyB;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;QACnF,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;QAC1C,MAAM,WAAW,GACf,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAQ;YACpB,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uBAAuB,CAAC,OAAiB;QACvC,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,IAAG,CAAC,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,OAAO;iBACzB,GAAG,CAAC,KAAK,CAAC,EAAE;gBACX,MAAM,KAAK,GAAG,WAAW,CAAC;gBAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/E,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;iBACnC,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAES,IAAI,CAAC,KAAY,EAAE,IAAY;QACvC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAES,UAAU,CAAC,OAAwB;QAC3C,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,GAAG,OAAO,GAAG,CAAC;QACvB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,WAAW,CAAC,CAAM;QAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAES,gBAAgB,CAAC,IAAW;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,YAAY,CAAC,CAAS;QAC5B,OAAO,CAAC;aACL,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -11,6 +11,7 @@ export declare class QueriesUtil {
|
|
|
11
11
|
__in: (operand: any, contextKey: any) => any;
|
|
12
12
|
__bygroupid: (operand: any) => string;
|
|
13
13
|
__has: (operand: any) => string;
|
|
14
|
+
__isinhierarchyof: (operand: any) => string;
|
|
14
15
|
__hasany: (operand: any) => string;
|
|
15
16
|
__useFilterQueryString: (queryString: string) => string;
|
|
16
17
|
};
|
|
@@ -27,7 +28,8 @@ export declare class QueriesUtil {
|
|
|
27
28
|
* - **__not** - Negates condition, e.g. `{__not: {'status': 'AVAILABLE'}}`.
|
|
28
29
|
* - **__bygroupid** - True if filtered managed object is assigned to given group, e.g. `{__bygroupid: 10300}`.
|
|
29
30
|
* - **__has** - Specified fragment must have a value defined, e.g. `{__has: 'c8y_IsDevice'}`.
|
|
30
|
-
* - **__hasany** - Matches objects
|
|
31
|
+
* - **__hasany** - Matches objects having at least one of the fragments defined, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
|
|
32
|
+
* - **__isinhierarchyof** - Matches objects that are in hierarchy of given managed object, e.g. `{__isinhierarchyof: '12345'}`.
|
|
31
33
|
* - **__useFilterQueryString** - Gets rid of the `$filter=()… $orderby=…` parts of a query and keeps only what's between the most
|
|
32
34
|
* exterior parentheses of the $filter.
|
|
33
35
|
* EXAMPLE: takes a query of the form
|
|
@@ -89,9 +91,22 @@ export declare class QueriesUtil {
|
|
|
89
91
|
addOrderbys(query: any, orderbys: any, how: 'prepend' | 'append'): any;
|
|
90
92
|
extractAndMergeOrderBys(queries: string[]): string;
|
|
91
93
|
protected glue(stmts: any[], type: string): any;
|
|
94
|
+
protected useAsFloat(operand: string | number): string;
|
|
92
95
|
protected quoteString(s: any): any;
|
|
93
96
|
protected skipEmptyObjects(objs: any[]): any[];
|
|
94
97
|
protected isEmptyObject(obj: object): boolean;
|
|
95
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Escapes a string to be used in OData query.
|
|
100
|
+
*
|
|
101
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
102
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
103
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
104
|
+
*
|
|
105
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
106
|
+
*
|
|
107
|
+
* @param s String to be escaped.
|
|
108
|
+
* @returns Escaped string.
|
|
109
|
+
*/
|
|
110
|
+
private escapeString;
|
|
96
111
|
}
|
|
97
112
|
//# sourceMappingURL=QueriesUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueriesUtil.d.ts","sourceRoot":"","sources":["../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,SAAS,CAAC,WAAW
|
|
1
|
+
{"version":3,"file":"QueriesUtil.d.ts","sourceRoot":"","sources":["../../../src/core/QueriesUtil.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,SAAS,CAAC,WAAW;;;;;;;;;;;;;;8CAgDmB,MAAM;MAM5C;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACH,UAAU,CAAC,KAAK,KAAA,GAAG,MAAM;IAazB,gBAAgB,CAAC,WAAW,KAAA,EAAE,SAAS,CAAC,KAAA,EAAE,SAAS,CAAC,KAAA,GAAG,MAAM;IAiC7D,iBAAiB,CAAC,aAAa,KAAA,GAAG,MAAM;IAcxC,YAAY,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAI1B,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAIzB,SAAS,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAU/C,eAAe,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAI/B,cAAc,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAI9B,WAAW,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ;IActD,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAclD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM;IAIzC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQ7C,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG;IAI5B,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE;IAItC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAInC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|
package/package.json
CHANGED