pontus-x_cli 1.0.4 → 1.2.5

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 (119) hide show
  1. package/README.md +144 -53
  2. package/bin/dev.js +5 -5
  3. package/bin/run.js +4 -5
  4. package/dist/commands/access.d.ts +1 -1
  5. package/dist/commands/access.js +3 -3
  6. package/dist/commands/access.js.map +1 -1
  7. package/dist/commands/change-price.d.ts +3 -3
  8. package/dist/commands/change-price.js +12 -11
  9. package/dist/commands/change-price.js.map +1 -1
  10. package/dist/commands/check-participant-compliance.d.ts +1 -1
  11. package/dist/commands/check-participant-compliance.js +13 -11
  12. package/dist/commands/check-participant-compliance.js.map +1 -1
  13. package/dist/commands/compute-results.d.ts +1 -1
  14. package/dist/commands/compute-results.js +7 -7
  15. package/dist/commands/compute-results.js.map +1 -1
  16. package/dist/commands/compute-status.d.ts +1 -1
  17. package/dist/commands/compute-status.js +7 -7
  18. package/dist/commands/compute-status.js.map +1 -1
  19. package/dist/commands/compute.d.ts +7 -5
  20. package/dist/commands/compute.js +136 -36
  21. package/dist/commands/compute.js.map +1 -1
  22. package/dist/commands/edit-additional-metadata.d.ts +3 -3
  23. package/dist/commands/edit-additional-metadata.js +18 -11
  24. package/dist/commands/edit-additional-metadata.js.map +1 -1
  25. package/dist/commands/edit-algo.d.ts +3 -3
  26. package/dist/commands/edit-algo.js +22 -13
  27. package/dist/commands/edit-algo.js.map +1 -1
  28. package/dist/commands/edit-asset-url.d.ts +3 -3
  29. package/dist/commands/edit-asset-url.js +12 -11
  30. package/dist/commands/edit-asset-url.js.map +1 -1
  31. package/dist/commands/edit-trusted-algos.d.ts +6 -5
  32. package/dist/commands/edit-trusted-algos.js +136 -21
  33. package/dist/commands/edit-trusted-algos.js.map +1 -1
  34. package/dist/commands/edit-trusted-publishers.d.ts +13 -0
  35. package/dist/commands/edit-trusted-publishers.js +132 -0
  36. package/dist/commands/edit-trusted-publishers.js.map +1 -0
  37. package/dist/commands/export-private-key.d.ts +2 -2
  38. package/dist/commands/export-private-key.js +27 -27
  39. package/dist/commands/export-private-key.js.map +1 -1
  40. package/dist/commands/generate-asset-credentials.d.ts +1 -1
  41. package/dist/commands/generate-asset-credentials.js +11 -11
  42. package/dist/commands/generate-asset-credentials.js.map +1 -1
  43. package/dist/commands/generate-did-web.d.ts +1 -1
  44. package/dist/commands/generate-did-web.js +11 -11
  45. package/dist/commands/generate-did-web.js.map +1 -1
  46. package/dist/commands/generate-participant-credentials.d.ts +1 -1
  47. package/dist/commands/generate-participant-credentials.js +10 -10
  48. package/dist/commands/generate-participant-credentials.js.map +1 -1
  49. package/dist/commands/get.d.ts +1 -1
  50. package/dist/commands/get.js +3 -3
  51. package/dist/commands/get.js.map +1 -1
  52. package/dist/commands/login.d.ts +2 -2
  53. package/dist/commands/login.js +16 -13
  54. package/dist/commands/login.js.map +1 -1
  55. package/dist/commands/logout.d.ts +1 -1
  56. package/dist/commands/logout.js +7 -7
  57. package/dist/commands/logout.js.map +1 -1
  58. package/dist/commands/publish.d.ts +5 -3
  59. package/dist/commands/publish.js +111 -43
  60. package/dist/commands/publish.js.map +1 -1
  61. package/dist/commands/render.d.ts +12 -0
  62. package/dist/commands/render.js +130 -0
  63. package/dist/commands/render.js.map +1 -0
  64. package/dist/commands/revoke.d.ts +7 -6
  65. package/dist/commands/revoke.js +92 -23
  66. package/dist/commands/revoke.js.map +1 -1
  67. package/dist/commands/self-description.d.ts +3 -3
  68. package/dist/commands/self-description.js +13 -8
  69. package/dist/commands/self-description.js.map +1 -1
  70. package/dist/config.d.ts +16 -18
  71. package/dist/config.js +63 -62
  72. package/dist/config.js.map +1 -1
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/lib/aquarius.d.ts +29 -0
  76. package/dist/lib/aquarius.js +212 -0
  77. package/dist/lib/aquarius.js.map +1 -0
  78. package/dist/lib/gaia-x_compliance/generate-credentials/index.js +26 -25
  79. package/dist/lib/gaia-x_compliance/generate-credentials/index.js.map +1 -1
  80. package/dist/lib/manifest.d.ts +5 -0
  81. package/dist/lib/manifest.js +33 -0
  82. package/dist/lib/manifest.js.map +1 -0
  83. package/dist/lib/spec.d.ts +12 -0
  84. package/dist/lib/spec.js +266 -0
  85. package/dist/lib/spec.js.map +1 -0
  86. package/dist/lib/wallet.d.ts +2 -0
  87. package/dist/lib/wallet.js +19 -0
  88. package/dist/lib/wallet.js.map +1 -0
  89. package/dist/lib/yaml.d.ts +2 -0
  90. package/dist/lib/yaml.js +53 -0
  91. package/dist/lib/yaml.js.map +1 -0
  92. package/dist/scripts/json-schema.d.ts +1 -0
  93. package/dist/scripts/json-schema.js +24 -0
  94. package/dist/scripts/json-schema.js.map +1 -0
  95. package/dist/types/manifest-schema.json +52 -0
  96. package/dist/types/manifest.d.ts +17 -0
  97. package/dist/types/manifest.js +14 -0
  98. package/dist/types/manifest.js.map +1 -0
  99. package/dist/types/schema.d.ts +1 -2
  100. package/dist/types/schema.js +3 -2
  101. package/dist/types/schema.js.map +1 -1
  102. package/dist/types/schema.json +24 -72
  103. package/dist/utils/account.d.ts +2 -0
  104. package/dist/utils/account.js +41 -0
  105. package/dist/utils/account.js.map +1 -0
  106. package/dist/utils/asset.d.ts +25 -0
  107. package/dist/utils/asset.js +108 -0
  108. package/dist/utils/asset.js.map +1 -0
  109. package/dist/utils/connection.d.ts +3 -3
  110. package/dist/utils/connection.js +2 -2
  111. package/dist/utils/connection.js.map +1 -1
  112. package/dist/utils/login.d.ts +14 -0
  113. package/dist/utils/login.js +99 -0
  114. package/dist/utils/login.js.map +1 -0
  115. package/oclif.manifest.json +250 -39
  116. package/package.json +22 -18
  117. package/dist/lib/publishFromFile.d.ts +0 -2
  118. package/dist/lib/publishFromFile.js +0 -143
  119. package/dist/lib/publishFromFile.js.map +0 -1
