@c8y/client 1022.21.3 → 1022.27.0
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 +16 -2
- package/lib/cjs/src/core/QueriesUtil.d.ts.map +1 -1
- package/lib/cjs/src/core/QueriesUtil.js +23 -9
- package/lib/cjs/src/core/QueriesUtil.js.map +1 -1
- package/lib/esm2015/src/core/QueriesUtil.d.ts +16 -2
- package/lib/esm2015/src/core/QueriesUtil.d.ts.map +1 -1
- package/lib/esm2015/src/core/QueriesUtil.js +23 -9
- package/lib/esm2015/src/core/QueriesUtil.js.map +1 -1
- package/lib/src/core/QueriesUtil.d.ts +16 -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
|
|
@@ -92,6 +94,18 @@ export declare class QueriesUtil {
|
|
|
92
94
|
protected quoteString(s: any): any;
|
|
93
95
|
protected skipEmptyObjects(objs: any[]): any[];
|
|
94
96
|
protected isEmptyObject(obj: object): boolean;
|
|
95
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Escapes a string to be used in OData query.
|
|
99
|
+
*
|
|
100
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
101
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
102
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
103
|
+
*
|
|
104
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
105
|
+
*
|
|
106
|
+
* @param s String to be escaped.
|
|
107
|
+
* @returns Escaped string.
|
|
108
|
+
*/
|
|
109
|
+
private escapeString;
|
|
96
110
|
}
|
|
97
111
|
//# 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,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"}
|
|
@@ -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
|
|
@@ -226,7 +230,7 @@ class QueriesUtil {
|
|
|
226
230
|
return stmts.length > 1 ? `(${stmts.join(`) ${type} (`)})` : stmts[0];
|
|
227
231
|
}
|
|
228
232
|
quoteString(s) {
|
|
229
|
-
return typeof s === 'string' ? `'${this.
|
|
233
|
+
return typeof s === 'string' ? `'${this.escapeString(s)}'` : s;
|
|
230
234
|
}
|
|
231
235
|
skipEmptyObjects(objs) {
|
|
232
236
|
return objs.filter(obj => !this.isEmptyObject(obj));
|
|
@@ -234,13 +238,23 @@ class QueriesUtil {
|
|
|
234
238
|
isEmptyObject(obj) {
|
|
235
239
|
return Object.keys(obj).length === 0;
|
|
236
240
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
/**
|
|
242
|
+
* Escapes a string to be used in OData query.
|
|
243
|
+
*
|
|
244
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
245
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
246
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
247
|
+
*
|
|
248
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
249
|
+
*
|
|
250
|
+
* @param s String to be escaped.
|
|
251
|
+
* @returns Escaped string.
|
|
252
|
+
*/
|
|
253
|
+
escapeString(s) {
|
|
254
|
+
return s
|
|
255
|
+
.replace(/'/g, "''")
|
|
256
|
+
.replace(/\\/g, '\\\\')
|
|
257
|
+
.replace(/(\[|\{|\(|\]|\}|\))/g, '\\$1');
|
|
244
258
|
}
|
|
245
259
|
}
|
|
246
260
|
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,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,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,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,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,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,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/C,2CAA2C;gBAC3C,OAAO,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;SACF,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
|
|
@@ -92,6 +94,18 @@ export declare class QueriesUtil {
|
|
|
92
94
|
protected quoteString(s: any): any;
|
|
93
95
|
protected skipEmptyObjects(objs: any[]): any[];
|
|
94
96
|
protected isEmptyObject(obj: object): boolean;
|
|
95
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Escapes a string to be used in OData query.
|
|
99
|
+
*
|
|
100
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
101
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
102
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
103
|
+
*
|
|
104
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
105
|
+
*
|
|
106
|
+
* @param s String to be escaped.
|
|
107
|
+
* @returns Escaped string.
|
|
108
|
+
*/
|
|
109
|
+
private escapeString;
|
|
96
110
|
}
|
|
97
111
|
//# 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,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"}
|
|
@@ -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
|
|
@@ -224,7 +228,7 @@ export class QueriesUtil {
|
|
|
224
228
|
return stmts.length > 1 ? `(${stmts.join(`) ${type} (`)})` : stmts[0];
|
|
225
229
|
}
|
|
226
230
|
quoteString(s) {
|
|
227
|
-
return typeof s === 'string' ? `'${this.
|
|
231
|
+
return typeof s === 'string' ? `'${this.escapeString(s)}'` : s;
|
|
228
232
|
}
|
|
229
233
|
skipEmptyObjects(objs) {
|
|
230
234
|
return objs.filter(obj => !this.isEmptyObject(obj));
|
|
@@ -232,13 +236,23 @@ export class QueriesUtil {
|
|
|
232
236
|
isEmptyObject(obj) {
|
|
233
237
|
return Object.keys(obj).length === 0;
|
|
234
238
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Escapes a string to be used in OData query.
|
|
241
|
+
*
|
|
242
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
243
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
244
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
245
|
+
*
|
|
246
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
247
|
+
*
|
|
248
|
+
* @param s String to be escaped.
|
|
249
|
+
* @returns Escaped string.
|
|
250
|
+
*/
|
|
251
|
+
escapeString(s) {
|
|
252
|
+
return s
|
|
253
|
+
.replace(/'/g, "''")
|
|
254
|
+
.replace(/\\/g, '\\\\')
|
|
255
|
+
.replace(/(\[|\{|\(|\]|\}|\))/g, '\\$1');
|
|
242
256
|
}
|
|
243
257
|
}
|
|
244
258
|
//# 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,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,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,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBAC5B,OAAO,GAAG,UAAU,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,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,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;
|
|
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
|
|
@@ -92,6 +94,18 @@ export declare class QueriesUtil {
|
|
|
92
94
|
protected quoteString(s: any): any;
|
|
93
95
|
protected skipEmptyObjects(objs: any[]): any[];
|
|
94
96
|
protected isEmptyObject(obj: object): boolean;
|
|
95
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Escapes a string to be used in OData query.
|
|
99
|
+
*
|
|
100
|
+
* - OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
|
|
101
|
+
* - OData uses parentheses for grouping expressions and functions. We need to escape any parentheses in the string.
|
|
102
|
+
* - OData uses backslash as an escape character. We need to escape any backslashes in the string.
|
|
103
|
+
*
|
|
104
|
+
* Spec: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
|
|
105
|
+
*
|
|
106
|
+
* @param s String to be escaped.
|
|
107
|
+
* @returns Escaped string.
|
|
108
|
+
*/
|
|
109
|
+
private escapeString;
|
|
96
110
|
}
|
|
97
111
|
//# 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,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