@thingsboard/n8n-nodes-thingsboard 1.0.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.
Files changed (51) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +409 -0
  3. package/dist/credentials/ThingsBoardApi.credentials.d.ts +7 -0
  4. package/dist/credentials/ThingsBoardApi.credentials.js +36 -0
  5. package/dist/credentials/ThingsBoardApi.credentials.js.map +1 -0
  6. package/dist/nodes/thingsboard/ThingsBoard.node.d.ts +5 -0
  7. package/dist/nodes/thingsboard/ThingsBoard.node.js +1748 -0
  8. package/dist/nodes/thingsboard/ThingsBoard.node.js.map +1 -0
  9. package/dist/nodes/thingsboard/ThingsBoard.node.json +36 -0
  10. package/dist/nodes/thingsboard/resources/AlarmResource.d.ts +10 -0
  11. package/dist/nodes/thingsboard/resources/AlarmResource.js +127 -0
  12. package/dist/nodes/thingsboard/resources/AlarmResource.js.map +1 -0
  13. package/dist/nodes/thingsboard/resources/AssetResource.d.ts +12 -0
  14. package/dist/nodes/thingsboard/resources/AssetResource.js +131 -0
  15. package/dist/nodes/thingsboard/resources/AssetResource.js.map +1 -0
  16. package/dist/nodes/thingsboard/resources/CustomerResource.d.ts +11 -0
  17. package/dist/nodes/thingsboard/resources/CustomerResource.js +95 -0
  18. package/dist/nodes/thingsboard/resources/CustomerResource.js.map +1 -0
  19. package/dist/nodes/thingsboard/resources/DashboardResource.d.ts +10 -0
  20. package/dist/nodes/thingsboard/resources/DashboardResource.js +109 -0
  21. package/dist/nodes/thingsboard/resources/DashboardResource.js.map +1 -0
  22. package/dist/nodes/thingsboard/resources/DeviceResource.d.ts +12 -0
  23. package/dist/nodes/thingsboard/resources/DeviceResource.js +137 -0
  24. package/dist/nodes/thingsboard/resources/DeviceResource.js.map +1 -0
  25. package/dist/nodes/thingsboard/resources/EntityGroupResource.d.ts +9 -0
  26. package/dist/nodes/thingsboard/resources/EntityGroupResource.js +71 -0
  27. package/dist/nodes/thingsboard/resources/EntityGroupResource.js.map +1 -0
  28. package/dist/nodes/thingsboard/resources/RelationResource.d.ts +11 -0
  29. package/dist/nodes/thingsboard/resources/RelationResource.js +144 -0
  30. package/dist/nodes/thingsboard/resources/RelationResource.js.map +1 -0
  31. package/dist/nodes/thingsboard/resources/TelemetryResource.d.ts +17 -0
  32. package/dist/nodes/thingsboard/resources/TelemetryResource.js +252 -0
  33. package/dist/nodes/thingsboard/resources/TelemetryResource.js.map +1 -0
  34. package/dist/nodes/thingsboard/thingsboard-black.svg +10 -0
  35. package/dist/nodes/thingsboard/thingsboard-white.svg +10 -0
  36. package/dist/nodes/thingsboard/thingsboard.svg +10 -0
  37. package/dist/nodes/thingsboard/utils/helpers.d.ts +10 -0
  38. package/dist/nodes/thingsboard/utils/helpers.js +95 -0
  39. package/dist/nodes/thingsboard/utils/helpers.js.map +1 -0
  40. package/dist/nodes/thingsboard/utils/requestHandler.d.ts +11 -0
  41. package/dist/nodes/thingsboard/utils/requestHandler.js +116 -0
  42. package/dist/nodes/thingsboard/utils/requestHandler.js.map +1 -0
  43. package/dist/nodes/thingsboard/utils/resourceRegistry.d.ts +5 -0
  44. package/dist/nodes/thingsboard/utils/resourceRegistry.js +32 -0
  45. package/dist/nodes/thingsboard/utils/resourceRegistry.js.map +1 -0
  46. package/dist/nodes/thingsboard/utils/types.d.ts +42 -0
  47. package/dist/nodes/thingsboard/utils/types.js +3 -0
  48. package/dist/nodes/thingsboard/utils/types.js.map +1 -0
  49. package/dist/package.json +77 -0
  50. package/dist/tsconfig.tsbuildinfo +1 -0
  51. package/package.json +77 -0
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TelemetryResource = void 0;
4
+ const requestHandler_1 = require("../utils/requestHandler");
5
+ const helpers_1 = require("../utils/helpers");
6
+ class TelemetryResource {
7
+ async execute(context, operation) {
8
+ switch (operation) {
9
+ case 'getTimeseries':
10
+ return await this.getTimeseries(context);
11
+ case 'getTimeseriesKeys':
12
+ return await this.getTimeseriesKeys(context);
13
+ case 'getLatestTimeseries':
14
+ return await this.getLatestTimeseries(context);
15
+ case 'getAttributes':
16
+ return await this.getAttributes(context);
17
+ case 'getAttributeKeys':
18
+ return await this.getAttributeKeys(context);
19
+ case 'getAttributeKeysByScope':
20
+ return await this.getAttributeKeysByScope(context);
21
+ case 'saveEntityAttributes':
22
+ return await this.saveEntityAttributes(context);
23
+ case 'saveDeviceAttributes':
24
+ return await this.saveDeviceAttributes(context);
25
+ case 'saveEntityTelemetry':
26
+ return await this.saveEntityTelemetry(context);
27
+ case 'saveEntityTelemetryWithTTL':
28
+ return await this.saveEntityTelemetryWithTTL(context);
29
+ case 'deleteEntityAttributes':
30
+ return await this.deleteEntityAttributes(context);
31
+ case 'deleteDeviceAttributes':
32
+ return await this.deleteDeviceAttributes(context);
33
+ case 'deleteEntityTimeseries':
34
+ return await this.deleteEntityTimeseries(context);
35
+ default:
36
+ throw new Error(`Unknown telemetry operation: ${operation}`);
37
+ }
38
+ }
39
+ async getTimeseries(context) {
40
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
41
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
42
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
43
+ const keys = (0, helpers_1.validateRequired)(executeFunctions, 'keys', itemIndex);
44
+ const startTs = Math.trunc(Number((0, helpers_1.getOptionalParam)(executeFunctions, 'startTs', itemIndex, 0)));
45
+ const endTsParam = (0, helpers_1.getOptionalParam)(executeFunctions, 'endTs', itemIndex, '');
46
+ const endTs = !endTsParam || endTsParam === '' || endTsParam === '0'
47
+ ? Math.trunc(Date.now())
48
+ : Math.trunc(Number(endTsParam));
49
+ const agg = (0, helpers_1.getOptionalParam)(executeFunctions, 'agg', itemIndex, 'NONE');
50
+ const interval = (0, helpers_1.getOptionalParam)(executeFunctions, 'interval', itemIndex, '0');
51
+ const intervalType = (0, helpers_1.getOptionalParam)(executeFunctions, 'intervalType', itemIndex, 'MILLISECONDS');
52
+ const timeZone = (0, helpers_1.getOptionalParam)(executeFunctions, 'timeZone', itemIndex, '');
53
+ const orderBy = (0, helpers_1.getOptionalParam)(executeFunctions, 'orderBy', itemIndex, 'DESC');
54
+ const limit = (0, helpers_1.getOptionalParam)(executeFunctions, 'limit', itemIndex, 50);
55
+ const useStrictDataTypes = (0, helpers_1.getOptionalParam)(executeFunctions, 'useStrictDataTypes', itemIndex, false);
56
+ const qs = {
57
+ keys,
58
+ startTs,
59
+ endTs,
60
+ interval,
61
+ orderBy,
62
+ limit,
63
+ useStrictDataTypes,
64
+ };
65
+ if (agg)
66
+ qs.agg = agg;
67
+ if (intervalType)
68
+ qs.intervalType = intervalType;
69
+ if (timeZone)
70
+ qs.timeZone = timeZone;
71
+ return await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
72
+ method: 'GET',
73
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/values/timeseries`,
74
+ qs,
75
+ }, baseUrl, token);
76
+ }
77
+ async getTimeseriesKeys(context) {
78
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
79
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
80
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
81
+ const result = await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
82
+ method: 'GET',
83
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/keys/timeseries`,
84
+ }, baseUrl, token);
85
+ return { timeseriesKeys: result };
86
+ }
87
+ async getLatestTimeseries(context) {
88
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
89
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
90
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
91
+ const keys = (0, helpers_1.validateRequired)(executeFunctions, 'keys', itemIndex);
92
+ const useStrictDataTypes = (0, helpers_1.getOptionalParam)(executeFunctions, 'useStrictDataTypes', itemIndex, false);
93
+ const qs = {
94
+ keys,
95
+ useStrictDataTypes,
96
+ };
97
+ return await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
98
+ method: 'GET',
99
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/values/timeseries`,
100
+ qs,
101
+ }, baseUrl, token);
102
+ }
103
+ async getAttributes(context) {
104
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
105
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
106
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
107
+ const keys = (0, helpers_1.validateRequired)(executeFunctions, 'keys', itemIndex);
108
+ const qs = {};
109
+ if (keys)
110
+ qs.keys = keys;
111
+ return await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
112
+ method: 'GET',
113
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/values/attributes`,
114
+ qs,
115
+ }, baseUrl, token);
116
+ }
117
+ async getAttributeKeys(context) {
118
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
119
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
120
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
121
+ const result = await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
122
+ method: 'GET',
123
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/keys/attributes`,
124
+ }, baseUrl, token);
125
+ return { attributeKeys: result };
126
+ }
127
+ async getAttributeKeysByScope(context) {
128
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
129
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
130
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
131
+ const scope = (0, helpers_1.getOptionalParam)(executeFunctions, 'scope', itemIndex, 'SERVER_SCOPE');
132
+ const result = await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
133
+ method: 'GET',
134
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/keys/attributes/${scope}`,
135
+ }, baseUrl, token);
136
+ return { attributeKeys: result };
137
+ }
138
+ async saveEntityAttributes(context) {
139
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
140
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
141
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
142
+ const scope = (0, helpers_1.getOptionalParam)(executeFunctions, 'scope', itemIndex, 'SERVER_SCOPE');
143
+ const attributesJson = (0, helpers_1.parseJsonInput)(executeFunctions, 'attributesJson', itemIndex);
144
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
145
+ method: 'POST',
146
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/attributes/${scope}`,
147
+ body: attributesJson,
148
+ }, baseUrl, token);
149
+ return { status: 'Entity attributes saved successfully' };
150
+ }
151
+ async saveDeviceAttributes(context) {
152
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
153
+ const deviceId = (0, helpers_1.validateRequired)(executeFunctions, 'deviceId', itemIndex);
154
+ const scope = (0, helpers_1.getOptionalParam)(executeFunctions, 'scope', itemIndex, 'SERVER_SCOPE');
155
+ const attributesJson = (0, helpers_1.parseJsonInput)(executeFunctions, 'attributesJson', itemIndex);
156
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
157
+ method: 'POST',
158
+ endpoint: `/api/plugins/telemetry/DEVICE/${deviceId}/${scope}`,
159
+ body: attributesJson,
160
+ }, baseUrl, token);
161
+ return { status: 'Device attributes saved successfully' };
162
+ }
163
+ async saveEntityTelemetry(context) {
164
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
165
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
166
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
167
+ const telemetryJson = (0, helpers_1.parseJsonInput)(executeFunctions, 'telemetryJson', itemIndex);
168
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
169
+ method: 'POST',
170
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/timeseries/ANY`,
171
+ body: telemetryJson,
172
+ }, baseUrl, token);
173
+ return { status: 'Telemetry submitted successfully' };
174
+ }
175
+ async saveEntityTelemetryWithTTL(context) {
176
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
177
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
178
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
179
+ const ttl = (0, helpers_1.getOptionalParam)(executeFunctions, 'ttl', itemIndex, 0);
180
+ const telemetryJson = (0, helpers_1.parseJsonInput)(executeFunctions, 'telemetryJson', itemIndex);
181
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
182
+ method: 'POST',
183
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/timeseries/ANY/${ttl}`,
184
+ body: telemetryJson,
185
+ }, baseUrl, token);
186
+ return { status: 'Telemetry with TTL submitted successfully' };
187
+ }
188
+ async deleteEntityAttributes(context) {
189
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
190
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
191
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
192
+ const scope = (0, helpers_1.getOptionalParam)(executeFunctions, 'scope', itemIndex, 'SERVER_SCOPE');
193
+ const attributeKeys = (0, helpers_1.validateRequired)(executeFunctions, 'attributeKeys', itemIndex);
194
+ const qs = {
195
+ keys: attributeKeys,
196
+ };
197
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
198
+ method: 'DELETE',
199
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/${scope}`,
200
+ qs,
201
+ }, baseUrl, token);
202
+ return { status: 'Entity attributes deleted successfully' };
203
+ }
204
+ async deleteDeviceAttributes(context) {
205
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
206
+ const deviceId = (0, helpers_1.validateRequired)(executeFunctions, 'deviceId', itemIndex);
207
+ const scope = (0, helpers_1.getOptionalParam)(executeFunctions, 'scope', itemIndex, 'SERVER_SCOPE');
208
+ const attributeKeys = (0, helpers_1.validateRequired)(executeFunctions, 'attributeKeys', itemIndex);
209
+ const qs = {
210
+ keys: attributeKeys,
211
+ };
212
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
213
+ method: 'DELETE',
214
+ endpoint: `/api/plugins/telemetry/DEVICE/${deviceId}/${scope}`,
215
+ qs,
216
+ }, baseUrl, token);
217
+ return { status: 'Device attributes deleted successfully' };
218
+ }
219
+ async deleteEntityTimeseries(context) {
220
+ const { executeFunctions, itemIndex, baseUrl, token } = context;
221
+ const entityType = (0, helpers_1.getOptionalParam)(executeFunctions, 'entityType', itemIndex, 'DEVICE');
222
+ const entityId = (0, helpers_1.validateRequired)(executeFunctions, 'entityId', itemIndex);
223
+ const timeseriesKeys = (0, helpers_1.validateRequired)(executeFunctions, 'timeseriesKeys', itemIndex);
224
+ const deleteAllDataForKeys = (0, helpers_1.getOptionalParam)(executeFunctions, 'deleteAllDataForKeys', itemIndex, false);
225
+ const deleteLatest = (0, helpers_1.getOptionalParam)(executeFunctions, 'deleteLatest', itemIndex, true);
226
+ const rewriteLatestIfDeleted = (0, helpers_1.getOptionalParam)(executeFunctions, 'rewriteLatestIfDeleted', itemIndex, false);
227
+ const qs = {
228
+ keys: timeseriesKeys,
229
+ deleteAllDataForKeys,
230
+ deleteLatest,
231
+ rewriteLatestIfDeleted,
232
+ };
233
+ if (!deleteAllDataForKeys) {
234
+ const startTs = (0, helpers_1.getOptionalParam)(executeFunctions, 'deleteStartTs', itemIndex, '');
235
+ const endTs = (0, helpers_1.getOptionalParam)(executeFunctions, 'deleteEndTs', itemIndex, '');
236
+ if (startTs) {
237
+ qs.startTs = Number(startTs);
238
+ }
239
+ if (endTs) {
240
+ qs.endTs = Number(endTs);
241
+ }
242
+ }
243
+ await (0, requestHandler_1.makeThingsBoardRequest)(executeFunctions, {
244
+ method: 'DELETE',
245
+ endpoint: `/api/plugins/telemetry/${entityType}/${entityId}/timeseries/delete`,
246
+ qs,
247
+ }, baseUrl, token);
248
+ return { status: 'Entity timeseries deleted successfully' };
249
+ }
250
+ }
251
+ exports.TelemetryResource = TelemetryResource;
252
+ //# sourceMappingURL=TelemetryResource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryResource.js","sourceRoot":"","sources":["../../../../nodes/thingsboard/resources/TelemetryResource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ <svg width="90" height="90" viewBox="0 0 90 90" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_9148_297)">
3
+ <path d="M87.5527 44.8604C87.8902 44.8604 88.2004 44.9435 88.5098 45.0557C88.8191 45.1678 89.1002 45.3646 89.3252 45.5889C89.5501 45.8131 89.7469 46.094 89.8594 46.4023C89.9718 46.7106 90.0283 47.0192 90.0283 47.3555C90.0283 55.3739 87.7502 62.8879 83.8691 69.2803C85.3316 71.0747 86.1465 73.3461 86.1465 75.7012C86.1464 81.3646 81.5063 85.9901 75.8252 85.9902C73.4346 85.9902 71.1562 85.1774 69.3281 83.6914C62.9437 87.5045 55.4904 89.7197 47.5029 89.7197C47.1655 89.7197 46.8562 89.6632 46.5469 89.5791C46.2376 89.467 45.9564 89.2711 45.7314 89.0469C45.5064 88.7945 45.3098 88.5418 45.1973 88.2334C45.0567 87.925 45 87.6167 45 87.2803C45 86.9439 45.0848 86.6355 45.1973 86.3271C45.3098 86.0188 45.5065 85.7379 45.7314 85.5137C45.9564 85.2895 46.2376 85.0935 46.5469 84.9814C46.8562 84.8693 47.1655 84.8135 47.5029 84.8135C54.3936 84.8135 60.8344 82.9626 66.375 79.7383C65.8125 78.4767 65.503 77.1029 65.5029 75.7012C65.5029 70.0376 70.1439 65.4111 75.8252 65.4111C77.2314 65.4392 78.6096 65.7479 79.9033 66.3086C83.1939 60.7292 85.0781 54.2806 85.0781 47.3555C85.0781 47.0191 85.1346 46.7107 85.2471 46.4023C85.3596 46.0939 85.5563 45.8132 85.7812 45.5889C86.0344 45.3646 86.2873 45.1678 86.5967 45.0557C86.9059 44.9155 87.2154 44.8604 87.5527 44.8604ZM75.8252 70.3174C72.844 70.3174 70.4532 72.6729 70.4531 75.6729C70.4531 76.8785 70.8471 78.0565 71.6064 79.0098C71.6342 79.0374 71.6343 79.0377 71.6621 79.0654C72.6746 80.3551 74.1658 81.0557 75.8252 81.0557C78.8063 81.0556 81.1972 78.701 81.1973 75.7012C81.1973 74.0751 80.4657 72.5328 79.2002 71.5234C78.244 70.7384 77.0626 70.3174 75.8252 70.3174ZM61.8184 15.7012C63.1402 15.6451 64.2373 16.6822 64.2373 18C64.2373 18.6168 64.0408 19.234 63.5908 19.6826C61.7627 21.5331 58.6121 24.6729 58.0215 25.2617L63.6191 30.8408C63.9307 30.5302 67.4439 27.0279 69.2715 25.2061C69.6933 24.8136 70.256 24.5887 70.8184 24.5605C72.1401 24.5045 73.2371 25.5418 73.2373 26.8594C73.2373 27.4761 73.0407 28.0934 72.5908 28.542C70.6502 30.4766 67.275 33.8413 66.9375 34.1777L72.2246 39.3643C73.3496 40.4857 73.3496 42.2799 72.2246 43.4014L65.25 50.3555C65.3396 50.4447 69.0486 54.1134 70.9316 56.0186C71.3253 56.4391 71.55 56.9999 71.5781 57.5605C71.6344 58.8783 70.5934 59.9717 69.2715 59.9717C68.6529 59.9716 68.0339 59.7757 67.584 59.3271C65.5872 57.3647 62.0445 53.8321 61.9033 53.6914L54.5625 61.0098C54.5967 61.0436 58.3404 64.7471 60.2441 66.6729C60.6378 67.0934 60.8625 67.6542 60.8906 68.2148C60.9469 69.5326 59.9059 70.626 58.584 70.626C57.9654 70.6259 57.3464 70.43 56.8965 69.9814C54.8715 67.9627 51.2158 64.3174 51.2158 64.3174L44.2402 71.2705C43.1152 72.392 41.3154 72.392 40.1904 71.2705L34.959 66.0557C34.6777 66.3641 31.1629 69.8973 29.3066 71.7197C28.8849 72.1122 28.3221 72.3361 27.7598 72.3643C26.4379 72.4203 25.3408 71.3832 25.3408 70.0654C25.3408 69.4486 25.5373 68.8314 25.9873 68.3828C27.9275 66.4486 31.33 63.0577 31.6406 62.748L26.0439 57.168C25.7627 57.4483 22.2186 60.9813 20.3623 62.8037C19.9404 63.1962 19.3779 63.4202 18.8154 63.4482C17.4936 63.5042 16.3965 62.4671 16.3965 61.1494C16.3965 60.5326 16.594 59.9154 17.0439 59.4668C18.9846 57.5322 22.416 54.1124 22.6973 53.832L17.5498 48.7568C16.425 47.6354 16.425 45.8412 17.5498 44.7197L24.5254 37.7666C24.1598 37.4021 20.6721 33.9533 18.8721 32.1309C18.4783 31.7103 18.2528 31.1496 18.2246 30.5889C18.1965 29.916 18.4503 29.2995 18.8721 28.8789C19.2939 28.4583 19.8846 28.1777 20.5596 28.1777C21.1782 28.1778 21.7971 28.3737 22.2471 28.8223C24.1877 30.7288 27.5348 34.0652 27.9004 34.4297L35.2129 27.1406C34.7629 26.692 31.3596 23.2993 29.5596 21.5049C29.1659 21.0844 28.9403 20.5516 28.9121 19.9629C28.8559 18.6451 29.8969 17.5518 31.2188 17.5518C31.8375 17.5518 32.4563 17.7477 32.9062 18.1963C34.7906 20.0748 38.1094 23.3832 38.5312 23.8037L45.5059 16.8223C46.6309 15.7008 48.4316 15.7008 49.5566 16.8223L54.6748 21.9248C55.2657 21.3357 58.5278 18.084 60.2715 16.3457C60.6933 15.9533 61.256 15.7293 61.8184 15.7012ZM49.0215 27.7568C48.3747 27.7289 47.728 28.0098 47.25 28.4863C47.0252 28.7105 46.8283 28.9904 46.7158 29.2705L44.4375 34.7383C43.9875 35.7757 44.325 36.9812 45.2812 37.542C46.2375 38.1027 47.4752 37.9063 48.2627 37.0371L49.416 41.5518L36.8438 45.3643C35.6064 45.7287 34.8471 47.0184 35.1562 48.252L38.0254 59.4111C38.3348 60.6446 39.5997 61.3454 40.8652 60.9531C42.1309 60.5606 42.8902 59.2708 42.5527 58.0371L40.2188 49.0938L52.791 45.2803C54.0282 44.9156 54.7877 43.598 54.4785 42.3926L52.7627 35.6631C53.8314 35.9714 55.0125 35.467 55.5469 34.4297C56.0811 33.3923 55.8279 32.1591 54.9561 31.5703L50.3154 28.1777C49.9498 27.8974 49.4996 27.7568 49.0215 27.7568ZM42.4971 0C42.8345 2.14389e-05 43.144 0.0565289 43.4814 0.140625C43.7907 0.25279 44.072 0.448637 44.2969 0.672852C44.5219 0.925188 44.7186 1.17792 44.8311 1.48633C44.9716 1.79467 45.0283 2.10308 45.0283 2.43945C45.0283 2.77582 44.9435 3.08423 44.8311 3.39258C44.7185 3.70095 44.5218 3.98178 44.2969 4.20605C44.072 4.43022 43.7906 4.62616 43.4814 4.73828C43.1722 4.85039 42.8627 4.90621 42.5254 4.90625C35.6348 4.90625 29.1939 6.75718 23.6533 9.98145C24.2157 11.243 24.5254 12.6168 24.5254 14.0186C24.5254 19.6821 19.8844 24.3086 14.2031 24.3086C12.7969 24.2806 11.4187 23.9719 10.125 23.4111C6.83441 28.9905 4.95024 35.4391 4.9502 42.3643C4.97831 42.7006 4.89369 43.0091 4.78125 43.3174C4.66876 43.6258 4.47203 43.9066 4.24707 44.1309C3.99408 44.355 3.74079 44.5509 3.43164 44.6631C3.12227 44.8033 2.81211 44.8594 2.47461 44.8594C2.13726 44.8593 1.82781 44.7752 1.51855 44.6631C1.20931 44.5509 0.928045 44.3551 0.703125 44.1309C0.478125 43.9066 0.281445 43.6258 0.168945 43.3174C0.0565107 43.0091 0 42.7006 0 42.3643C4.32784e-05 34.3458 2.24976 26.8599 6.13086 20.4395C4.6684 18.6451 3.85352 16.3737 3.85352 14.0186C3.85359 8.35513 8.49369 3.72862 14.1748 3.72852C16.5654 3.72852 18.8438 4.54234 20.6719 6.02832C27.0563 2.21524 34.5096 0 42.4971 0ZM14.1748 8.66309C11.1937 8.66319 8.80281 11.0187 8.80273 14.0186C8.80273 15.6447 9.53425 17.1869 10.7998 18.1963C11.756 18.9813 12.9374 19.4023 14.1748 19.4023C17.156 19.4023 19.5468 17.0468 19.5469 14.0469C19.5469 12.8413 19.1529 11.6632 18.3936 10.71C18.3658 10.6823 18.3657 10.682 18.3379 10.6543C17.3254 9.36458 15.8342 8.66309 14.1748 8.66309Z" fill="black"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_9148_297">
7
+ <rect width="90" height="90" fill="white"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="90" height="90" viewBox="0 0 90 90" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_9148_302)">
3
+ <path d="M87.5527 44.8604C87.8902 44.8604 88.2004 44.9435 88.5098 45.0557C88.8191 45.1678 89.1002 45.3646 89.3252 45.5889C89.5501 45.8131 89.7469 46.094 89.8594 46.4023C89.9718 46.7106 90.0283 47.0192 90.0283 47.3555C90.0283 55.3739 87.7502 62.8879 83.8691 69.2803C85.3316 71.0747 86.1465 73.3461 86.1465 75.7012C86.1464 81.3646 81.5063 85.9901 75.8252 85.9902C73.4346 85.9902 71.1562 85.1774 69.3281 83.6914C62.9437 87.5045 55.4904 89.7197 47.5029 89.7197C47.1655 89.7197 46.8562 89.6632 46.5469 89.5791C46.2376 89.467 45.9564 89.2711 45.7314 89.0469C45.5064 88.7945 45.3098 88.5418 45.1973 88.2334C45.0567 87.925 45 87.6167 45 87.2803C45 86.9439 45.0848 86.6355 45.1973 86.3271C45.3098 86.0188 45.5065 85.7379 45.7314 85.5137C45.9564 85.2895 46.2376 85.0935 46.5469 84.9814C46.8562 84.8693 47.1655 84.8135 47.5029 84.8135C54.3936 84.8135 60.8344 82.9626 66.375 79.7383C65.8125 78.4767 65.503 77.1029 65.5029 75.7012C65.5029 70.0376 70.1439 65.4111 75.8252 65.4111C77.2314 65.4392 78.6096 65.7479 79.9033 66.3086C83.1939 60.7292 85.0781 54.2806 85.0781 47.3555C85.0781 47.0191 85.1346 46.7107 85.2471 46.4023C85.3596 46.0939 85.5563 45.8132 85.7812 45.5889C86.0344 45.3646 86.2873 45.1678 86.5967 45.0557C86.9059 44.9155 87.2154 44.8604 87.5527 44.8604ZM75.8252 70.3174C72.844 70.3174 70.4532 72.6729 70.4531 75.6729C70.4531 76.8785 70.8471 78.0565 71.6064 79.0098C71.6342 79.0374 71.6343 79.0377 71.6621 79.0654C72.6746 80.3551 74.1658 81.0557 75.8252 81.0557C78.8063 81.0556 81.1972 78.701 81.1973 75.7012C81.1973 74.0751 80.4657 72.5328 79.2002 71.5234C78.244 70.7384 77.0626 70.3174 75.8252 70.3174ZM61.8184 15.7012C63.1402 15.6451 64.2373 16.6822 64.2373 18C64.2373 18.6168 64.0408 19.234 63.5908 19.6826C61.7627 21.5331 58.6121 24.6729 58.0215 25.2617L63.6191 30.8408C63.9307 30.5302 67.4439 27.0279 69.2715 25.2061C69.6933 24.8136 70.256 24.5887 70.8184 24.5605C72.1401 24.5045 73.2371 25.5418 73.2373 26.8594C73.2373 27.4761 73.0407 28.0934 72.5908 28.542C70.6502 30.4766 67.275 33.8413 66.9375 34.1777L72.2246 39.3643C73.3496 40.4857 73.3496 42.2799 72.2246 43.4014L65.25 50.3555C65.3396 50.4447 69.0486 54.1134 70.9316 56.0186C71.3253 56.4391 71.55 56.9999 71.5781 57.5605C71.6344 58.8783 70.5934 59.9717 69.2715 59.9717C68.6529 59.9716 68.0339 59.7757 67.584 59.3271C65.5872 57.3647 62.0445 53.8321 61.9033 53.6914L54.5625 61.0098C54.5967 61.0436 58.3404 64.7471 60.2441 66.6729C60.6378 67.0934 60.8625 67.6542 60.8906 68.2148C60.9469 69.5326 59.9059 70.626 58.584 70.626C57.9654 70.6259 57.3464 70.43 56.8965 69.9814C54.8715 67.9627 51.2158 64.3174 51.2158 64.3174L44.2402 71.2705C43.1152 72.392 41.3154 72.392 40.1904 71.2705L34.959 66.0557C34.6777 66.3641 31.1629 69.8973 29.3066 71.7197C28.8849 72.1122 28.3221 72.3361 27.7598 72.3643C26.4379 72.4203 25.3408 71.3832 25.3408 70.0654C25.3408 69.4486 25.5373 68.8314 25.9873 68.3828C27.9275 66.4486 31.33 63.0577 31.6406 62.748L26.0439 57.168C25.7627 57.4483 22.2186 60.9813 20.3623 62.8037C19.9404 63.1962 19.3779 63.4202 18.8154 63.4482C17.4936 63.5042 16.3965 62.4671 16.3965 61.1494C16.3965 60.5326 16.594 59.9154 17.0439 59.4668C18.9846 57.5322 22.416 54.1124 22.6973 53.832L17.5498 48.7568C16.425 47.6354 16.425 45.8412 17.5498 44.7197L24.5254 37.7666C24.1598 37.4021 20.6721 33.9533 18.8721 32.1309C18.4783 31.7103 18.2528 31.1496 18.2246 30.5889C18.1965 29.916 18.4503 29.2995 18.8721 28.8789C19.2939 28.4583 19.8846 28.1777 20.5596 28.1777C21.1782 28.1778 21.7971 28.3737 22.2471 28.8223C24.1877 30.7288 27.5348 34.0652 27.9004 34.4297L35.2129 27.1406C34.7629 26.692 31.3596 23.2993 29.5596 21.5049C29.1659 21.0844 28.9403 20.5516 28.9121 19.9629C28.8559 18.6451 29.8969 17.5518 31.2188 17.5518C31.8375 17.5518 32.4563 17.7477 32.9062 18.1963C34.7906 20.0748 38.1094 23.3832 38.5312 23.8037L45.5059 16.8223C46.6309 15.7008 48.4316 15.7008 49.5566 16.8223L54.6748 21.9248C55.2657 21.3357 58.5278 18.084 60.2715 16.3457C60.6933 15.9533 61.256 15.7293 61.8184 15.7012ZM49.0215 27.7568C48.3747 27.7289 47.728 28.0098 47.25 28.4863C47.0252 28.7105 46.8283 28.9904 46.7158 29.2705L44.4375 34.7383C43.9875 35.7757 44.325 36.9812 45.2812 37.542C46.2375 38.1027 47.4752 37.9063 48.2627 37.0371L49.416 41.5518L36.8438 45.3643C35.6064 45.7287 34.8471 47.0184 35.1562 48.252L38.0254 59.4111C38.3348 60.6446 39.5997 61.3454 40.8652 60.9531C42.1309 60.5606 42.8902 59.2708 42.5527 58.0371L40.2188 49.0938L52.791 45.2803C54.0282 44.9156 54.7877 43.598 54.4785 42.3926L52.7627 35.6631C53.8314 35.9714 55.0125 35.467 55.5469 34.4297C56.0811 33.3923 55.8279 32.1591 54.9561 31.5703L50.3154 28.1777C49.9498 27.8974 49.4996 27.7568 49.0215 27.7568ZM42.4971 0C42.8345 2.14389e-05 43.144 0.0565289 43.4814 0.140625C43.7907 0.25279 44.072 0.448637 44.2969 0.672852C44.5219 0.925188 44.7186 1.17792 44.8311 1.48633C44.9716 1.79467 45.0283 2.10308 45.0283 2.43945C45.0283 2.77582 44.9435 3.08423 44.8311 3.39258C44.7185 3.70095 44.5218 3.98178 44.2969 4.20605C44.072 4.43022 43.7906 4.62616 43.4814 4.73828C43.1722 4.85039 42.8627 4.90621 42.5254 4.90625C35.6348 4.90625 29.1939 6.75718 23.6533 9.98145C24.2157 11.243 24.5254 12.6168 24.5254 14.0186C24.5254 19.6821 19.8844 24.3086 14.2031 24.3086C12.7969 24.2806 11.4187 23.9719 10.125 23.4111C6.83441 28.9905 4.95024 35.4391 4.9502 42.3643C4.97831 42.7006 4.89369 43.0091 4.78125 43.3174C4.66876 43.6258 4.47203 43.9066 4.24707 44.1309C3.99408 44.355 3.74079 44.5509 3.43164 44.6631C3.12227 44.8033 2.81211 44.8594 2.47461 44.8594C2.13726 44.8593 1.82781 44.7752 1.51855 44.6631C1.20931 44.5509 0.928045 44.3551 0.703125 44.1309C0.478125 43.9066 0.281445 43.6258 0.168945 43.3174C0.0565107 43.0091 0 42.7006 0 42.3643C4.32784e-05 34.3458 2.24976 26.8599 6.13086 20.4395C4.6684 18.6451 3.85352 16.3737 3.85352 14.0186C3.85359 8.35513 8.49369 3.72862 14.1748 3.72852C16.5654 3.72852 18.8438 4.54234 20.6719 6.02832C27.0563 2.21524 34.5096 0 42.4971 0ZM14.1748 8.66309C11.1937 8.66319 8.80281 11.0187 8.80273 14.0186C8.80273 15.6447 9.53425 17.1869 10.7998 18.1963C11.756 18.9813 12.9374 19.4023 14.1748 19.4023C17.156 19.4023 19.5468 17.0468 19.5469 14.0469C19.5469 12.8413 19.1529 11.6632 18.3936 10.71C18.3658 10.6823 18.3657 10.682 18.3379 10.6543C17.3254 9.36458 15.8342 8.66309 14.1748 8.66309Z" fill="white"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_9148_302">
7
+ <rect width="90" height="90" fill="white"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="320" width="320" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 320 320.00001">
2
+ <g id="layer1" transform="translate(0 -732.36)" stroke-width="28">
3
+ <g id="g5175-6-32" transform="matrix(1.0471 1.0606 -1.0484 1.0619 931.69 -208.55)"></g>
4
+ <g id="g4241" fill="#fff">
5
+ <path id="path4278" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;isolation:auto;mix-blend-mode:normal;shape-rendering:auto;solid-color:#000000;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;image-rendering:auto;white-space:normal;text-indent:0;text-transform:none" d="m151.13 732.36c-28.363 0-54.915 7.9153-77.613 21.537-6.4723-5.2623-14.605-8.1915-23.067-8.1937a8.7661 8.7661 0 0 0 -0.0035 0c-20.154 0.00073-36.679 16.528-36.678 36.682a8.7661 8.7661 0 0 0 0 0.0106c0.0099 8.4147 2.9267 16.483 8.1033 22.927-13.83 22.83-21.87 49.58-21.87 78.17a8.7661 8.7661 0 1 0 17.531 0c0-24.702 6.7193-47.748 18.378-67.574 4.5663 1.9846 9.4727 3.1496 14.519 3.1573a8.7661 8.7661 0 0 0 0.01241 0c20.155 0.00062 36.683-16.527 36.682-36.682a8.7661 8.7661 0 0 0 0 -0.004c-0.0016-4.9994-1.1387-9.8628-3.0828-14.397 19.717-11.484 42.585-18.095 67.085-18.095a8.7661 8.7661 0 1 0 0 -17.531zm-100.69 30.88c5.9129 0.002 11.191 2.5121 14.836 7.0769a8.7661 8.7661 0 0 0 0.1826 0.21451c2.6715 3.3798 4.1326 7.5531 4.1341 11.863-0.0015 10.677-8.468 19.144-19.144 19.148-4.37-0.008-8.6011-1.5088-12-4.2546a8.7661 8.7661 0 0 0 -0.01241 -0.009c-4.514-3.6331-7.1358-9.0979-7.1442-14.893 0.0025-10.677 8.4701-19.144 19.148-19.146z"/>
6
+ <path id="path4486-0-9-6-9-7-6-5" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;isolation:auto;mix-blend-mode:normal;shape-rendering:auto;solid-color:#000000;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;image-rendering:auto;white-space:normal;text-indent:0;text-transform:none" d="m66.992 835.19c-1.492 1.5583-2.3663 3.7103-2.2576 6.0713 0.0962 2.0447 0.91322 4.0204 2.3372 5.5177 6.8051 6.8559 20.223 20.223 20.223 20.223l11.844-11.83s-12.973-12.961-20.176-20.171c-1.604-1.6325-3.7498-2.3141-6.012-2.3243-2.3583-0.0112-4.4673 0.95389-5.9592 2.5122zm32.147 19.983-36.639 36.639c-3.9751 3.976-3.9751 10.421 0 14.397l18.156 18.156 31.753 31.753 30.478 30.478c3.9758 3.9759 10.422 3.9763 14.398 0l24.791-24.791 37.914-37.914 36.639-36.639c3.9754-3.9764 3.975-10.422-0.00067-14.398l-18.63-18.63-31.75-31.76-30.01-30c-3.976-3.9751-10.421-3.9751-14.397 0l-24.79 24.79-37.91 37.91zm37.911-37.91s-12.973-12.961-20.176-20.171c-1.604-1.6325-3.7498-2.3141-6.012-2.3243-4.7166-0.0226-8.4341 3.8616-8.2169 8.5834 0.0962 2.0447 0.91322 4.0204 2.3372 5.5177 6.8051 6.8559 20.223 20.223 20.223 20.223l11.844-11.83zm69.193 5.2132s12.961-12.973 20.171-20.176c1.6325-1.604 2.3141-3.7498 2.3243-6.012 0.0225-4.7166-3.8616-8.4341-8.5834-8.2169-2.0447 0.0962-4.0204 0.91322-5.5177 2.3372-6.8559 6.8051-20.223 20.223-20.223 20.223l11.83 11.844zm31.753 31.753s12.961-12.973 20.171-20.176c1.6325-1.604 2.314-3.7498 2.3243-6.012 0.0225-4.7166-3.8616-8.4341-8.5834-8.2169-2.0447 0.0962-4.0204 0.91323-5.5177 2.3372-6.8559 6.8051-20.223 20.223-20.223 20.223l11.83 11.844zm-18.009 69.667s12.973 12.961 20.178 20.169c1.604 1.6324 3.7498 2.314 6.012 2.3243 4.7166 0.0225 8.4342-3.8615 8.2169-8.5834l-0.002 0.002c-0.0962-2.0447-0.91415-4.0214-2.3382-5.5186-6.8051-6.8559-20.222-20.222-20.222-20.222l-11.844 11.83zm-37.914 37.914s12.973 12.961 20.178 20.169c1.604 1.6324 3.7498 2.314 6.012 2.3242 4.7166 0.023 8.4342-3.8615 8.2169-8.5834h-0.002c-0.0962-2.0447-0.91323-4.0205-2.3372-5.5177-6.8051-6.8559-20.223-20.223-20.223-20.223l-11.844 11.83zm-69.667-5.6871s-12.961 12.973-20.169 20.178c-1.6324 1.604-2.314 3.7498-2.3243 6.012-0.02251 4.7166 3.8615 8.4342 8.5834 8.2169h-0.0019c2.0447-0.096 4.0204-0.9132 5.5177-2.3373 6.8561-6.8048 20.223-20.223 20.223-20.223l-11.82-11.84zm-31.743-31.74s-12.961 12.973-20.169 20.178c-1.6324 1.604-2.314 3.7498-2.3243 6.012-0.02251 4.7167 3.8615 8.4342 8.5834 8.2169h-0.0019c2.0447-0.0962 4.0204-0.91322 5.5177-2.3372 6.8561-6.8047 20.223-20.223 20.223-20.223l-11.829-11.85zm87.237-90.554c1.6794-1.7064 3.9669-2.6599 6.2971-2.626 1.6628 0.0237 3.253 0.55012 4.5625 1.5097l16.499 12.1c3.2009 2.297 4.1445 6.6589 2.2308 10.312-1.9137 3.6528-6.1234 5.5243-9.9506 4.4227l6.124 23.948c1.1128 4.3517-1.564 8.9677-5.9833 10.317l-44.642 13.631 8.2456 31.883c1.1728 4.3696-1.5017 9.0445-5.9546 10.407s-8.9756-1.1106-10.068-5.5047l-10.282-39.769c-1.1265-4.3556 1.5493-8.9847 5.9759-10.338l44.661-13.637-4.1219-16.118c-2.7634 3.0643-7.2335 3.8084-10.586 1.7615-3.3531-2.0469-4.6144-6.2896-2.9861-10.047l8.1169-19.454c0.43322-1.0376 1.0673-1.9888 1.8624-2.7973z" fill-rule="evenodd"/>
7
+ <path id="path4278-5" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;isolation:auto;mix-blend-mode:normal;shape-rendering:auto;solid-color:#000000;block-progression:tb;text-decoration-line:none;text-decoration-style:solid;image-rendering:auto;white-space:normal;text-indent:0;text-transform:none" d="m168.87 1052.4c28.363 0 54.915-7.9155 77.614-21.538 6.4724 5.2624 14.605 8.1917 23.067 8.1939a8.7662 8.7662 0 0 0 0.004 0c20.155-0.0007 36.68-16.528 36.679-36.682a8.7662 8.7662 0 0 0 0 -0.011c-0.01-8.4149-2.9267-16.484-8.1034-22.927 13.825-22.82 21.866-49.572 21.866-78.162a8.7662 8.7662 0 1 0 -17.531 0c0 24.703-6.7194 47.749-18.378 67.575-4.5664-1.9846-9.4728-3.1496-14.519-3.1573a8.7662 8.7662 0 0 0 -0.0124 0c-20.155-0.00062-36.683 16.527-36.682 36.682 0.002 4.9994 1.1387 9.8628 3.0829 14.397-19.717 11.484-42.586 18.095-67.086 18.095a8.7662 8.7662 0 1 0 0 17.531zm100.69-30.875c-5.913 0-11.191-2.5122-14.836-7.0769a8.7662 8.7662 0 0 0 -0.18261 -0.2146c-2.6715-3.3799-4.1327-7.5531-4.1341-11.863 0.002-10.677 8.4681-19.144 19.144-19.148 4.37 0.008 8.6012 1.5088 12 4.2547a8.7662 8.7662 0 0 0 0.0124 0.009c4.5141 3.6332 7.1359 9.098 7.1443 14.893-0.003 10.677-8.4702 19.145-19.148 19.146z"/>
8
+ </g>
9
+ </g>
10
+ </svg>
@@ -0,0 +1,10 @@
1
+ import { IExecuteFunctions } from 'n8n-workflow';
2
+ import { IPaginationParams, QueryString } from './types';
3
+ export declare function buildPaginationQuery(executeFunctions: IExecuteFunctions, itemIndex: number, resource: string): IPaginationParams;
4
+ export declare function paginationToQueryString(params: IPaginationParams): QueryString;
5
+ export declare function parseJsonInput(executeFunctions: IExecuteFunctions, paramName: string, itemIndex: number): Record<string, unknown>;
6
+ export declare function buildEntityWithCustomer(name: string, type: string, label?: string, customerId?: string): Record<string, unknown>;
7
+ export declare function cleanQueryString(qs: QueryString): QueryString;
8
+ export declare function validateRequired(executeFunctions: IExecuteFunctions, paramName: string, itemIndex: number): string;
9
+ export declare function getOptionalParam<T = string>(executeFunctions: IExecuteFunctions, paramName: string, itemIndex: number, defaultValue?: T): T;
10
+ export declare function normalizeBaseUrl(baseUrl: string): string;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPaginationQuery = buildPaginationQuery;
4
+ exports.paginationToQueryString = paginationToQueryString;
5
+ exports.parseJsonInput = parseJsonInput;
6
+ exports.buildEntityWithCustomer = buildEntityWithCustomer;
7
+ exports.cleanQueryString = cleanQueryString;
8
+ exports.validateRequired = validateRequired;
9
+ exports.getOptionalParam = getOptionalParam;
10
+ exports.normalizeBaseUrl = normalizeBaseUrl;
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ function buildPaginationQuery(executeFunctions, itemIndex, resource) {
13
+ const pageSize = executeFunctions.getNodeParameter('pageSize', itemIndex, 10);
14
+ const page = executeFunctions.getNodeParameter('page', itemIndex, 0);
15
+ const textSearch = executeFunctions.getNodeParameter(`${resource}TextSearch`, itemIndex, '');
16
+ const sortProperty = executeFunctions.getNodeParameter(`${resource}SortProperty`, itemIndex, '');
17
+ const sortOrder = executeFunctions.getNodeParameter('sortOrder', itemIndex, 'DESC');
18
+ const params = {
19
+ pageSize,
20
+ page,
21
+ sortProperty,
22
+ sortOrder,
23
+ };
24
+ if (textSearch) {
25
+ params.textSearch = textSearch;
26
+ }
27
+ return params;
28
+ }
29
+ function paginationToQueryString(params) {
30
+ const qs = {};
31
+ if (params.pageSize !== undefined)
32
+ qs.pageSize = params.pageSize;
33
+ if (params.page !== undefined)
34
+ qs.page = params.page;
35
+ if (params.textSearch)
36
+ qs.textSearch = params.textSearch;
37
+ if (params.sortProperty)
38
+ qs.sortProperty = params.sortProperty;
39
+ if (params.sortOrder)
40
+ qs.sortOrder = params.sortOrder;
41
+ return qs;
42
+ }
43
+ function parseJsonInput(executeFunctions, paramName, itemIndex) {
44
+ const raw = executeFunctions.getNodeParameter(paramName, itemIndex);
45
+ if (typeof raw === 'string') {
46
+ try {
47
+ return JSON.parse(raw);
48
+ }
49
+ catch (e) {
50
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `${paramName} must be valid JSON. ${e.message}`);
51
+ }
52
+ }
53
+ else if (raw && typeof raw === 'object') {
54
+ return raw;
55
+ }
56
+ else {
57
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `${paramName} must be a JSON object or JSON string.`);
58
+ }
59
+ }
60
+ function buildEntityWithCustomer(name, type, label, customerId) {
61
+ const entity = {
62
+ name,
63
+ type,
64
+ };
65
+ if (label) {
66
+ entity.label = label;
67
+ }
68
+ if (customerId) {
69
+ entity.customerId = { id: customerId };
70
+ }
71
+ return entity;
72
+ }
73
+ function cleanQueryString(qs) {
74
+ const cleaned = {};
75
+ for (const [key, value] of Object.entries(qs)) {
76
+ if (value !== undefined && value !== '' && value !== null) {
77
+ cleaned[key] = value;
78
+ }
79
+ }
80
+ return cleaned;
81
+ }
82
+ function validateRequired(executeFunctions, paramName, itemIndex) {
83
+ const value = executeFunctions.getNodeParameter(paramName, itemIndex, '');
84
+ if (!value || value.trim() === '') {
85
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Required parameter "${paramName}" is missing or empty.`);
86
+ }
87
+ return value;
88
+ }
89
+ function getOptionalParam(executeFunctions, paramName, itemIndex, defaultValue = '') {
90
+ return executeFunctions.getNodeParameter(paramName, itemIndex, defaultValue);
91
+ }
92
+ function normalizeBaseUrl(baseUrl) {
93
+ return baseUrl.replace(/\/+$/g, '');
94
+ }
95
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../nodes/thingsboard/utils/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { IExecuteFunctions } from 'n8n-workflow';
2
+ import { IThingsBoardRequestOptions } from './types';
3
+ export declare function makeThingsBoardRequest(executeFunctions: IExecuteFunctions, options: IThingsBoardRequestOptions, baseUrl: string, token: string): Promise<any>;
4
+ export declare function getThingsBoardCredentials(executeFunctions: IExecuteFunctions): Promise<{
5
+ baseUrl: string;
6
+ username: string;
7
+ password: string;
8
+ }>;
9
+ export declare function getAccessToken(executeFunctions: IExecuteFunctions): Promise<string>;
10
+ export declare function getEdition(executeFunctions: IExecuteFunctions): string;
11
+ export declare function checkEditionSupport(executeFunctions: IExecuteFunctions, resource: string, operation: string, peOnlyOperations: Set<string>): void;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeThingsBoardRequest = makeThingsBoardRequest;
4
+ exports.getThingsBoardCredentials = getThingsBoardCredentials;
5
+ exports.getAccessToken = getAccessToken;
6
+ exports.getEdition = getEdition;
7
+ exports.checkEditionSupport = checkEditionSupport;
8
+ const n8n_workflow_1 = require("n8n-workflow");
9
+ const helpers_1 = require("./helpers");
10
+ async function makeThingsBoardRequest(executeFunctions, options, baseUrl, token) {
11
+ var _a, _b, _c;
12
+ const { method, endpoint, qs, body } = options;
13
+ const cleanedQs = qs ? (0, helpers_1.cleanQueryString)(qs) : undefined;
14
+ const requestOptions = {
15
+ method,
16
+ url: `${baseUrl}${endpoint}`,
17
+ headers: {
18
+ 'X-Authorization': `Bearer ${token}`,
19
+ },
20
+ json: true,
21
+ returnFullResponse: true,
22
+ };
23
+ if (cleanedQs && Object.keys(cleanedQs).length > 0) {
24
+ requestOptions.qs = cleanedQs;
25
+ }
26
+ if (body && Object.keys(body).length > 0) {
27
+ requestOptions.body = body;
28
+ }
29
+ try {
30
+ const response = await executeFunctions.helpers.httpRequest(requestOptions);
31
+ if (response.statusCode >= 400) {
32
+ const errorMessage = ((_a = response.body) === null || _a === void 0 ? void 0 : _a.message) || ((_b = response.body) === null || _b === void 0 ? void 0 : _b.error) || `HTTP ${response.statusCode} error`;
33
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `ThingsBoard API error: ${errorMessage} (Status: ${response.statusCode})`, {
34
+ description: `Endpoint: ${method} ${endpoint}`,
35
+ });
36
+ }
37
+ return response.body;
38
+ }
39
+ catch (error) {
40
+ if ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('ThingsBoard API error')) {
41
+ throw error;
42
+ }
43
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Failed to connect to ThingsBoard API: ${error.message}`, {
44
+ description: `Endpoint: ${method} ${endpoint}`,
45
+ });
46
+ }
47
+ }
48
+ async function getThingsBoardCredentials(executeFunctions) {
49
+ const credentials = await executeFunctions.getCredentials('thingsBoardApi');
50
+ if (!credentials || !credentials.baseUrl) {
51
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), 'ThingsBoard credential `baseUrl` is missing. Open the node credentials and set the base URL (e.g. http://localhost:8080)');
52
+ }
53
+ return {
54
+ baseUrl: credentials.baseUrl.replace(/\/+$/g, ''),
55
+ username: credentials.username,
56
+ password: credentials.password,
57
+ };
58
+ }
59
+ async function getAccessToken(executeFunctions) {
60
+ const staticData = executeFunctions.getWorkflowStaticData('node');
61
+ const credentials = await getThingsBoardCredentials(executeFunctions);
62
+ const now = Date.now();
63
+ const cachedToken = staticData.token;
64
+ const tokenExpiry = staticData.tokenExpiry;
65
+ if (cachedToken && tokenExpiry && now < tokenExpiry) {
66
+ return cachedToken;
67
+ }
68
+ try {
69
+ const authResponse = await executeFunctions.helpers.httpRequest({
70
+ method: 'POST',
71
+ url: `${credentials.baseUrl}/api/auth/login`,
72
+ body: {
73
+ username: credentials.username,
74
+ password: credentials.password,
75
+ },
76
+ json: true,
77
+ });
78
+ const token = authResponse.token;
79
+ if (!token) {
80
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), 'Failed to authenticate with ThingsBoard: No token received');
81
+ }
82
+ staticData.token = token;
83
+ staticData.tokenExpiry = now + 20 * 60 * 1000;
84
+ try {
85
+ const systemInfo = await executeFunctions.helpers.httpRequest({
86
+ method: 'GET',
87
+ url: `${credentials.baseUrl}/api/system/info`,
88
+ headers: { 'X-Authorization': `Bearer ${token}` },
89
+ json: true,
90
+ });
91
+ const edition = systemInfo.edition || 'CE';
92
+ staticData.edition = edition === 'PAAS' ? 'PE' : edition;
93
+ }
94
+ catch {
95
+ staticData.edition = 'CE';
96
+ }
97
+ return token;
98
+ }
99
+ catch (error) {
100
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Failed to authenticate with ThingsBoard: ${error.message}`, {
101
+ description: 'Check your credentials (username and password)',
102
+ });
103
+ }
104
+ }
105
+ function getEdition(executeFunctions) {
106
+ const staticData = executeFunctions.getWorkflowStaticData('node');
107
+ return staticData.edition || 'CE';
108
+ }
109
+ function checkEditionSupport(executeFunctions, resource, operation, peOnlyOperations) {
110
+ const edition = getEdition(executeFunctions);
111
+ const key = `${resource}:${operation}`;
112
+ if (edition === 'CE' && peOnlyOperations.has(key)) {
113
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Operation "${operation}" for resource "${resource}" is available only in ThingsBoard PE edition.`);
114
+ }
115
+ }
116
+ //# sourceMappingURL=requestHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestHandler.js","sourceRoot":"","sources":["../../../../nodes/thingsboard/utils/requestHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IResourceHandler } from './types';
2
+ export declare class ResourceRegistry {
3
+ private static handlers;
4
+ static getHandler(resource: string): IResourceHandler;
5
+ }