gremlin 3.7.0 → 3.7.1

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 (76) hide show
  1. package/doc/AnonymousTraversalSource.html +1 -1
  2. package/doc/Authenticator.html +1 -1
  3. package/doc/Bytecode.html +1 -1
  4. package/doc/CardinalityValue.html +5 -5
  5. package/doc/Client.html +41 -8
  6. package/doc/Connection.html +41 -8
  7. package/doc/DriverRemoteConnection.html +44 -11
  8. package/doc/EdgeLabelVerificationStrategy.html +1 -1
  9. package/doc/Graph.html +1 -1
  10. package/doc/GraphSON2Reader.html +1 -1
  11. package/doc/GraphSON2Writer.html +1 -1
  12. package/doc/GraphSON3Reader.html +1 -1
  13. package/doc/GraphSON3Writer.html +1 -1
  14. package/doc/GraphTraversal.html +4305 -297
  15. package/doc/GraphTraversalSource.html +1 -1
  16. package/doc/HaltedTraverserStrategy.html +1 -1
  17. package/doc/MatchAlgorithmStrategy.html +1 -1
  18. package/doc/P.html +1 -1
  19. package/doc/PartitionStrategy.html +1 -1
  20. package/doc/Path.html +1 -1
  21. package/doc/PlainTextSaslAuthenticator.html +1 -1
  22. package/doc/ProductiveByStrategy.html +1 -1
  23. package/doc/RemoteConnection.html +1 -1
  24. package/doc/RemoteStrategy.html +1 -1
  25. package/doc/RemoteTraversal.html +1 -1
  26. package/doc/ReservedKeysVerificationStrategy.html +1 -1
  27. package/doc/ResponseError.html +1 -1
  28. package/doc/ResultSet.html +1 -1
  29. package/doc/SaslAuthenticator.html +1 -1
  30. package/doc/SaslMechanismBase.html +1 -1
  31. package/doc/SaslMechanismPlain.html +1 -1
  32. package/doc/SeedStrategy.html +1 -1
  33. package/doc/SubgraphStrategy.html +1 -1
  34. package/doc/TextP.html +1 -1
  35. package/doc/Transaction.html +1 -1
  36. package/doc/Translator.html +1 -1
  37. package/doc/TraversalStrategies.html +1 -1
  38. package/doc/TraversalStrategy.html +1 -1
  39. package/doc/TypeSerializer.html +1 -1
  40. package/doc/driver_auth_authenticator.js.html +1 -1
  41. package/doc/driver_auth_mechanisms_sasl-mechanism-base.js.html +1 -1
  42. package/doc/driver_auth_mechanisms_sasl-mechanism-plain.js.html +1 -1
  43. package/doc/driver_auth_plain-text-sasl-authenticator.js.html +1 -1
  44. package/doc/driver_auth_sasl-authenticator.js.html +1 -1
  45. package/doc/driver_client.js.html +2 -1
  46. package/doc/driver_connection.js.html +12 -1
  47. package/doc/driver_driver-remote-connection.js.html +2 -1
  48. package/doc/driver_remote-connection.js.html +1 -1
  49. package/doc/driver_response-error.js.html +1 -1
  50. package/doc/driver_result-set.js.html +1 -1
  51. package/doc/global.html +3 -3
  52. package/doc/index.html +1 -1
  53. package/doc/module.exports.html +1 -1
  54. package/doc/process_anonymous-traversal.js.html +1 -1
  55. package/doc/process_bytecode.js.html +1 -1
  56. package/doc/process_graph-traversal.js.html +258 -1
  57. package/doc/process_transaction.js.html +1 -1
  58. package/doc/process_translator.js.html +1 -1
  59. package/doc/process_traversal-strategy.js.html +1 -1
  60. package/doc/process_traversal.js.html +2 -1
  61. package/doc/structure_graph.js.html +1 -1
  62. package/doc/structure_io_binary_internals_DataType.js.html +2 -1
  63. package/doc/structure_io_binary_internals_GraphBinaryReader.js.html +1 -1
  64. package/doc/structure_io_binary_internals_GraphBinaryWriter.js.html +1 -1
  65. package/doc/structure_io_graph-serializer.js.html +1 -1
  66. package/doc/structure_io_type-serializers.js.html +1 -1
  67. package/index.js +1 -0
  68. package/lib/driver/client.js +1 -0
  69. package/lib/driver/connection.js +11 -0
  70. package/lib/driver/driver-remote-connection.js +1 -0
  71. package/lib/process/graph-traversal.js +257 -0
  72. package/lib/process/traversal.js +1 -0
  73. package/lib/structure/io/binary/internals/DataType.js +1 -0
  74. package/lib/structure/io/binary/internals/EnumSerializer.js +1 -0
  75. package/lib/utils.js +1 -1
  76. package/package.json +2 -2