@@ -196,22 +196,21 @@
196
196
  "compute": {
197
197
  "aliases": [],
198
198
  "args": {
199
- "algo": {
200
- "description": "Algorithm DID",
201
- "name": "algo",
202
- "required": true
199
+ "algorithm": {
200
+ "description": "Algorithm DID (did:op:...)",
201
+ "name": "algorithm"
203
202
  }
204
203
  },
205
204
  "description": "Compute the algorithm on one or more datasets.",
206
205
  "examples": [
207
- "<%= config.bin %> <%= command.id %> did:op:34e2ff9baf030318b13ff3940ab0885bb11fee49a8597123392983f5a0db8a35 -d did:op:d8a36ff74d36e54ce245d27689330fc39debb2fdfeac09d4a08b24b68cf5053d"
206
+ "<%= config.bin %> <%= command.id %> <algorithmDid> -d <datasetDid1> <datasetDid2> ...",
207
+ "<%= config.bin %> <%= command.id %> <algorithmDid> -t <tag1> -t <tag2> ..."
208
208
  ],
209
209
  "flags": {
210
210
  "datasets": {
211
211
  "char": "d",
212
- "description": "Dataset DIDs",
212
+ "description": "Dataset DIDs (did:op:...)",
213
213
  "name": "datasets",
214
- "required": true,
215
214
  "hasDynamicHelp": false,
216
215
  "multiple": true,
217
216
  "type": "option"
@@ -220,9 +219,28 @@
220
219
  "char": "y",
221
220
  "description": "Automatic yes to prompts",
222
221
  "name": "yes",
223
- "required": false,
224
222
  "allowNo": false,
225
223
  "type": "boolean"
224
+ },
225
+ "manifest": {
226
+ "char": "m",
227
+ "description": "Path to manifest file with the accounts to use for authentication",
228
+ "name": "manifest",
229
+ "hasDynamicHelp": false,
230
+ "multiple": false,
231
+ "type": "option"
232
+ },
233
+ "network": {
234
+ "char": "n",
235
+ "description": "Network to use (env: NETWORK)",
236
+ "name": "network",
237
+ "hasDynamicHelp": false,
238
+ "multiple": false,
239
+ "options": [
240
+ "PONTUSXDEV",
241
+ "PONTUSXTEST"
242
+ ],
243
+ "type": "option"
226
244
  }
227
245
  },
228
246
  "hasDynamicHelp": false,
@@ -386,22 +404,24 @@
386
404
  },
387
405
  "edit-trusted-algos": {
388
406
  "aliases": [],
389
- "args": {
390
- "did": {
391
- "description": "DID of the asset",
392
- "name": "did",
393
- "required": true
394
- }
395
- },
396
- "description": "Overwrite the trusted algorithms for a data asset to the provided algorithm DIDs",
407
+ "args": {},
408
+ "description": "Overwrite datasets trusted algorithms",
397
409
  "examples": [
398
- "<%= config.bin %> <%= command.id %> did:op:ffeee8c8f19328985ef6743b08e61ef89d5141027fd47612e32e7900cacd2b7a --algos did:op:8f9994d01975cadd0196a2f7f811ed850e5d02a7223e7c5a31faaebe7371c81a did:op:0b970c95211cb8ef4574383386376646081bb7eb949b2a75e1e2171ea25949a7"
410
+ "<%= config.bin %> <%= command.id %> -d <datasetDid1> <datasetDid2> ... -a <algorithmDid1> <algorithmDid2> ..."
399
411
  ],
400
412
  "flags": {
401
- "algos": {
402
- "description": "Algorithm DIDs",
403
- "name": "algos",
404
- "required": true,
413
+ "datasets": {
414
+ "char": "d",
415
+ "description": "Dataset DIDs (did:op:...)",
416
+ "name": "datasets",
417
+ "hasDynamicHelp": false,
418
+ "multiple": true,
419
+ "type": "option"
420
+ },
421
+ "algorithms": {
422
+ "char": "a",
423
+ "description": "Trusted algorithm DIDs (did:op:...)",
424
+ "name": "algorithms",
405
425
  "hasDynamicHelp": false,
406
426
  "multiple": true,
407
427
  "type": "option"
@@ -412,6 +432,33 @@
412
432
  "name": "yes",
413
433
  "allowNo": false,
414
434
  "type": "boolean"
435
+ },
436
+ "manifest": {
437
+ "char": "m",
438
+ "description": "Path to manifest file with the accounts to use for authentication",
439
+ "name": "manifest",
440
+ "hasDynamicHelp": false,
441
+ "multiple": false,
442
+ "type": "option"
443
+ },
444
+ "public": {
445
+ "char": "p",
446
+ "description": "Make dataset public (set all algorithms as trusted)",
447
+ "name": "public",
448
+ "allowNo": false,
449
+ "type": "boolean"
450
+ },
451
+ "network": {
452
+ "char": "n",
453
+ "description": "Network to use (env: NETWORK)",
454
+ "name": "network",
455
+ "hasDynamicHelp": false,
456
+ "multiple": false,
457
+ "options": [
458
+ "PONTUSXDEV",
459
+ "PONTUSXTEST"
460
+ ],
461
+ "type": "option"
415
462
  }
416
463
  },
417
464
  "hasDynamicHelp": false,
@@ -429,6 +476,73 @@
429
476
  "edit-trusted-algos.js"
430
477
  ]
431
478
  },
479
+ "edit-trusted-publishers": {
480
+ "aliases": [],
481
+ "args": {},
482
+ "description": "Overwrite datasets trusted publishers",
483
+ "examples": [
484
+ "<%= config.bin %> <%= command.id %> -d <datasetDid1> <datasetDid2> ... -p <publisherDid1> <publisherDid2> ..."
485
+ ],
486
+ "flags": {
487
+ "datasets": {
488
+ "char": "d",
489
+ "description": "Dataset DIDs (did:op:...)",
490
+ "name": "datasets",
491
+ "hasDynamicHelp": false,
492
+ "multiple": true,
493
+ "type": "option"
494
+ },
495
+ "publishers": {
496
+ "char": "p",
497
+ "description": "Trusted publisher DIDs (did:op:...)",
498
+ "name": "publishers",
499
+ "hasDynamicHelp": false,
500
+ "multiple": true,
501
+ "type": "option"
502
+ },
503
+ "yes": {
504
+ "char": "y",
505
+ "description": "Skip confirmation prompt",
506
+ "name": "yes",
507
+ "allowNo": false,
508
+ "type": "boolean"
509
+ },
510
+ "manifest": {
511
+ "char": "m",
512
+ "description": "Path to manifest file with the accounts to use for authentication",
513
+ "name": "manifest",
514
+ "hasDynamicHelp": false,
515
+ "multiple": false,
516
+ "type": "option"
517
+ },
518
+ "network": {
519
+ "char": "n",
520
+ "description": "Network to use (env: NETWORK)",
521
+ "name": "network",
522
+ "hasDynamicHelp": false,
523
+ "multiple": false,
524
+ "options": [
525
+ "PONTUSXDEV",
526
+ "PONTUSXTEST"
527
+ ],
528
+ "type": "option"
529
+ }
530
+ },
531
+ "hasDynamicHelp": false,
532
+ "hiddenAliases": [],
533
+ "id": "edit-trusted-publishers",
534
+ "pluginAlias": "pontus-x_cli",
535
+ "pluginName": "pontus-x_cli",
536
+ "pluginType": "core",
537
+ "strict": true,
538
+ "enableJsonFlag": false,
539
+ "isESM": false,
540
+ "relativePath": [
541
+ "dist",
542
+ "commands",
543
+ "edit-trusted-publishers.js"
544
+ ]
545
+ },
432
546
  "export-private-key": {
433
547
  "aliases": [],
434
548
  "args": {},
@@ -437,6 +551,15 @@
437
551
  "<%= config.bin %> <%= command.id %>"
438
552
  ],
439
553
  "flags": {
554
+ "filepath": {
555
+ "char": "f",
556
+ "description": "File path to save the encrypted private key (default is <address>.json)",
557
+ "name": "filepath",
558
+ "required": false,
559
+ "hasDynamicHelp": false,
560
+ "multiple": false,
561
+ "type": "option"
562
+ },
440
563
  "password": {
441
564
  "char": "p",
442
565
  "description": "Password to encrypt the private key file",
@@ -454,15 +577,6 @@
454
577
  "hasDynamicHelp": false,
455
578
  "multiple": false,
456
579
  "type": "option"
457
- },
458
- "filepath": {
459
- "char": "f",
460
- "description": "File path to save the encrypted private key (default is <address>.json)",
461
- "name": "filepath",
462
- "required": false,
463
- "hasDynamicHelp": false,
464
- "multiple": false,
465
- "type": "option"
466
580
  }
467
581
  },
468
582
  "hasDynamicHelp": false,
@@ -744,13 +858,14 @@
744
858
  "aliases": [],
745
859
  "args": {
746
860
  "path": {
747
- "description": "Path to the JSON/YAML or TS file describing the asset to publish",
861
+ "description": "Path to find a JSON/YAML or TS file describing the asset to publish",
748
862
  "name": "path",
749
863
  "required": true
750
864
  }
751
865
  },
752
866
  "description": "Publish the asset as instructed in the provided script folder.",
753
867
  "examples": [
868
+ "<%= config.bin %> <%= command.id %> samples/publish/algo/",
754
869
  "<%= config.bin %> <%= command.id %> samples/publish/algo/spec.json",
755
870
  "<%= config.bin %> <%= command.id %> samples/publish/algo/spec.yaml",
756
871
  "<%= config.bin %> <%= command.id %> samples/publish/algo/index.ts"
@@ -762,15 +877,30 @@
762
877
  "allowNo": false,
763
878
  "type": "boolean"
764
879
  },
880
+ "manifest": {
881
+ "char": "m",
882
+ "description": "Path to the manifest file",
883
+ "name": "manifest",
884
+ "default": "./manifest.yaml",
885
+ "hasDynamicHelp": false,
886
+ "multiple": false,
887
+ "type": "option"
888
+ },
765
889
  "provider": {
766
890
  "char": "p",
767
891
  "description": "The Provider URL",
768
892
  "name": "provider",
769
- "required": true,
770
893
  "default": "https://provider.agrospai.udl.cat",
771
894
  "hasDynamicHelp": false,
772
895
  "multiple": false,
773
896
  "type": "option"
897
+ },
898
+ "recursive": {
899
+ "char": "r",
900
+ "description": "Recursively publish assets in a directory (only for JSON/YAML files)",
901
+ "name": "recursive",
902
+ "allowNo": false,
903
+ "type": "boolean"
774
904
  }
775
905
  },
