@sakibcoolz/core 0.1.2 → 0.2.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 (142) hide show
  1. package/README.md +67 -7
  2. package/dist/acquisition.d.ts +29 -0
  3. package/dist/acquisition.d.ts.map +1 -0
  4. package/dist/acquisition.js +30 -0
  5. package/dist/acquisition.js.map +1 -0
  6. package/dist/assembly.d.ts +5 -2
  7. package/dist/assembly.d.ts.map +1 -1
  8. package/dist/assembly.js +7 -4
  9. package/dist/assembly.js.map +1 -1
  10. package/dist/attach.d.ts +4 -2
  11. package/dist/attach.d.ts.map +1 -1
  12. package/dist/attach.js +5 -3
  13. package/dist/attach.js.map +1 -1
  14. package/dist/clipboard.d.ts +6 -4
  15. package/dist/clipboard.d.ts.map +1 -1
  16. package/dist/clipboard.js +25 -4
  17. package/dist/clipboard.js.map +1 -1
  18. package/dist/collision.d.ts +2 -2
  19. package/dist/collision.js.map +1 -1
  20. package/dist/digest.d.ts +9 -0
  21. package/dist/digest.d.ts.map +1 -0
  22. package/dist/digest.js +68 -0
  23. package/dist/digest.js.map +1 -0
  24. package/dist/flow.d.ts +3 -2
  25. package/dist/flow.d.ts.map +1 -1
  26. package/dist/flow.js.map +1 -1
  27. package/dist/graph.d.ts +67 -7
  28. package/dist/graph.d.ts.map +1 -1
  29. package/dist/graph.js +195 -10
  30. package/dist/graph.js.map +1 -1
  31. package/dist/index.d.ts +13 -6
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +7 -3
  34. package/dist/index.js.map +1 -1
  35. package/dist/observation.d.ts +1 -1
  36. package/dist/observation.d.ts.map +1 -1
  37. package/dist/observation.js +4 -1
  38. package/dist/observation.js.map +1 -1
  39. package/dist/routing.d.ts +6 -3
  40. package/dist/routing.d.ts.map +1 -1
  41. package/dist/routing.js +12 -2
  42. package/dist/routing.js.map +1 -1
  43. package/dist/scene.d.ts +245 -5
  44. package/dist/scene.d.ts.map +1 -1
  45. package/dist/scene.js +94 -3
  46. package/dist/scene.js.map +1 -1
  47. package/dist/serialization.d.ts +7 -7
  48. package/dist/serialization.d.ts.map +1 -1
  49. package/dist/serialization.js +120 -8
  50. package/dist/serialization.js.map +1 -1
  51. package/dist/snapping.d.ts +2 -2
  52. package/dist/snapping.d.ts.map +1 -1
  53. package/dist/snapping.js +10 -7
  54. package/dist/snapping.js.map +1 -1
  55. package/dist/status.d.ts +56 -0
  56. package/dist/status.d.ts.map +1 -0
  57. package/dist/status.js +114 -0
  58. package/dist/status.js.map +1 -0
  59. package/dist/tags.d.ts +52 -0
  60. package/dist/tags.d.ts.map +1 -0
  61. package/dist/tags.js +103 -0
  62. package/dist/tags.js.map +1 -0
  63. package/dist/telemetry.d.ts +42 -4
  64. package/dist/telemetry.d.ts.map +1 -1
  65. package/dist/telemetry.js +84 -8
  66. package/dist/telemetry.js.map +1 -1
  67. package/dist/touching.d.ts +2 -2
  68. package/dist/touching.d.ts.map +1 -1
  69. package/dist/touching.js +7 -4
  70. package/dist/touching.js.map +1 -1
  71. package/dist/units.js +1 -1
  72. package/dist/units.js.map +1 -1
  73. package/dist/upgrade.d.ts +2 -2
  74. package/dist/upgrade.js.map +1 -1
  75. package/dist/validation.d.ts +33 -6
  76. package/dist/validation.d.ts.map +1 -1
  77. package/dist/validation.js +806 -39
  78. package/dist/validation.js.map +1 -1
  79. package/package.json +4 -2
  80. package/schema/fixtures/invalid/association-without-relationship.scene.json +69 -0
  81. package/schema/fixtures/invalid/binding-kind.scene.json +14 -0
  82. package/schema/fixtures/invalid/command-zero-step.scene.json +105 -0
  83. package/schema/fixtures/invalid/empty-name.scene.json +30 -0
  84. package/schema/fixtures/invalid/expected.json +70 -0
  85. package/schema/fixtures/invalid/extension-not-namespaced.scene.json +10 -0
  86. package/schema/fixtures/invalid/extension-prototype-key.scene.json +12 -0
  87. package/schema/fixtures/invalid/missing-document-type.scene.json +6 -0
  88. package/schema/fixtures/invalid/non-string-label.scene.json +32 -0
  89. package/schema/fixtures/invalid/underlay-opacity.scene.json +17 -0
  90. package/schema/fixtures/invalid/unknown-component-kind.scene.json +29 -0
  91. package/schema/fixtures/invalid/unknown-relationship.scene.json +63 -0
  92. package/schema/fixtures/invalid/unknown-root-field.scene.json +8 -0
  93. package/schema/fixtures/invalid/unsupported-version.scene.json +7 -0
  94. package/schema/fixtures/invalid/view-rotation.scene.json +139 -0
  95. package/schema/fixtures/invalid/writable-string.scene.json +93 -0
  96. package/schema/fixtures/invalid/writable-without-limits.scene.json +100 -0
  97. package/schema/fixtures/invalid/zero-scale.scene.json +29 -0
  98. package/schema/fixtures/migration/README.md +18 -0
  99. package/schema/fixtures/migration/v1-demo.scene.json +160 -0
  100. package/schema/fixtures/migration/v1-demo.v4.json +198 -0
  101. package/schema/fixtures/migration/v2-demo.scene.json +244 -0
  102. package/schema/fixtures/migration/v2-demo.v4.json +245 -0
  103. package/schema/fixtures/migration/v2-generated-12.scene.json +473 -0
  104. package/schema/fixtures/migration/v2-generated-12.v4.json +474 -0
  105. package/schema/fixtures/migration/v3-demo.scene.json +244 -0
  106. package/schema/fixtures/migration/v3-demo.v4.json +245 -0
  107. package/schema/fixtures/migration/v3-generated-12.scene.json +473 -0
  108. package/schema/fixtures/migration/v3-generated-12.v4.json +474 -0
  109. package/schema/fixtures/migration/v3-mostly-connected-plant.scene.json +386 -0
  110. package/schema/fixtures/migration/v3-mostly-connected-plant.v4.json +387 -0
  111. package/schema/fixtures/migration/v3-open-joints-plant.scene.json +288 -0
  112. package/schema/fixtures/migration/v3-open-joints-plant.v4.json +289 -0
  113. package/schema/fixtures/migration/v3-unconnected-plant.scene.json +14 -0
  114. package/schema/fixtures/migration/v3-unconnected-plant.v4.json +276 -0
  115. package/schema/fixtures/projection/acquisition.plan.json +50 -0
  116. package/schema/fixtures/projection/control-line.plan.json +86 -0
  117. package/schema/fixtures/valid/acquisition.scene.json +117 -0
  118. package/schema/fixtures/valid/associations.scene.json +79 -0
  119. package/schema/fixtures/valid/commands.scene.json +155 -0
  120. package/schema/fixtures/valid/control-line.scene.json +210 -0
  121. package/schema/fixtures/valid/empty.scene.json +7 -0
  122. package/schema/fixtures/valid/identity-and-extensions.scene.json +96 -0
  123. package/schema/fixtures/valid/tank-valve-line.scene.json +89 -0
  124. package/schema/fixtures/valid/views.scene.json +139 -0
  125. package/schema/fixtures/validator-only/association-id-reuses-connection.scene.json +70 -0
  126. package/schema/fixtures/validator-only/association-unknown-component.scene.json +70 -0
  127. package/schema/fixtures/validator-only/command-max-below-min.scene.json +104 -0
  128. package/schema/fixtures/validator-only/command-out-of-type-range.scene.json +97 -0
  129. package/schema/fixtures/validator-only/connection-domain-mismatch.scene.json +63 -0
  130. package/schema/fixtures/validator-only/credential-in-connection.scene.json +66 -0
  131. package/schema/fixtures/validator-only/credential-in-extension.scene.json +14 -0
  132. package/schema/fixtures/validator-only/credential-label.scene.json +32 -0
  133. package/schema/fixtures/validator-only/duplicate-component-id.scene.json +50 -0
  134. package/schema/fixtures/validator-only/endpoint-with-credentials.scene.json +74 -0
  135. package/schema/fixtures/validator-only/expected.json +66 -0
  136. package/schema/fixtures/validator-only/modbus-coil-float.scene.json +100 -0
  137. package/schema/fixtures/validator-only/non-unit-rotation.scene.json +29 -0
  138. package/schema/fixtures/validator-only/unknown-data-source.scene.json +100 -0
  139. package/schema/fixtures/validator-only/unknown-port.scene.json +62 -0
  140. package/schema/fixtures/validator-only/unregistered-host-type.scene.json +29 -0
  141. package/schema/fixtures/validator-only/view-unknown-component.scene.json +143 -0
  142. package/schema/industrial-scene.v4.schema.json +365 -0
