@gudhub/core 1.0.37

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 (67) hide show
  1. package/GUDHUB/Auth/Auth.js +137 -0
  2. package/GUDHUB/Auth/Auth.test.js +15 -0
  3. package/GUDHUB/Managers/ChunksManager/ChunksManager.js +80 -0
  4. package/GUDHUB/Managers/ChunksManager/ChunksManager.test.js +46 -0
  5. package/GUDHUB/Managers/DocumentManager/DocumentManager.js +48 -0
  6. package/GUDHUB/Managers/FileManager/FileManager.js +208 -0
  7. package/GUDHUB/Managers/FileManager/file_manager.test.js +17 -0
  8. package/GUDHUB/Managers/managers.js +5 -0
  9. package/GUDHUB/PipeService/PipeService.js +167 -0
  10. package/GUDHUB/PipeService/PipeService.test.js +64 -0
  11. package/GUDHUB/PipeService/utils.js +32 -0
  12. package/GUDHUB/Processors/AppProcessor/AppProcessor.js +433 -0
  13. package/GUDHUB/Processors/AppProcessor/AppProcessor.test.js +38 -0
  14. package/GUDHUB/Processors/AppProcessor/AppProcessorMocks.js +83 -0
  15. package/GUDHUB/Processors/FieldProcessor/FieldProcessor.js +139 -0
  16. package/GUDHUB/Processors/FieldProcessor/FieldProcessor.test.js +16 -0
  17. package/GUDHUB/Processors/FieldProcessor/Untitled-1.json +17 -0
  18. package/GUDHUB/Processors/FieldProcessor/field_processor.md +85 -0
  19. package/GUDHUB/Processors/ItemProcessor/ItemProcessor.js +247 -0
  20. package/GUDHUB/Processors/ItemProcessor/item_processor.md +50 -0
  21. package/GUDHUB/Processors/processors.js +5 -0
  22. package/GUDHUB/Storage/Storage.js +115 -0
  23. package/GUDHUB/Storage/Storage.test.js +112 -0
  24. package/GUDHUB/Utils/Utils.js +153 -0
  25. package/GUDHUB/Utils/compare_items_lists_worker/compare_items_lists.worker.js +50 -0
  26. package/GUDHUB/Utils/filter/filter.js +308 -0
  27. package/GUDHUB/Utils/filter/filter.test.js +94 -0
  28. package/GUDHUB/Utils/filter/filterPreparation.js +103 -0
  29. package/GUDHUB/Utils/filter/group.js +41 -0
  30. package/GUDHUB/Utils/filter/utils.js +119 -0
  31. package/GUDHUB/Utils/get_date/get_date.js +90 -0
  32. package/GUDHUB/Utils/get_date/get_date.test.js +53 -0
  33. package/GUDHUB/Utils/interpretation/interpretation.js +100 -0
  34. package/GUDHUB/Utils/json_constructor/json_constructor.js +130 -0
  35. package/GUDHUB/Utils/json_constructor/json_constructor.test.js +70 -0
  36. package/GUDHUB/Utils/json_to_items/json_to_items.js +161 -0
  37. package/GUDHUB/Utils/json_to_items/json_to_items.test.js +85 -0
  38. package/GUDHUB/Utils/merge_chunks/merge_chunks.js +30 -0
  39. package/GUDHUB/Utils/merge_compare_items/merge_compare_items.js +316 -0
  40. package/GUDHUB/Utils/merge_compare_items/merge_compare_items.test.js +632 -0
  41. package/GUDHUB/Utils/merge_objects/merge_objects.js +120 -0
  42. package/GUDHUB/Utils/merge_objects/merge_objects.test.js +137 -0
  43. package/GUDHUB/Utils/nested_list/nested_list.js +38 -0
  44. package/GUDHUB/Utils/nested_list/nested_list.test.js +70 -0
  45. package/GUDHUB/Utils/populate_items/populate_items.js +66 -0
  46. package/GUDHUB/WebSocket/WebSocket.js +136 -0
  47. package/GUDHUB/config.js +8 -0
  48. package/GUDHUB/consts.js +1 -0
  49. package/GUDHUB/gudhub-https-service.js +193 -0
  50. package/GUDHUB/gudhub.js +477 -0
  51. package/GUDHUB/gudhub.test.js +218 -0
  52. package/GUDHUB/utils.js +25 -0
  53. package/Readme.md +537 -0
  54. package/fake_server/fake_java_server.js +112 -0
  55. package/fake_server/fake_server_data/app_132.js +3037 -0
  56. package/fake_server/fake_server_data/app_16259.js +1152 -0
  57. package/fake_server/fake_server_data/app_214.js +2057 -0
  58. package/fake_server/fake_server_data/app_8263.js +4167 -0
  59. package/fake_server/fake_server_data/chunks_mocks/bcacjbgqorherqmtykrj_8263.js +44561 -0
  60. package/fake_server/fake_server_data/chunks_mocks/bcjyuoqaewybudfyhir_8263.js +44197 -0
  61. package/fake_server/fake_server_data/chunks_mocks/tpajkpolmzklodcba_8263.js +44977 -0
  62. package/fake_server/fake_server_data/fake_server_data.js +111 -0
  63. package/index.js +3 -0
  64. package/indexUMD.js +5 -0
  65. package/package.json +45 -0
  66. package/umd/library.min.js +186 -0
  67. package/umd/library.min.js.map +1 -0
