@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.
@@ -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 haing at least one of the fragments defines, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
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
- private escapeSingleQuote;
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;;;;;;;;;;;;;8CA6CmB,MAAM;MAM5C;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;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;IAMnC,OAAO,CAAC,iBAAiB;CAM1B"}
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 haing at least one of the fragments defines, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
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.escapeSingleQuote(s)}'` : s;
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
- // OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
238
- // http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
239
- escapeSingleQuote(s) {
240
- if (typeof s !== 'string') {
241
- return s;
242
- }
243
- return s.replace(/\'/g, "''");
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":"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"}
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 haing at least one of the fragments defines, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
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
- private escapeSingleQuote;
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;;;;;;;;;;;;;8CA6CmB,MAAM;MAM5C;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;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;IAMnC,OAAO,CAAC,iBAAiB;CAM1B"}
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 haing at least one of the fragments defines, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
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.escapeSingleQuote(s)}'` : s;
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
- // OData does not support single quotes in the query. We need to replace all single quotes with double quotes.
236
- // http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents
237
- escapeSingleQuote(s) {
238
- if (typeof s !== 'string') {
239
- return s;
240
- }
241
- return s.replace(/\'/g, "''");
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":"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"}
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 haing at least one of the fragments defines, e.g. `{__has: ['c8y_IsDevice', 'c8y_Dashboard']}`.
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
- private escapeSingleQuote;
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;;;;;;;;;;;;;8CA6CmB,MAAM;MAM5C;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;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;IAMnC,OAAO,CAAC,iBAAiB;CAM1B"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/client",
3
- "version": "1022.21.3",
3
+ "version": "1022.27.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "Client application programming interface to access the Cumulocity IoT-Platform REST services.",