@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.
@@ -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
@@ -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
- private escapeSingleQuote;
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;;;;;;;;;;;;;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,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.quoteString(operand)}`;
23
+ return `${contextKey} gt ${this.useAsFloat(operand)}`;
24
24
  },
25
25
  __ge: (operand, contextKey) => {
26
- return `${contextKey} ge ${this.quoteString(operand)}`;
26
+ return `${contextKey} ge ${this.useAsFloat(operand)}`;
27
27
  },
28
28
  __lt: (operand, contextKey) => {
29
- return `${contextKey} lt ${this.quoteString(operand)}`;
29
+ return `${contextKey} lt ${this.useAsFloat(operand)}`;
30
30
  },
31
31
  __le: (operand, contextKey) => {
32
- return `${contextKey} le ${this.quoteString(operand)}`;
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 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
@@ -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.escapeSingleQuote(s)}'` : s;
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
- // 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, "''");
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":"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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
@@ -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
- private escapeSingleQuote;
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;;;;;;;;;;;;;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,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.quoteString(operand)}`;
20
+ return `${contextKey} gt ${this.useAsFloat(operand)}`;
21
21
  },
22
22
  __ge: (operand, contextKey) => {
23
- return `${contextKey} ge ${this.quoteString(operand)}`;
23
+ return `${contextKey} ge ${this.useAsFloat(operand)}`;
24
24
  },
25
25
  __lt: (operand, contextKey) => {
26
- return `${contextKey} lt ${this.quoteString(operand)}`;
26
+ return `${contextKey} lt ${this.useAsFloat(operand)}`;
27
27
  },
28
28
  __le: (operand, contextKey) => {
29
- return `${contextKey} le ${this.quoteString(operand)}`;
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 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
@@ -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.escapeSingleQuote(s)}'` : s;
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
- // 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, "''");
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":"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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
@@ -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
- private escapeSingleQuote;
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;;;;;;;;;;;;;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,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/client",
3
- "version": "1022.26.1",
3
+ "version": "1022.28.2",
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.",