776
906
  "hasDynamicHelp": false,
@@ -788,20 +918,101 @@
788
918
  "publish.js"
789
919
  ]
790
920
  },
791
- "revoke": {
921
+ "render": {
792
922
  "aliases": [],
793
923
  "args": {
794
- "dids": {
795
- "description": "DIDs to revoke",
796
- "name": "dids",
797
- "required": true
924
+ "did": {
925
+ "description": "Dataset DID",
926
+ "name": "did",
927
+ "required": false
928
+ }
929
+ },
930
+ "flags": {
931
+ "dst": {
932
+ "char": "d",
933
+ "description": "Destination folder to save the rendered specs",
934
+ "name": "dst",
935
+ "required": false,
936
+ "default": "rendered",
937
+ "hasDynamicHelp": false,
938
+ "multiple": false,
939
+ "type": "option"
940
+ },
941
+ "tags": {
942
+ "char": "t",
943
+ "description": "Tags to filter datasets (they must have all the provided tags)",
944
+ "name": "tags",
945
+ "required": false,
946
+ "hasDynamicHelp": false,
947
+ "multiple": true,
948
+ "type": "option"
949
+ },
950
+ "onlyAccess": {
951
+ "char": "a",
952
+ "description": "Only render datasets with an access service",
953
+ "name": "onlyAccess",
954
+ "required": false,
955
+ "allowNo": false,
956
+ "type": "boolean"
798
957
  }
799
958
  },
959
+ "hasDynamicHelp": false,
960
+ "hiddenAliases": [],
961
+ "id": "render",
962
+ "pluginAlias": "pontus-x_cli",
963
+ "pluginName": "pontus-x_cli",
964
+ "pluginType": "core",
965
+ "strict": true,
966
+ "enableJsonFlag": false,
967
+ "isESM": false,
968
+ "relativePath": [
969
+ "dist",
970
+ "commands",
971
+ "render.js"
972
+ ]
973
+ },
974
+ "revoke": {
975
+ "aliases": [],
976
+ "args": {},
800
977
  "description": "Publisher revocation of one or more owned DIDs",
801
978
  "examples": [
802
- "<%= config.bin %> <%= command.id %> did:op:ffeee8c8f19328985ef6743b08e61ef89d5141027fd47612e32e7900cacd2b7a did:op:abcee8c8f19328985ef6743b08e61ef89d5141027fd47612e32e7900cacd2b7b"
979
+ "<%= config.bin %> <%= command.id %> -d did:op:ffeee8c8f19328985ef6743b08e61ef89d5141027fd47612e32e7900cacd2b7a did:op:abcee8c8f19328985ef6743b08e61ef89d5141027fd47612e32e7900cacd2b7b"
803
980
  ],
804
981
  "flags": {
982
+ "dids": {
983
+ "char": "d",
984
+ "description": "DID to revoke",
985
+ "name": "dids",
986
+ "required": false,
987
+ "hasDynamicHelp": false,
988
+ "multiple": true,
989
+ "type": "option"
990
+ },
991
+ "manifest": {
992
+ "char": "m",
993
+ "description": "Path to the manifest file",
994
+ "name": "manifest",
995
+ "default": "./manifest.yaml",
996
+ "hasDynamicHelp": false,
997
+ "multiple": false,
998
+ "type": "option"
999
+ },
1000
+ "paths": {
1001
+ "char": "p",
1002
+ "description": "Path to find a JSON/YAML file describing the assets to revoke",
1003
+ "name": "paths",
1004
+ "required": false,
1005
+ "hasDynamicHelp": false,
1006
+ "multiple": true,
1007
+ "type": "option"
1008
+ },
1009
+ "recursive": {
1010
+ "char": "r",
1011
+ "description": "Recursively revoke assets in a directory (only for JSON/YAML files)",
1012
+ "name": "recursive",
1013
+ "allowNo": false,
1014
+ "type": "boolean"
1015
+ },
805
1016
  "yes": {
806
1017
  "char": "y",
807
1018
  "description": "Skip confirmation prompt",
@@ -869,5 +1080,5 @@
869
1080
  ]
870
1081
  }
871
1082
  },
872
- "version": "1.0.4"
1083
+ "version": "1.2.5"
873
1084
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pontus-x_cli",
3
3
  "description": "Command Line Interface for the Pontus-X Data Space Ecosystem",
4
- "version": "1.0.4",
4
+ "version": "1.2.5",
5
5
  "author": "AgrospAI",
6
6
  "bin": {
7
7
  "pontus-x_cli": "bin/run.js"
@@ -11,39 +11,42 @@
11
11
  "@deltadao/nautilus": "^1.1.0",
12
12
  "@gaia-x/did-web-generator": "^1.1.0",
13
13
  "@gaia-x/json-web-signature-2020": "^2.3.0",
14
+ "@inquirer/prompts": "^8.2.0",
15
+ "@inquirer/search": "^4.1.0",
14
16
  "@oceanprotocol/ddo-js": "^0.1.3",
15
17
  "@oceanprotocol/lib": "^5.0.4",
16
18
  "@oclif/core": "^4",
17
19
  "@oclif/plugin-autocomplete": "^3.2.34",
18
20
  "@oclif/plugin-help": "^6",
19
- "@types/js-yaml": "^4.0.9",
20
21
  "ajv": "^8.17.1",
21
22
  "axios": "^1.7.9",
23
+ "chalk": "^5.6.2",
22
24
  "dotenv": "^16.4.7",
23
25
  "ethereumjs-wallet": "^1.0.2",
24
26
  "ethers": "^5.7.2",
25
27
  "handlebars": "^4.7.8",
26
- "js-yaml": "^4.1.1",
27
28
  "oclif": "^4.22.14",
28
29
  "readline-sync": "^1.4.10",
29
- "ts-json-schema-generator": "^2.4.0"
30
+ "ts-json-schema-generator": "^2.4.0",
31
+ "yaml": "^2.8.2",
32
+ "zod": "^4.3.6"
30
33
  },
31
34
  "devDependencies": {
32
- "@eslint/compat": "^1",
33
- "@oclif/prettier-config": "^0.2.1",
35
+ "@biomejs/biome": "2.3.14",
34
36
  "@oclif/test": "^4",
35
37
  "@types/figlet": "^1.7.0",
36
38
  "@types/node": "^18",
37
39
  "@types/readline-sync": "^1.4.8",
38
40
  "@vitest/ui": "^3.2.4",
39
41
  "copyfiles": "^2.4.1",
40
- "eslint": "^9",
41
- "eslint-config-oclif": "^6",
42
- "eslint-config-prettier": "^10.1.8",
42
+ "jest-diff": "^30.2.0",
43
43
  "oclif": "^4",
44
44
  "prettier": "3.6.2",
45
+ "prettier-plugin-organize-imports": "^4.3.0",
45
46
  "shx": "^0.3.3",
46
47
  "ts-node": "^10.9.2",
48
+ "tsc-alias": "^1.8.16",
49
+ "tsconfig-paths": "^4.2.0",
47
50
  "typescript": "^5.9.2",
48
51
  "vitest": "^3.2.4"
49
52
  },
@@ -73,21 +76,22 @@
73
76
  "url": "git+https://github.com/AgrospAI/pontus-x_cli.git"
74
77
  },
75
78
  "scripts": {
76
- "dev": "ts-node ./bin/dev.js",
77
- "build": "shx rm -rf dist tsconfig.tsbuildinfo && tsc -b && shx cp -r src/lib/gaia-x_compliance/generate-credentials/templates dist/lib/gaia-x_compliance/generate-credentials/",
78
- "lint": "eslint",
79
- "lint:fix": "eslint --fix",
79
+ "dev": "npm run build && ts-node -r tsconfig-paths/register ./bin/dev.js",
80
+ "build": "shx rm -rf dist tsconfig.tsbuildinfo && tsc -b && tsc-alias -p tsconfig.json && shx cp -r src/lib/gaia-x_compliance/generate-credentials/templates dist/lib/gaia-x_compliance/generate-credentials/",
81
+ "format": "npx @biomejs/biome format --write",
82
+ "lint": "npx @biomejs/biome lint --write",
83
+ "fix": "npx @biomejs/biome check --write",
84
+ "check": "tsc --noEmit",
80
85
  "postpack": "shx rm -f oclif.manifest.json",
81
86
  "prepack": "oclif manifest && oclif readme",
82
87
  "version": "oclif readme && git add README.md",
83
- "format": "npx prettier . --write",
84
88
  "test": "vitest --run",
85
- "test:init": "ts-node test/helpers/assets.ts initializeAssets",
86
- "test:clean": "ts-node test/helpers/assets.ts revokeAssets",
89
+ "test:init": "ts-node -r tsconfig-paths/register test/helpers/assets.ts initializeAssets",
90
+ "test:clean": "ts-node -r tsconfig-paths/register test/helpers/assets.ts revokeAssets",
87
91
  "test:ui": "vitest --ui",
88
92
  "test:watch": "vitest --watch",
89
- "tsc": "tsc --noEmit",
90
- "schema": "ts-json-schema-generator --path 'src/types/publish.d.ts' --type 'PublishConfig' --expose 'export' --out 'src/types/schema.json'",
93
+ "schema:publish": "ts-json-schema-generator --path 'src/types/publish.d.ts' --type 'PublishConfig' --expose 'export' --out 'src/types/schema.json'",
94
+ "schema:manifest": "ts-node src/scripts/json-schema.ts generateManifestJsonSchema",
91
95
  "local-install": "npm install -g ."
92
96
  },
93
97
  "types": "dist/index.d.ts"
@@ -1,2 +0,0 @@
1
- import { Connection } from '../utils/connection';
2
- export declare const publishFromFile: (filePath: string, providerUrl: string, connection: Connection, dryRun: boolean) => Promise<string | undefined>;
@@ -1,143 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.publishFromFile = void 0;
7
- const nautilus_1 = require("@deltadao/nautilus");
8
- const ajv_1 = __importDefault(require("ajv"));
9
- const js_yaml_1 = __importDefault(require("js-yaml"));
10
- const node_fs_1 = require("node:fs");
11
- const node_path_1 = __importDefault(require("node:path"));
12
- const schema_1 = __importDefault(require("../types/schema"));
13
- function parseConfig(filePath) {
14
- const raw = (0, node_fs_1.readFileSync)(filePath, 'utf-8');
15
- const ext = node_path_1.default.extname(filePath).toLowerCase();
16
- if (ext === '.json') {
17
- return JSON.parse(raw);
18
- }
19
- else if (ext === '.yaml') {
20
- return js_yaml_1.default.load(raw);
21
- }
22
- else {
23
- throw new Error(`Unsupported file extension: ${ext}`);
24
- }
25
- }
26
- const publishFromFile = async (filePath, providerUrl, connection, dryRun) => {
27
- const config = parseConfig(filePath);
28
- const ajv = new ajv_1.default();
29
- const validate = ajv.compile(schema_1.default);
30
- const valid = validate(config);
31
- if (!valid) {
32
- console.error('❌ Invalid publish config file:');
33
- console.error(validate.errors);
34
- process.exit(1);
35
- }
36
- const folder = node_path_1.default.dirname(filePath);
37
- const assetBuilder = new nautilus_1.AssetBuilder()
38
- .setType(config.metadata.type)
39
- .setName(config.metadata.name)
40
- .setAuthor(config.metadata.author)
41
- .setOwner(connection.wallet.address)
42
- .setDescription((0, node_fs_1.readFileSync)(node_path_1.default.resolve(folder, config.metadata.description), 'utf8'))
43
- .setLicense(config.metadata.license)
44
- .setNftData(config.nftData);
45
- if (config.metadata.tags) {
46
- assetBuilder.addTags(config.metadata.tags);
47
- }
48
- if (config.metadata.links) {
49
- assetBuilder.addLinks(config.metadata.links);
50
- }
51
- if (config.credentials) {
52
- if (config.credentials.allow) {
53
- assetBuilder.addCredentialAddresses(nautilus_1.CredentialListTypes.ALLOW, config.credentials.allow);
54
- }
55
- if (config.credentials.deny) {
56
- assetBuilder.addCredentialAddresses(nautilus_1.CredentialListTypes.DENY, config.credentials.deny);
57
- }
58
- }
59
- if (config.metadata.additionalInformation) {
60
- assetBuilder.addAdditionalInformation(config.metadata.additionalInformation);
61
- }
62
- if (config.metadata.type === 'algorithm' && config.metadata.algorithm) {
63
- const consumerParameters = [];
64
- for (const param of config.metadata.algorithm.consumerParameters || []) {
65
- const consumerParameter = new nautilus_1.ConsumerParameterBuilder()
66
- .setType(param.type)
67
- .setName(param.name)
68
- .setLabel(param.label)
69
- .setDescription(param.description)
70
- .setRequired(param.required)
71
- .setDefault(typeof param.default === 'object' ? JSON.stringify(param.default) : param.default);
72
- for (const option of param.options || []) {
73
- consumerParameter.addOption(option);
74
- }
75
- consumerParameters.push(consumerParameter.build());
76
- }
77
- const algorithm = {
78
- language: config.metadata.algorithm.language,
79
- version: config.metadata.algorithm.version,
80
- container: config.metadata.algorithm.container,
81
- };
82
- assetBuilder.setAlgorithm(consumerParameters.length > 0 ? Object.assign(Object.assign({}, algorithm), { consumerParameters }) : algorithm);
83
- }
84
- const serviceBuilder = new nautilus_1.ServiceBuilder({
85
- fileType: config.service.fileType,
86
- serviceType: config.service.serviceType,
87
- });
88
- for (const file of config.service.files) {
89
- serviceBuilder.addFile(file);
90
- }
91
- for (const param of config.service.consumerParameters || []) {
92
- // Stringify param.default if it's an object
93
- const defaultValue = typeof param.default === 'object' ? JSON.stringify(param.default) : param.default;
94
- const consumerParam = new nautilus_1.ConsumerParameterBuilder()
95
- .setType(param.type)
96
- .setName(param.name)
97
- .setLabel(param.label)
98
- .setDescription(param.description)
99
- .setRequired(param.required)
100
- .setDefault(defaultValue)
101
- .build();
102
- serviceBuilder.addConsumerParameter(consumerParam);
103
- }
104
- if (config.trustedAlgorithms) {
105
- serviceBuilder.addTrustedAlgorithms(config.trustedAlgorithms);
106
- }
107
- for (const trustedAlgorithmPublisher of config.trustedAlgorithmPublishers || []) {
108
- serviceBuilder.addTrustedAlgorithmPublisher(trustedAlgorithmPublisher);
109
- }
110
- if (config.trustOwnerAlgorithms) {
111
- serviceBuilder.addTrustedAlgorithmPublisher(connection.wallet.address);
112
- }
113
- if (config.allowAlgorithmNetworkAccess !== undefined) {
114
- serviceBuilder.allowAlgorithmNetworkAccess(config.allowAlgorithmNetworkAccess);
115
- }
116
- serviceBuilder
117
- .setServiceEndpoint(providerUrl)
118
- .setTimeout(config.service.timeout)
119
- .setDatatokenNameAndSymbol(config.service.datatoken.name, config.service.datatoken.symbol)
120
- .setPricing(config.service.pricing.type === 'free' || !config.service.pricing.amount
121
- ? { type: 'free' }
122
- : config.service.pricing.currency === 'EUROe'
123
- ? connection.pricingConfig.fixedRateEUROe(config.service.pricing.amount)
124
- : connection.pricingConfig.fixedRateOCEAN(config.service.pricing.amount));
125
- const service = serviceBuilder.build();
126
- assetBuilder.addService(service);
127
- const asset = assetBuilder.build();
128
- console.log(`\n✅ Asset metadata:\n${JSON.stringify(asset, null, 2)}\n`);
129
- if (dryRun) {
130
- console.log('⚠️ Dry run enabled. Asset not published.\n');
131
- return;
132
- }
133
- console.log(`🚀 Publishing asset...`);
134
- const result = await connection.nautilus.publish(asset);
135
- console.log([
136
- '✅ Asset published.',
137
- `🔗 Transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}`,
138
- `🌐 Asset: https://portal.agrospai.udl.cat/asset/${result.ddo.id}`,
139
- ].join('\n'));
140
- return asset.ddo.id;
141
- };
142
- exports.publishFromFile = publishFromFile;
143
- //# sourceMappingURL=publishFromFile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishFromFile.js","sourceRoot":"","sources":["../../src/lib/publishFromFile.ts"],"names":[],"mappings":"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"}