@@ -0,0 +1,387 @@
1
+ {
2
+ "schemaVersion": 4,
3
+ "documentType": "industrial.scene",
4
+ "units": "m",
5
+ "components": [
6
+ {
7
+ "id": "7ea70e68-e4fe-4695-92ff-44ae1c2f5d9a",
8
+ "type": "pipe",
9
+ "position": {
10
+ "x": -2,
11
+ "y": 1,
12
+ "z": 2
13
+ },
14
+ "rotation": {
15
+ "x": 0,
16
+ "y": 0,
17
+ "z": 0,
18
+ "w": 1
19
+ },
20
+ "scale": {
21
+ "x": 1,
22
+ "y": 1,
23
+ "z": 1
24
+ },
25
+ "properties": {
26
+ "length": 2
27
+ }
28
+ },
29
+ {
30
+ "id": "599284d5-b930-4356-b141-313b32d17962",
31
+ "type": "tank",
32
+ "position": {
33
+ "x": -4.2,
34
+ "y": 1.9000000000000001,
35
+ "z": 2
36
+ },
37
+ "rotation": {
38
+ "x": 0,
39
+ "y": 0,
40
+ "z": 0,
41
+ "w": 1
42
+ },
43
+ "scale": {
44
+ "x": 1,
45
+ "y": 1,
46
+ "z": 1
47
+ },
48
+ "properties": {
49
+ "level": 57,
50
+ "temperature": 0
51
+ }
52
+ },
53
+ {
54
+ "id": "387d9686-87ee-4b6d-93f1-6c9685aec88f",
55
+ "type": "pump",
56
+ "position": {
57
+ "x": -0.4,
58
+ "y": 1,
59
+ "z": 2
60
+ },
61
+ "rotation": {
62
+ "x": 0,
63
+ "y": 0,
64
+ "z": 0,
65
+ "w": 1
66
+ },
67
+ "scale": {
68
+ "x": 1,
69
+ "y": 1,
70
+ "z": 1
71
+ },
72
+ "properties": {}
73
+ },
74
+ {
75
+ "id": "27f2fdec-fd9b-4a80-a552-71e439ef4963",
76
+ "type": "pipe",
77
+ "position": {
78
+ "x": -0.10000000000000012,
79
+ "y": 2.1,
80
+ "z": 2
81
+ },
82
+ "rotation": {
83
+ "x": 0.5,
84
+ "y": 0.5,
85
+ "z": 0.4999999999999999,
86
+ "w": 0.5000000000000001
87
+ },
88
+ "scale": {
89
+ "x": 1,
90
+ "y": 1,
91
+ "z": 1
92
+ },
93
+ "properties": {
94
+ "length": 1
95
+ }
96
+ },
97
+ {
98
+ "id": "5e795ebd-6021-445a-a1be-2b70fbb73160",
99
+ "type": "tank",
100
+ "position": {
101
+ "x": 1.3289999999999997,
102
+ "y": 2.029,
103
+ "z": 1.9999999999999993
104
+ },
105
+ "rotation": {
106
+ "x": 0,
107
+ "y": 2.3551386880256624e-16,
108
+ "z": -1.1102230246251568e-16,
109
+ "w": 1
110
+ },
111
+ "scale": {
112
+ "x": 1,
113
+ "y": 1,
114
+ "z": 1
115
+ },
116
+ "properties": {
117
+ "level": 45,
118
+ "temperature": 90
119
+ }
120
+ },
121
+ {
122
+ "id": "a4fe8c7d-2da7-421f-9dcf-f019043c7de4",
123
+ "type": "elbow",
124
+ "position": {
125
+ "x": -0.09999999999999987,
126
+ "y": 2.829,
127
+ "z": 2
128
+ },
129
+ "rotation": {
130
+ "x": 0.7071067811865476,
131
+ "y": 0.7071067811865474,
132
+ "z": -2.4503807662796213e-16,
133
+ "w": -8.802883075958474e-17
134
+ },
135
+ "scale": {
136
+ "x": 1,
137
+ "y": 1,
138
+ "z": 1
139
+ },
140
+ "properties": {}
141
+ },
142
+ {
143
+ "id": "23e5e29b-d22a-4ab2-977c-811cb829b6b7",
144
+ "type": "tee",
145
+ "position": {
146
+ "x": -5.543,
147
+ "y": 2.7,
148
+ "z": 2
149
+ },
150
+ "rotation": {
151
+ "x": 0.5000000000000001,
152
+ "y": 0.5000000000000002,
153
+ "z": -0.49999999999999983,
154
+ "w": 0.4999999999999999
155
+ },
156
+ "scale": {
157
+ "x": 1,
158
+ "y": 1,
159
+ "z": 1
160
+ },
161
+ "properties": {}
162
+ },
163
+ {
164
+ "id": "701a8e06-67d0-44cd-8e96-82951c55e4bf",
165
+ "type": "pipe",
166
+ "position": {
167
+ "x": -5.543,
168
+ "y": 2.6999999999999997,
169
+ "z": 3.143
170
+ },
171
+ "rotation": {
172
+ "x": 2.1588771306901904e-16,
173
+ "y": -0.7071067811865476,
174
+ "z": -2.158877130690191e-16,
175
+ "w": 0.7071067811865475
176
+ },
177
+ "scale": {
178
+ "x": 1,
179
+ "y": 1,
180
+ "z": 1
181
+ },
182
+ "properties": {
183
+ "length": 2
184
+ }
185
+ },
186
+ {
187
+ "id": "f0884444-0934-4eb5-aec4-240aa340c233",
188
+ "type": "elbow",
189
+ "position": {
190
+ "x": -5.543,
191
+ "y": 2.7,
192
+ "z": 1.6280000000000001
193
+ },
194
+ "rotation": {
195
+ "x": 2.1588771306901904e-16,
196
+ "y": 0.7071067811865476,
197
+ "z": 2.158877130690191e-16,
198
+ "w": 0.7071067811865475
199
+ },
200
+ "scale": {
201
+ "x": 1,
202
+ "y": 1,
203
+ "z": 1
204
+ },
205
+ "properties": {}
206
+ },
207
+ {
208
+ "id": "e078f9ff-8fcd-4446-839b-0a4371a899a3",
209
+ "type": "elbow",
210
+ "position": {
211
+ "x": -5.543,
212
+ "y": 2.6999999999999993,
213
+ "z": 4.372
214
+ },
215
+ "rotation": {
216
+ "x": -0.49999999999999994,
217
+ "y": -0.4999999999999998,
218
+ "z": -0.5000000000000003,
219
+ "w": 0.5
220
+ },
221
+ "scale": {
222
+ "x": 1,
223
+ "y": 1,
224
+ "z": 1
225
+ },
226
+ "properties": {}
227
+ },
228
+ {
229
+ "id": "5e436f79-da8b-4e5f-8868-0bcb19186c16",
230
+ "type": "pipe",
231
+ "position": {
232
+ "x": -4.814,
233
+ "y": 2.6999999999999993,
234
+ "z": 4.372
235
+ },
236
+ "rotation": {
237
+ "x": 0,
238
+ "y": -8.326672684688674e-17,
239
+ "z": -2.220446049250313e-16,
240
+ "w": 1
241
+ },
242
+ "scale": {
243
+ "x": 1,
244
+ "y": 1,
245
+ "z": 1
246
+ },
247
+ "properties": {
248
+ "length": 1
249
+ }
250
+ },
251
+ {
252
+ "id": "300597ae-b83c-44d6-9538-e7e47b8ce870",
253
+ "type": "tank",
254
+ "position": {
255
+ "x": -3.1140000000000008,
256
+ "y": 1.8999999999999986,
257
+ "z": 4.372
258
+ },
259
+ "rotation": {
260
+ "x": 0,
261
+ "y": -8.326672684688674e-17,
262
+ "z": -2.220446049250313e-16,
263
+ "w": 1
264
+ },
265
+ "scale": {
266
+ "x": 1,
267
+ "y": 1,
268
+ "z": 1
269
+ },
270
+ "properties": {
271
+ "level": 45
272
+ }
273
+ }
274
+ ],
275
+ "connections": [
276
+ {
277
+ "id": "c1",
278
+ "from": {
279
+ "instanceId": "23e5e29b-d22a-4ab2-977c-811cb829b6b7",
280
+ "portId": "branch"
281
+ },
282
+ "to": {
283
+ "instanceId": "599284d5-b930-4356-b141-313b32d17962",
284
+ "portId": "inlet"
285
+ }
286
+ },
287
+ {
288
+ "id": "c2",
289
+ "from": {
290
+ "instanceId": "23e5e29b-d22a-4ab2-977c-811cb829b6b7",
291
+ "portId": "left"
292
+ },
293
+ "to": {
294
+ "instanceId": "701a8e06-67d0-44cd-8e96-82951c55e4bf",
295
+ "portId": "in"
296
+ }
297
+ },
298
+ {
299
+ "id": "c3",
300
+ "from": {
301
+ "instanceId": "23e5e29b-d22a-4ab2-977c-811cb829b6b7",
302
+ "portId": "right"
303
+ },
304
+ "to": {
305
+ "instanceId": "f0884444-0934-4eb5-aec4-240aa340c233",
306
+ "portId": "in"
307
+ }
308
+ },
309
+ {
310
+ "id": "c4",
311
+ "from": {
312
+ "instanceId": "27f2fdec-fd9b-4a80-a552-71e439ef4963",
313
+ "portId": "in"
314
+ },
315
+ "to": {
316
+ "instanceId": "387d9686-87ee-4b6d-93f1-6c9685aec88f",
317
+ "portId": "discharge"
318
+ }
319
+ },
320
+ {
321
+ "id": "c5",
322
+ "from": {
323
+ "instanceId": "27f2fdec-fd9b-4a80-a552-71e439ef4963",
324
+ "portId": "out"
325
+ },
326
+ "to": {
327
+ "instanceId": "a4fe8c7d-2da7-421f-9dcf-f019043c7de4",
328
+ "portId": "in"
329
+ }
330
+ },
331
+ {
332
+ "id": "c6",
333
+ "from": {
334
+ "instanceId": "300597ae-b83c-44d6-9538-e7e47b8ce870",
335
+ "portId": "inlet"
336
+ },
337
+ "to": {
338
+ "instanceId": "5e436f79-da8b-4e5f-8868-0bcb19186c16",
339
+ "portId": "out"
340
+ }
341
+ },
342
+ {
343
+ "id": "c7",
344
+ "from": {
345
+ "instanceId": "387d9686-87ee-4b6d-93f1-6c9685aec88f",
346
+ "portId": "suction"
347
+ },
348
+ "to": {
349
+ "instanceId": "7ea70e68-e4fe-4695-92ff-44ae1c2f5d9a",
350
+ "portId": "out"
351
+ }
352
+ },
353
+ {
354
+ "id": "c8",
355
+ "from": {
356
+ "instanceId": "599284d5-b930-4356-b141-313b32d17962",
357
+ "portId": "outlet"
358
+ },
359
+ "to": {
360
+ "instanceId": "7ea70e68-e4fe-4695-92ff-44ae1c2f5d9a",
361
+ "portId": "in"
362
+ }
363
+ },
364
+ {
365
+ "id": "c9",
366
+ "from": {
367
+ "instanceId": "5e436f79-da8b-4e5f-8868-0bcb19186c16",
368
+ "portId": "in"
369
+ },
370
+ "to": {
371
+ "instanceId": "e078f9ff-8fcd-4446-839b-0a4371a899a3",
372
+ "portId": "out"
373
+ }
374
+ },
375
+ {
376
+ "id": "c10",
377
+ "from": {
378
+ "instanceId": "5e795ebd-6021-445a-a1be-2b70fbb73160",
379
+ "portId": "inlet"
380
+ },
381
+ "to": {
382
+ "instanceId": "a4fe8c7d-2da7-421f-9dcf-f019043c7de4",
383
+ "portId": "out"
384
+ }
385
+ }
386
+ ]
387
+ }
@@ -0,0 +1,288 @@
1
+ {
2
+ "schemaVersion": 3,
3
+ "units": "m",
4
+ "components": [
5
+ {
6
+ "id": "tank",
7
+ "type": "tank",
8
+ "parentId": "valve-b",
9
+ "position": {
10
+ "x": -2.8000000000000003,
11
+ "y": 1.535,
12
+ "z": 0
13
+ },
14
+ "rotation": {
15
+ "x": 0,
16
+ "y": 0,
17
+ "z": 0,
18
+ "w": 1
19
+ },
20
+ "scale": {
21
+ "x": 1,
22
+ "y": 1,
23
+ "z": 1
24
+ },
25
+ "properties": {
26
+ "level": 60
27
+ }
28
+ },
29
+ {
30
+ "id": "valve",
31
+ "type": "valve",
32
+ "parentId": "valve-b",
33
+ "position": {
34
+ "x": -1.0000000000000004,
35
+ "y": 0.6349999999999999,
36
+ "z": 0
37
+ },
38
+ "rotation": {
39
+ "x": 0,
40
+ "y": 0,
41
+ "z": 0,
42
+ "w": 1
43
+ },
44
+ "scale": {
45
+ "x": 1,
46
+ "y": 1,
47
+ "z": 1
48
+ },
49
+ "properties": {
50
+ "open": true
51
+ }
52
+ },
53
+ {
54
+ "id": "pipe",
55
+ "type": "pipe",
56
+ "parentId": "valve-b",
57
+ "position": {
58
+ "x": 0.600000000000001,
59
+ "y": 0.6349999999999999,
60
+ "z": 0
61
+ },
62
+ "rotation": {
63
+ "x": 0,
64
+ "y": 0,
65
+ "z": 0,
66
+ "w": 1
67
+ },
68
+ "scale": {
69
+ "x": 1,
70
+ "y": 1,
71
+ "z": 1
72
+ },
73
+ "properties": {}
74
+ },
75
+ {
76
+ "id": "tee",
77
+ "type": "tee",
78
+ "parentId": "valve-b",
79
+ "position": {
80
+ "x": 2.6,
81
+ "y": 0.6349999999999999,
82
+ "z": 0
83
+ },
84
+ "rotation": {
85
+ "x": 3.885780586188047e-16,
86
+ "y": -0.7071067811865474,
87
+ "z": -0.7071067811865478,
88
+ "w": -4.440892098500625e-16
89
+ },
90
+ "scale": {
91
+ "x": 1,
92
+ "y": 1,
93
+ "z": 1
94
+ },
95
+ "properties": {}
96
+ },
97
+ {
98
+ "id": "valve-a",
99
+ "type": "valve",
100
+ "parentId": "valve-b",
101
+ "position": {
102
+ "x": 4.199999999999996,
103
+ "y": 0.6349999999999999,
104
+ "z": 0
105
+ },
106
+ "rotation": {
107
+ "x": 0,
108
+ "y": 0,
109
+ "z": 0,
110
+ "w": 1
111
+ },
112
+ "scale": {
113
+ "x": 1,
114
+ "y": 1,
115
+ "z": 1
116
+ },
117
+ "properties": {
118
+ "open": true
119
+ }
120
+ },
121
+ {
122
+ "id": "valve-b",
123
+ "type": "valve",
124
+ "position": {
125
+ "x": 2.6,
126
+ "y": 0.65,
127
+ "z": 1.6
128
+ },
129
+ "rotation": {
130
+ "x": 0,
131
+ "y": -0.7071067811865475,
132
+ "z": 1.1102230246251563e-16,
133
+ "w": 0.7071067811865475
134
+ },
135
+ "scale": {
136
+ "x": 1,
137
+ "y": 1,
138
+ "z": 1
139
+ },
140
+ "properties": {
141
+ "open": true
142
+ }
143
+ },
144
+ {
145
+ "id": "v3",
146
+ "type": "valve",
147
+ "position": {
148
+ "x": -4.6000000000000005,
149
+ "y": 2.35,
150
+ "z": 0
151
+ },
152
+ "rotation": {
153
+ "x": 0,
154
+ "y": 0,
155
+ "z": 0,
156
+ "w": 1
157
+ },
158
+ "scale": {
159
+ "x": 1,
160
+ "y": 1,
161
+ "z": 1
162
+ },
163
+ "properties": {
164
+ "open": true
165
+ }
166
+ },
167
+ {
168
+ "id": "motor",
169
+ "type": "motor",
170
+ "position": {
171
+ "x": 16.8,
172
+ "y": 0.38,
173
+ "z": 0
174
+ },
175
+ "rotation": {
176
+ "x": 0,
177
+ "y": 0,
178
+ "z": 0,
179
+ "w": 1
180
+ },
181
+ "scale": {
182
+ "x": 1,
183
+ "y": 1,
184
+ "z": 1
185
+ },
186
+ "properties": {}
187
+ },
188
+ {
189
+ "id": "sensor",
190
+ "type": "sensor",
191
+ "position": {
192
+ "x": 1.308733549771195,
193
+ "y": 0.3,
194
+ "z": -2.875216936834527
195
+ },
196
+ "rotation": {
197
+ "x": 0,
198
+ "y": 0,
199
+ "z": 0,
200
+ "w": 1
201
+ },
202
+ "scale": {
203
+ "x": 1,
204
+ "y": 1,
205
+ "z": 1
206
+ },
207
+ "properties": {}
208
+ },
209
+ {
210
+ "id": "pump",
211
+ "type": "pump",
212
+ "position": {
213
+ "x": 5.4,
214
+ "y": 0.6000000000000001,
215
+ "z": 0
216
+ },
217
+ "rotation": {
218
+ "x": 0,
219
+ "y": 0,
220
+ "z": 0,
221
+ "w": 1
222
+ },
223
+ "scale": {
224
+ "x": 1,
225
+ "y": 1,
226
+ "z": 1
227
+ },
228
+ "properties": {}
229
+ }
230
+ ],
231
+ "connections": [
232
+ {
233
+ "id": "tank-valve",
234
+ "from": {
235
+ "instanceId": "tank",
236
+ "portId": "outlet"
237
+ },
238
+ "to": {
239
+ "instanceId": "valve",
240
+ "portId": "in"
241
+ }
242
+ },
243
+ {
244
+ "id": "valve-pipe",
245
+ "from": {
246
+ "instanceId": "valve",
247
+ "portId": "out"
248
+ },
249
+ "to": {
250
+ "instanceId": "pipe",
251
+ "portId": "in"
252
+ }
253
+ },
254
+ {
255
+ "id": "pipe-tee",
256
+ "from": {
257
+ "instanceId": "pipe",
258
+ "portId": "out"
259
+ },
260
+ "to": {
261
+ "instanceId": "tee",
262
+ "portId": "left"
263
+ }
264
+ },
265
+ {
266
+ "id": "tee-a",
267
+ "from": {
268
+ "instanceId": "tee",
269
+ "portId": "right"
270
+ },
271
+ "to": {
272
+ "instanceId": "valve-a",
273
+ "portId": "in"
274
+ }
275
+ },
276
+ {
277
+ "id": "tee-b",
278
+ "from": {
279
+ "instanceId": "tee",
280
+ "portId": "branch"
281
+ },
282
+ "to": {
283
+ "instanceId": "valve-b",
284
+ "portId": "in"
285
+ }
286
+ }
287
+ ]
288
+ }