@@ -0,0 +1,632 @@
1
+ import should from "should";
2
+ import {GudHub} from './../../gudhub.js';
3
+
4
+ describe("COMPARE/MERGE ITEMS", function () {
5
+ const gudhub = new GudHub();
6
+
7
+ it("MERGE ITEMS : By Item_id We merge items with four different items, the items length should be 4", function () {
8
+ //-- checking it items has the same length before we send them
9
+ gudhub.mergeItems(new_src, dst).length.should.equal(4);
10
+ });
11
+
12
+ it("MERGE ITEMS : By Item_id Length of items should be 2 and length of fields should be 4", function () {
13
+ //-- checking it items has the same length before we send them
14
+ gudhub.mergeItems(src, dst).length.should.equal(2);
15
+
16
+ //-- We updte two field so each item should have two fiwlds only
17
+ gudhub.mergeItems(src, dst).forEach((item) => {
18
+ item.should.property("fields");
19
+ item.fields.length.should.equal(5);
20
+ });
21
+ });
22
+
23
+ it('MERGE ITEMS: By Item_id Value of first item should be "8888" and the second item should have "9999"', function () {
24
+ //-- checking it items has the same length before we send them
25
+ gudhub.mergeItems(src, dst).length.should.equal(2);
26
+
27
+ //-- We updte two field so each item should have two fiwlds only
28
+ gudhub.mergeItems(src, dst).forEach((item) => {
29
+ item.should.property("fields");
30
+
31
+ if (item.item_id == 987336) {
32
+ item.fields
33
+ .find((field) => field.element_id == 223754)
34
+ .should.have.property("field_value", "8888");
35
+ item.fields
36
+ .find((field) => field.element_id == 228464)
37
+ .should.have.property("field_value", "333");
38
+ }
39
+
40
+ if (item.item_id == 1003970) {
41
+ item.fields
42
+ .find((field) => field.element_id == 228464)
43
+ .should.have.property("field_value", "9999");
44
+ item.fields
45
+ .find((field) => field.element_id == 223754)
46
+ .should.have.property("field_value", "111");
47
+ }
48
+ });
49
+ });
50
+
51
+ it("MERGE ITEMS : By Field_id Length of items should be 2 and length of fields should be 4", function () {
52
+ //-- checking it items has the same length before we send them
53
+ gudhub.mergeItems(src, dst).length.should.equal(2);
54
+
55
+ //-- We updte two field so each item should have two fiwlds only
56
+ gudhub.mergeItems(src, dst).forEach((item) => {
57
+ item.should.property("fields");
58
+ item.fields.length.should.equal(5);
59
+ });
60
+ });
61
+
62
+ it('MERGE ITEMS: By Field_id Value of first item should be "8888" and the second item should have "9999"', function () {
63
+ //-- checking it items has the same length before we send them
64
+ gudhub.mergeItems(src, dst, 223755).length.should.equal(2);
65
+
66
+ //-- We updte two field so each item should have two fiwlds only
67
+ gudhub.mergeItems(src, dst, 223755).forEach((item) => {
68
+ item.should.property("fields");
69
+
70
+ if (item.item_id == 987336) {
71
+ let fieldToCheck = item.fields
72
+ .find((field) => field.element_id == 223754);
73
+ fieldToCheck.should.have.property("field_value", "8888");
74
+ fieldToCheck.should.have.property("history");
75
+ fieldToCheck.history.length.should.equal(2);
76
+ item.fields
77
+ .find((field) => field.element_id == 228464)
78
+ .should.have.property("field_value", "333");
79
+ }
80
+
81
+ if (item.item_id == 1003970) {
82
+ item.fields
83
+ .find((field) => field.element_id == 228464)
84
+ .should.have.property("field_value", "9999");
85
+ item.fields
86
+ .find((field) => field.element_id == 223754)
87
+ .should.have.property("field_value", "111");
88
+ }
89
+ });
90
+ });
91
+
92
+ it("COMPARE ITEMS : Items are different no new items", function () {
93
+ let result = gudhub.compareItems(src, dst);
94
+ result.new_src_items.length.should.equal(0);
95
+ result.diff_src_items.length.should.equal(2);
96
+ result.same_items.length.should.equal(0);
97
+ result.is_items_diff.should.equal(true);
98
+ });
99
+
100
+ it("COMPARE ITEMS : By item_id Items are the same", function () {
101
+ let result = gudhub.compareItems(dst, dst);
102
+ result.new_src_items.length.should.equal(0);
103
+ result.diff_src_items.length.should.equal(0);
104
+ result.same_items.length.should.equal(2);
105
+ result.is_items_diff.should.equal(false);
106
+ });
107
+
108
+ it("COMPARE ITEMS : By item_id without item_id property Items are the same", function () {
109
+ let result = gudhub.compareItems(src, no_itemid);
110
+ result.new_src_items.length.should.equal(2);
111
+ result.diff_src_items.length.should.equal(0);
112
+ result.same_items.length.should.equal(0);
113
+ result.is_items_diff.should.equal(true);
114
+ });
115
+
116
+ it("COMPARE ITEMS : By field_id Items are the same", function () {
117
+ let result = gudhub.compareItems(dst, dst, 223755);
118
+ result.new_src_items.length.should.equal(0);
119
+ result.diff_src_items.length.should.equal(0);
120
+ result.same_items.length.should.equal(2);
121
+ result.is_items_diff.should.equal(false);
122
+ });
123
+
124
+ it("COMPARE ITEMS : By item_id Items have different value", function () {
125
+ let result = gudhub.compareItems(src, value_dif);
126
+ result.new_src_items.length.should.equal(0);
127
+ result.diff_src_items.length.should.equal(1);
128
+ result.same_items.length.should.equal(1);
129
+ result.is_items_diff.should.equal(true);
130
+ });
131
+
132
+ it("COMPARE ITEMS : By field_id Items have different value", function () {
133
+ let result = gudhub.compareItems(src, value_dif, 223755);
134
+ result.new_src_items.length.should.equal(0);
135
+ result.diff_src_items.length.should.equal(1);
136
+ result.same_items.length.should.equal(1);
137
+ result.is_items_diff.should.equal(true);
138
+ });
139
+
140
+ it("COMPARE ITEMS : By item_id Items have new item", function () {
141
+ let result = gudhub.compareItems(aditional_item, src);
142
+ result.new_src_items.length.should.equal(1);
143
+ result.diff_src_items.length.should.equal(0);
144
+ result.same_items.length.should.equal(2);
145
+ result.is_items_diff.should.equal(true);
146
+ });
147
+
148
+ it("COMPARE ITEMS : By field_id Items have new item", function () {
149
+ let result = gudhub.compareItems(aditional_item, src, 223755);
150
+ result.new_src_items.length.should.equal(1);
151
+ result.diff_src_items.length.should.equal(0);
152
+ result.same_items.length.should.equal(2);
153
+ result.is_items_diff.should.equal(true);
154
+ });
155
+
156
+ it("COMPARE ITEMS : By field_id Items have null in field that we compare", function () {
157
+ let result = gudhub.compareItems(src, src_null, 223755);
158
+ result.new_src_items.length.should.equal(1);
159
+ result.diff_src_items.length.should.equal(1);
160
+ result.same_items.length.should.equal(0);
161
+ result.is_items_diff.should.equal(true);
162
+ });
163
+
164
+ it("POPULATE WITH ITEM REF : when field with refs exists", function () {
165
+ let result = gudhub.populateWithItemRef(
166
+ srcItemsWithRefs,
167
+ 421,
168
+ dstItemsToRefs,
169
+ 422,
170
+ 423,
171
+ 333
172
+ );
173
+
174
+ result.forEach((item) => {
175
+ item.should.property("fields");
176
+
177
+ item.fields.forEach((field) => {
178
+ if (field.field_id == 22 && field.field_value == "222") {
179
+ item.fields
180
+ .find((field) => field.field_id == 423)
181
+ .should.have.property("field_value", "333.22222");
182
+ }
183
+ });
184
+ });
185
+ });
186
+
187
+ it("POPULATE WITH ITEM REF : when field with refs doesnt exists", function () {
188
+ let result = gudhub.populateWithItemRef(
189
+ srcItemsWithRefs,
190
+ 421,
191
+ dstItemsToRefsWithoutReff,
192
+ 422,
193
+ 423,
194
+ 333
195
+ );
196
+
197
+ result.forEach((item) => {
198
+ item.should.property("fields");
199
+
200
+ item.fields.forEach((field) => {
201
+ if (field.field_id == 22 && field.field_value == "222") {
202
+ item.fields
203
+ .find((field) => field.field_id == 423)
204
+ .should.have.property("field_value", "333.22222");
205
+ }
206
+ });
207
+ });
208
+ });
209
+ });
210
+
211
+
212
+
213
+
214
+ /*---------------------- MOCKS-----------------------*/
215
+ let src = [
216
+ {
217
+ item_id: 987336,
218
+ index_number: 7,
219
+ last_update: 1584550861000,
220
+ fields: [
221
+ {
222
+ field_id: 223754,
223
+ element_id: 223754,
224
+ field_value: "8888",
225
+ history: [{timestamp: 1606334666000, field_value: "8888"}]
226
+ },
227
+ {
228
+ field_id: 223755,
229
+ element_id: 223755,
230
+ field_value: "555",
231
+ },
232
+ ],
233
+ },
234
+ {
235
+ item_id: 1003970,
236
+ index_number: 8,
237
+ last_update: 1584707835000,
238
+ fields: [
239
+ {
240
+ field_id: 228464,
241
+ element_id: 228464,
242
+ field_value: "9999",
243
+ },
244
+ {
245
+ field_id: 223755,
246
+ element_id: 223755,
247
+ field_value: "666",
248
+ },
249
+ ],
250
+ },
251
+ ];
252
+
253
+
254
+ let src_null = [
255
+ {
256
+ item_id: 987336,
257
+ index_number: 7,
258
+ last_update: 1584550861000,
259
+ fields: [
260
+ {
261
+ field_id: 223754,
262
+ element_id: 223754,
263
+ field_value: null,
264
+ history: [{timestamp: 1606334666000, field_value: "8888"}]
265
+ },
266
+ {
267
+ field_id: 223755,
268
+ element_id: 223755,
269
+ field_value: "555",
270
+ },
271
+ ],
272
+ },
273
+ {
274
+ item_id: 1003970,
275
+ index_number: 8,
276
+ last_update: 1584707835000,
277
+ fields: [
278
+ {
279
+ field_id: 228464,
280
+ element_id: 228464,
281
+ field_value: "9999",
282
+ },
283
+ {
284
+ field_id: 223755,
285
+ element_id: 223755,
286
+ },
287
+ ],
288
+ },
289
+ ];
290
+
291
+ let new_src = [
292
+ {
293
+ item_id: 987446,
294
+ index_number: 7,
295
+ last_update: 1584550861000,
296
+ fields: [
297
+ {
298
+ field_id: 223754,
299
+ element_id: 223754,
300
+ field_value: "8888",
301
+ history: [{timestamp: 1606334666000, field_value: "8888"}]
302
+ },
303
+ {
304
+ field_id: 223755,
305
+ element_id: 223755,
306
+ field_value: "555",
307
+ },
308
+ ],
309
+ },
310
+ {
311
+ item_id: 1003440,
312
+ index_number: 8,
313
+ last_update: 1584707835000,
314
+ fields: [
315
+ {
316
+ field_id: 228464,
317
+ element_id: 228464,
318
+ field_value: "9999",
319
+ },
320
+ {
321
+ field_id: 223755,
322
+ element_id: 223755,
323
+ field_value: "666",
324
+ },
325
+ ],
326
+ },
327
+ {
328
+ item_id: 1003970,
329
+ index_number: 8,
330
+ last_update: 1584707835000,
331
+ fields: [
332
+ {
333
+ field_id: 223714,
334
+ element_id: 223714,
335
+ field_value: "test",
336
+ data_id: 5755743,
337
+ },
338
+ {
339
+ field_id: 223740,
340
+ element_id: 223740,
341
+ field_value: "2",
342
+ data_id: 5755745,
343
+ },
344
+ {
345
+ field_id: 223754,
346
+ element_id: 223754,
347
+ field_value: "111",
348
+ data_id: 5755744,
349
+ },
350
+ {
351
+ field_id: 228464,
352
+ element_id: 228464,
353
+ field_value: "222",
354
+ data_id: 5755747,
355
+ },
356
+ {
357
+ field_id: 223755,
358
+ element_id: 223755,
359
+ field_value: "666",
360
+ },
361
+ ],
362
+ },
363
+ ];
364
+
365
+ let no_itemid = [
366
+ {
367
+ fields: [
368
+ {
369
+ field_id: 223754,
370
+ element_id: 223754,
371
+ field_value: "8888",
372
+ },
373
+ {
374
+ field_id: 223755,
375
+ element_id: 223755,
376
+ field_value: "555",
377
+ },
378
+ ],
379
+ },
380
+ {
381
+ fields: [
382
+ {
383
+ field_id: 228464,
384
+ element_id: 228464,
385
+ field_value: "9999",
386
+ },
387
+ {
388
+ field_id: 223755,
389
+ element_id: 223755,
390
+ field_value: "666",
391
+ },
392
+ ],
393
+ },
394
+ ];
395
+
396
+ let value_dif = [
397
+ {
398
+ item_id: 987336,
399
+ index_number: 7,
400
+ last_update: 1584550861000,
401
+ fields: [
402
+ {
403
+ field_id: 223754,
404
+ element_id: 223754,
405
+ field_value: "8888",
406
+ },
407
+ {
408
+ field_id: 223755,
409
+ element_id: 223755,
410
+ field_value: "555",
411
+ },
412
+ ],
413
+ },
414
+ {
415
+ item_id: 1003970,
416
+ index_number: 8,
417
+ last_update: 1584707835000,
418
+ fields: [
419
+ {
420
+ field_id: 228464,
421
+ element_id: 228464,
422
+ field_value: "7777",
423
+ },
424
+ {
425
+ field_id: 223755,
426
+ element_id: 223755,
427
+ field_value: "666",
428
+ },
429
+ ],
430
+ },
431
+ ];
432
+
433
+ let aditional_item = [
434
+ {
435
+ item_id: 987336,
436
+ index_number: 7,
437
+ last_update: 1584550861000,
438
+ fields: [
439
+ {
440
+ field_id: 223754,
441
+ element_id: 223754,
442
+ field_value: "8888",
443
+ },
444
+ {
445
+ field_id: 223755,
446
+ element_id: 223755,
447
+ field_value: "555",
448
+ },
449
+ ],
450
+ },
451
+ {
452
+ item_id: 1003970,
453
+ index_number: 8,
454
+ last_update: 1584707835000,
455
+ fields: [
456
+ {
457
+ field_id: 228464,
458
+ element_id: 228464,
459
+ field_value: "9999",
460
+ },
461
+ {
462
+ field_id: 223755,
463
+ element_id: 223755,
464
+ field_value: "666",
465
+ },
466
+ ],
467
+ },
468
+ {
469
+ item_id: 1003980,
470
+ index_number: 8,
471
+ last_update: 1584707835000,
472
+ fields: [
473
+ {
474
+ field_id: 228464,
475
+ element_id: 228464,
476
+ field_value: "9999",
477
+ },
478
+ {
479
+ field_id: 223755,
480
+ element_id: 223755,
481
+ field_value: "777",
482
+ },
483
+ ],
484
+ },
485
+ ];
486
+
487
+ let dst = [
488
+ {
489
+ item_id: 987336,
490
+ index_number: 7,
491
+ last_update: 1584550861000,
492
+ fields: [
493
+ {
494
+ field_id: 223754,
495
+ element_id: 223754,
496
+ field_value: "666",
497
+ data_id: 5680729,
498
+ history: [{timestamp: 1606334665000, field_value: "666"}]
499
+ },
500
+ {
501
+ field_id: 223714,
502
+ element_id: 223714,
503
+ field_value: "test",
504
+ data_id: 5680730,
505
+ },
506
+ {
507
+ field_id: 223740,
508
+ element_id: 223740,
509
+ field_value: "1",
510
+ data_id: 5680731,
511
+ },
512
+ {
513
+ field_id: 228464,
514
+ element_id: 228464,
515
+ field_value: "333",
516
+ data_id: 5755746,
517
+ },
518
+ {
519
+ field_id: 223755,
520
+ element_id: 223755,
521
+ field_value: "555",
522
+ },
523
+ ],
524
+ },
525
+ {
526
+ item_id: 1003970,
527
+ index_number: 8,
528
+ last_update: 1584707835000,
529
+ fields: [
530
+ {
531
+ field_id: 223714,
532
+ element_id: 223714,
533
+ field_value: "test",
534
+ data_id: 5755743,
535
+ },
536
+ {
537
+ field_id: 223740,
538
+ element_id: 223740,
539
+ field_value: "2",
540
+ data_id: 5755745,
541
+ },
542
+ {
543
+ field_id: 223754,
544
+ element_id: 223754,
545
+ field_value: "111",
546
+ data_id: 5755744,
547
+ },
548
+ {
549
+ field_id: 228464,
550
+ element_id: 228464,
551
+ field_value: "222",
552
+ data_id: 5755747,
553
+ },
554
+ {
555
+ field_id: 223755,
556
+ element_id: 223755,
557
+ field_value: "666",
558
+ },
559
+ ],
560
+ },
561
+ ];
562
+
563
+ var srcItemsWithRefs = [
564
+ {
565
+ item_id: 11111,
566
+ fields: [
567
+ {
568
+ field_id: 421,
569
+ field_value: "111",
570
+ },
571
+ ],
572
+ },
573
+ {
574
+ item_id: 22222,
575
+ fields: [
576
+ {
577
+ field_id: 421,
578
+ field_value: "222",
579
+ },
580
+ ],
581
+ },
582
+ ];
583
+
584
+ var dstItemsToRefs = [
585
+ {
586
+ item_id: 0,
587
+ fields: [
588
+ {
589
+ field_id: 422,
590
+ field_value: "111",
591
+ },
592
+ {
593
+ field_id: 423,
594
+ field_value: "",
595
+ },
596
+ ],
597
+ },
598
+ {
599
+ item_id: 0,
600
+ fields: [
601
+ {
602
+ field_id: 422,
603
+ field_value: "222",
604
+ },
605
+ {
606
+ field_id: 423,
607
+ field_value: "",
608
+ },
609
+ ],
610
+ },
611
+ ];
612
+
613
+ var dstItemsToRefsWithoutReff = [
614
+ {
615
+ item_id: 0,
616
+ fields: [
617
+ {
618
+ field_id: 422,
619
+ field_value: "111",
620
+ },
621
+ ],
622
+ },
623
+ {
624
+ item_id: 0,
625
+ fields: [
626
+ {
627
+ field_id: 422,
628
+ field_value: "222",
629
+ },
630
+ ],
631
+ },
632
+ ];