@@ -414,6 +414,16 @@ class GraphTraversal extends Traversal {
414
414
  return this;
415
415
  }
416
416
 
417
+ /**
418
+ * Graph traversal all method.
419
+ * @param {...Object} args
420
+ * @returns {GraphTraversal}
421
+ */
422
+ all(...args) {
423
+ this.bytecode.addStep('all', args);
424
+ return this;
425
+ }
426
+
417
427
  /**
418
428
  * Graph traversal and method.
419
429
  * @param {...Object} args
@@ -424,6 +434,16 @@ class GraphTraversal extends Traversal {
424
434
  return this;
425
435
  }
426
436
 
437
+ /**
438
+ * Graph traversal any method.
439
+ * @param {...Object} args
440
+ * @returns {GraphTraversal}
441
+ */
442
+ any(...args) {
443
+ this.bytecode.addStep('any', args);
444
+ return this;
445
+ }
446
+
427
447
  /**
428
448
  * Graph traversal as method.
429
449
  * @param {...Object} args
@@ -434,6 +454,26 @@ class GraphTraversal extends Traversal {
434
454
  return this;
435
455
  }
436
456
 
457
+ /**
458
+ * Graph traversal asDate method.
459
+ * @param {...Object} args
460
+ * @returns {GraphTraversal}
461
+ */
462
+ asDate(...args) {
463
+ this.bytecode.addStep('asDate', args);
464
+ return this;
465
+ }
466
+
467
+ /**
468
+ * Graph traversal asString method.
469
+ * @param {...Object} args
470
+ * @returns {GraphTraversal}
471
+ */
472
+ asString(...args) {
473
+ this.bytecode.addStep('asString', args);
474
+ return this;
475
+ }
476
+
437
477
  /**
438
478
  * Graph traversal barrier method.
439
479
  * @param {...Object} args
@@ -543,6 +583,16 @@ class GraphTraversal extends Traversal {
543
583
  return this;
544
584
  }
545
585
 
586
+ /**
587
+ * Graph traversal combine method.
588
+ * @param {...Object} args
589
+ * @returns {GraphTraversal}
590
+ */
591
+ combine(...args) {
592
+ this.bytecode.addStep('combine', args);
593
+ return this;
594
+ }
595
+
546
596
  /**
547
597
  * Graph traversal concat method.
548
598
  * @param {...Object} args
@@ -553,6 +603,16 @@ class GraphTraversal extends Traversal {
553
603
  return this;
554
604
  }
555
605
 
606
+ /**
607
+ * Graph traversal conjoin method.
608
+ * @param {...Object} args
609
+ * @returns {GraphTraversal}
610
+ */
611
+ conjoin(...args) {
612
+ this.bytecode.addStep('conjoin', args);
613
+ return this;
614
+ }
615
+
556
616
  /**
557
617
  * Graph traversal connectedComponent method.
558
618
  * @param {...Object} args
@@ -593,6 +653,26 @@ class GraphTraversal extends Traversal {
593
653
  return this;
594
654
  }
595
655
 
656
+ /**
657
+ * Graph traversal dateAdd method.
658
+ * @param {...Object} args
659
+ * @returns {GraphTraversal}
660
+ */
661
+ dateAdd(...args) {
662
+ this.bytecode.addStep('dateAdd', args);
663
+ return this;
664
+ }
665
+
666
+ /**
667
+ * Graph traversal dateDiff method.
668
+ * @param {...Object} args
669
+ * @returns {GraphTraversal}
670
+ */
671
+ dateDiff(...args) {
672
+ this.bytecode.addStep('dateDiff', args);
673
+ return this;
674
+ }
675
+
596
676
  /**
597
677
  * Graph traversal dedup method.
598
678
  * @param {...Object} args
@@ -603,6 +683,26 @@ class GraphTraversal extends Traversal {
603
683
  return this;
604
684
  }
605
685
 
686
+ /**
687
+ * Graph traversal difference method.
688
+ * @param {...Object} args
689
+ * @returns {GraphTraversal}
690
+ */
691
+ difference(...args) {
692
+ this.bytecode.addStep('difference', args);
693
+ return this;
694
+ }
695
+
696
+ /**
697
+ * Graph traversal disjunct method.
698
+ * @param {...Object} args
699
+ * @returns {GraphTraversal}
700
+ */
701
+ disjunct(...args) {
702
+ this.bytecode.addStep('disjunct', args);
703
+ return this;
704
+ }
705
+
606
706
  /**
607
707
  * Graph traversal drop method.
608
708
  * @param {...Object} args
@@ -682,6 +782,16 @@ class GraphTraversal extends Traversal {
682
782
  return this;
683
783
  }
684
784
 
785
+ /**
786
+ * Graph traversal format method.
787
+ * @param {...Object} args
788
+ * @returns {GraphTraversal}
789
+ */
790
+ format(...args) {
791
+ this.bytecode.addStep('format', args);
792
+ return this;
793
+ }
794
+
685
795
  /**
686
796
  * Graph traversal from method.
687
797
  * @param {...Object} args
@@ -842,6 +952,16 @@ class GraphTraversal extends Traversal {
842
952
  return this;
843
953
  }
844
954
 
955
+ /**
956
+ * Graph traversal intersect method.
957
+ * @param {...Object} args
958
+ * @returns {GraphTraversal}
959
+ */
960
+ intersect(...args) {
961
+ this.bytecode.addStep('intersect', args);
962
+ return this;
963
+ }
964
+
845
965
  /**
846
966
  * Graph traversal is method.
847
967
  * @param {...Object} args
@@ -872,6 +992,16 @@ class GraphTraversal extends Traversal {
872
992
  return this;
873
993
  }
874
994
 
995
+ /**
996
+ * Graph traversal length method.
997
+ * @param {...Object} args
998
+ * @returns {GraphTraversal}
999
+ */
1000
+ length(...args) {
1001
+ this.bytecode.addStep('length', args);
1002
+ return this;
1003
+ }
1004
+
875
1005
  /**
876
1006
  * Graph traversal limit method.
877
1007
  * @param {...Object} args
@@ -902,6 +1032,16 @@ class GraphTraversal extends Traversal {
902
1032
  return this;
903
1033
  }
904
1034
 
1035
+ /**
1036
+ * Graph traversal lTrim method.
1037
+ * @param {...Object} args
1038
+ * @returns {GraphTraversal}
1039
+ */
1040
+ lTrim(...args) {
1041
+ this.bytecode.addStep('lTrim', args);
1042
+ return this;
1043
+ }
1044
+
905
1045
  /**
906
1046
  * Graph traversal map method.
907
1047
  * @param {...Object} args
@@ -952,6 +1092,16 @@ class GraphTraversal extends Traversal {
952
1092
  return this;
953
1093
  }
954
1094
 
1095
+ /**
1096
+ * Graph traversal merge method.
1097
+ * @param {...Object} args
1098
+ * @returns {GraphTraversal}
1099
+ */
1100
+ merge(...args) {
1101
+ this.bytecode.addStep('merge', args);
1102
+ return this;
1103
+ }
1104
+
955
1105
  /**
956
1106
  * Graph traversal mergeE method.
957
1107
  * @param {...Object} args
@@ -1112,6 +1262,16 @@ class GraphTraversal extends Traversal {
1112
1262
  return this;
1113
1263
  }
1114
1264
 
1265
+ /**
1266
+ * Graph traversal product method.
1267
+ * @param {...Object} args
1268
+ * @returns {GraphTraversal}
1269
+ */
1270
+ product(...args) {
1271
+ this.bytecode.addStep('product', args);
1272
+ return this;
1273
+ }
1274
+
1115
1275
  /**
1116
1276
  * Graph traversal profile method.
1117
1277
  * @param {...Object} args
@@ -1202,6 +1362,36 @@ class GraphTraversal extends Traversal {
1202
1362
  return this;
1203
1363
  }
1204
1364
 
1365
+ /**
1366
+ * Graph traversal replace method.
1367
+ * @param {...Object} args
1368
+ * @returns {GraphTraversal}
1369
+ */
1370
+ replace(...args) {
1371
+ this.bytecode.addStep('replace', args);
1372
+ return this;
1373
+ }
1374
+
1375
+ /**
1376
+ * Graph traversal reverse method.
1377
+ * @param {...Object} args
1378
+ * @returns {GraphTraversal}
1379
+ */
1380
+ reverse(...args) {
1381
+ this.bytecode.addStep('reverse', args);
1382
+ return this;
1383
+ }
1384
+
1385
+ /**
1386
+ * Graph traversal rTrim method.
1387
+ * @param {...Object} args
1388
+ * @returns {GraphTraversal}
1389
+ */
1390
+ rTrim(...args) {
1391
+ this.bytecode.addStep('rTrim', args);
1392
+ return this;
1393
+ }
1394
+
1205
1395
  /**
1206
1396
  * Graph traversal sack method.
1207
1397
  * @param {...Object} args
@@ -1272,6 +1462,16 @@ class GraphTraversal extends Traversal {
1272
1462
  return this;
1273
1463
  }
1274
1464
 
1465
+ /**
1466
+ * Graph traversal split method.
1467
+ * @param {...Object} args
1468
+ * @returns {GraphTraversal}
1469
+ */
1470
+ split(...args) {
1471
+ this.bytecode.addStep('split', args);
1472
+ return this;
1473
+ }
1474
+
1275
1475
  /**
1276
1476
  * Graph traversal store method.
1277
1477
  * @param {...Object} args
@@ -1292,6 +1492,16 @@ class GraphTraversal extends Traversal {
1292
1492
  return this;
1293
1493
  }
1294
1494
 
1495
+ /**
1496
+ * Graph traversal subgraph method.
1497
+ * @param {...Object} args
1498
+ * @returns {GraphTraversal}
1499
+ */
1500
+ substring(...args) {
1501
+ this.bytecode.addStep('substring', args);
1502
+ return this;
1503
+ }
1504
+
1295
1505
  /**
1296
1506
  * Graph traversal sum method.
1297
1507
  * @param {...Object} args
@@ -1352,6 +1562,26 @@ class GraphTraversal extends Traversal {
1352
1562
  return this;
1353
1563
  }
1354
1564
 
1565
+ /**
1566
+ * Graph traversal toLower method.
1567
+ * @param {...Object} args
1568
+ * @returns {GraphTraversal}
1569
+ */
1570
+ toLower(...args) {
1571
+ this.bytecode.addStep('toLower', args);
1572
+ return this;
1573
+ }
1574
+
1575
+ /**
1576
+ * Graph traversal toUpper method.
1577
+ * @param {...Object} args
1578
+ * @returns {GraphTraversal}
1579
+ */
1580
+ toUpper(...args) {
1581
+ this.bytecode.addStep('toUpper', args);
1582
+ return this;
1583
+ }
1584
+
1355
1585
  /**
1356
1586
  * Graph traversal toV method.
1357
1587
  * @param {...Object} args
@@ -1372,6 +1602,16 @@ class GraphTraversal extends Traversal {
1372
1602
  return this;
1373
1603
  }
1374
1604
 
1605
+ /**
1606
+ * Graph traversal trim method.
1607
+ * @param {...Object} args
1608
+ * @returns {GraphTraversal}
1609
+ */
1610
+ trim(...args) {
1611
+ this.bytecode.addStep('trim', args);
1612
+ return this;
1613
+ }
1614
+
1375
1615
  /**
1376
1616
  * Graph traversal unfold method.
1377
1617
  * @param {...Object} args
@@ -1517,8 +1757,12 @@ const statics = {
1517
1757
  addE: (...args) => callOnEmptyTraversal('addE', args),
1518
1758
  addV: (...args) => callOnEmptyTraversal('addV', args),
1519
1759
  aggregate: (...args) => callOnEmptyTraversal('aggregate', args),
1760
+ all: (...args) => callOnEmptyTraversal('all', args),
1520
1761
  and: (...args) => callOnEmptyTraversal('and', args),
1762
+ any: (...args) => callOnEmptyTraversal('any', args),
1521
1763
  as: (...args) => callOnEmptyTraversal('as', args),
1764
+ asDate: (...args) => callOnEmptyTraversal('asDate', args),
1765
+ asString: (...args) => callOnEmptyTraversal('asString', args),
1522
1766
  barrier: (...args) => callOnEmptyTraversal('barrier', args),
1523
1767
  both: (...args) => callOnEmptyTraversal('both', args),
1524
1768
  bothE: (...args) => callOnEmptyTraversal('bothE', args),
@@ -1533,6 +1777,8 @@ const statics = {
1533
1777
  constant: (...args) => callOnEmptyTraversal('constant', args),
1534
1778
  count: (...args) => callOnEmptyTraversal('count', args),
1535
1779
  cyclicPath: (...args) => callOnEmptyTraversal('cyclicPath', args),
1780
+ dateAdd: (...args) => callOnEmptyTraversal('dateAdd', args),
1781
+ dateDiff: (...args) => callOnEmptyTraversal('dateDiff', args),
1536
1782
  dedup: (...args) => callOnEmptyTraversal('dedup', args),
1537
1783
  drop: (...args) => callOnEmptyTraversal('drop', args),
1538
1784
  element: (...args) => callOnEmptyTraversal('element', args),
@@ -1542,6 +1788,7 @@ const statics = {
1542
1788
  filter: (...args) => callOnEmptyTraversal('filter', args),
1543
1789
  flatMap: (...args) => callOnEmptyTraversal('flatMap', args),
1544
1790
  fold: (...args) => callOnEmptyTraversal('fold', args),
1791
+ format: (...args) => callOnEmptyTraversal('format', args),
1545
1792
  group: (...args) => callOnEmptyTraversal('group', args),
1546
1793
  groupCount: (...args) => callOnEmptyTraversal('groupCount', args),
1547
1794
  has: (...args) => callOnEmptyTraversal('has', args),
@@ -1560,9 +1807,11 @@ const statics = {
1560
1807
  is: (...args) => callOnEmptyTraversal('is', args),
1561
1808
  key: (...args) => callOnEmptyTraversal('key', args),
1562
1809
  label: (...args) => callOnEmptyTraversal('label', args),
1810
+ length: (...args) => callOnEmptyTraversal('length', args),
1563
1811
  limit: (...args) => callOnEmptyTraversal('limit', args),
1564
1812
  local: (...args) => callOnEmptyTraversal('local', args),
1565
1813
  loops: (...args) => callOnEmptyTraversal('loops', args),
1814
+ lTrim: (...args) => callOnEmptyTraversal('lTrim', args),
1566
1815
  map: (...args) => callOnEmptyTraversal('map', args),
1567
1816
  match: (...args) => callOnEmptyTraversal('match', args),
1568
1817
  math: (...args) => callOnEmptyTraversal('math', args),
@@ -1586,22 +1835,30 @@ const statics = {
1586
1835
  propertyMap: (...args) => callOnEmptyTraversal('propertyMap', args),
1587
1836
  range: (...args) => callOnEmptyTraversal('range', args),
1588
1837
  repeat: (...args) => callOnEmptyTraversal('repeat', args),
1838
+ replace: (...args) => callOnEmptyTraversal('replace', args),
1839
+ reverse: (...args) => callOnEmptyTraversal('reverse', args),
1840
+ rTrim: (...args) => callOnEmptyTraversal('rTrim', args),
1589
1841
  sack: (...args) => callOnEmptyTraversal('sack', args),
1590
1842
  sample: (...args) => callOnEmptyTraversal('sample', args),
1591
1843
  select: (...args) => callOnEmptyTraversal('select', args),
1592
1844
  sideEffect: (...args) => callOnEmptyTraversal('sideEffect', args),
1593
1845
  simplePath: (...args) => callOnEmptyTraversal('simplePath', args),
1594
1846
  skip: (...args) => callOnEmptyTraversal('skip', args),
1847
+ split: (...args) => callOnEmptyTraversal('split', args),
1595
1848
  store: (...args) => callOnEmptyTraversal('store', args),
1596
1849
  subgraph: (...args) => callOnEmptyTraversal('subgraph', args),
1850
+ substring: (...args) => callOnEmptyTraversal('substring', args),
1597
1851
  sum: (...args) => callOnEmptyTraversal('sum', args),
1598
1852
  tail: (...args) => callOnEmptyTraversal('tail', args),
1599
1853
  timeLimit: (...args) => callOnEmptyTraversal('timeLimit', args),
1600
1854
  times: (...args) => callOnEmptyTraversal('times', args),
1601
1855
  to: (...args) => callOnEmptyTraversal('to', args),
1602
1856
  toE: (...args) => callOnEmptyTraversal('toE', args),
1857
+ toLower: (...args) => callOnEmptyTraversal('toLower', args),
1858
+ toUpper: (...args) => callOnEmptyTraversal('toUpper', args),
1603
1859
  toV: (...args) => callOnEmptyTraversal('toV', args),
1604
1860
  tree: (...args) => callOnEmptyTraversal('tree', args),
1861
+ trim: (...args) => callOnEmptyTraversal('trim', args),
1605
1862
  unfold: (...args) => callOnEmptyTraversal('unfold', args),
1606
1863
  union: (...args) => callOnEmptyTraversal('union', args),
1607
1864
  until: (...args) => callOnEmptyTraversal('until', args),
@@ -511,6 +511,7 @@ module.exports = {
511
511
  cardinality: toEnum('Cardinality', 'list set single'),
512
512
  column: toEnum('Column', 'keys values'),
513
513
  direction: toDirectionEnum('Direction', 'BOTH IN OUT from_ to'),
514
+ dt: toEnum('DT', 'second minute hour day'),
514
515
  graphSONVersion: toEnum('GraphSONVersion', 'V1_0 V2_0 V3_0'),
515
516
  gryoVersion: toEnum('GryoVersion', 'V1_0 V3_0'),
516
517
  merge: toEnum('Merge', 'onCreate onMatch outV inV'),
@@ -74,6 +74,7 @@ const DataType = {
74
74
  METRICS: 0x2c,
75
75
  TRAVERSALMETRICS: 0x2d,
76
76
  MERGE: 0x2e,
77
+ DT: 0x2f,
77
78
 
78
79
  CHAR: 0x80,
79
80
  DURATION: 0x81,
@@ -41,6 +41,7 @@ module.exports = class EnumSerializer {
41
41
  { name: 'Cardinality', code: DT.CARDINALITY, enum: to_orig_enum(t.cardinality) },
42
42
  { name: 'Column', code: DT.COLUMN, enum: to_orig_enum(t.column) },
43
43
  { name: 'Direction', code: DT.DIRECTION, enum: to_orig_enum(t.direction) },
44
+ { name: 'DT', code: DT.DT, enum: to_orig_enum(t.dt) },
44
45
  { name: 'Merge', code: DT.MERGE, enum: to_orig_enum(t.merge) },
45
46
  { name: 'Operator', code: DT.OPERATOR, enum: to_orig_enum(t.operator) },
46
47
  { name: 'Order', code: DT.ORDER, enum: to_orig_enum(t.order) },
package/lib/utils.js CHANGED
@@ -26,7 +26,7 @@
26
26
  const crypto = require('crypto');
27
27
  const os = require('os');
28
28
 
29
- const gremlinVersion = '3.7.0'; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
29
+ const gremlinVersion = '3.7.1'; // DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
30
30
 
31
31
  exports.toLong = function toLong(value) {
32
32
  return new Long(value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gremlin",
3
- "version": "3.7.0",
3
+ "version": "3.7.1",
4
4
  "description": "JavaScript Gremlin Language Variant",
5
5
  "author": "Apache TinkerPop team",
6
6
  "keywords": [
@@ -23,7 +23,7 @@
23
23
  "cross-env": "^7.0.3",
24
24
  "cucumber": "~6.0.7",
25
25
  "eslint": "^8.42.0",
26
- "eslint-config-prettier": "^8.5.0",
26
+ "eslint-config-prettier": "^9.0.0",
27
27
  "eslint-plugin-prettier": "^5.0.0",
28
28
  "grunt": "^1.5.3",
29
29
  "grunt-cli": "~1.4.3",