sodas-sdk 1.1.1 → 1.1.12

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.
@@ -2501,6 +2501,70 @@ class Dataset extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
2501
2501
  }
2502
2502
  });
2503
2503
  }
2504
+ static syncToCurrentHub(dataset) {
2505
+ return __awaiter(this, void 0, void 0, function* () {
2506
+ var _a;
2507
+ try {
2508
+ const checkExisting = yield Dataset.getDBRecordByAssetID((0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(dataset.assetID));
2509
+ if (checkExisting) {
2510
+ checkExisting.populateToSync(dataset);
2511
+ yield checkExisting.updateDBRecord();
2512
+ }
2513
+ }
2514
+ catch (error) {
2515
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2516
+ const newDataset = new Dataset();
2517
+ newDataset.populateToSync(dataset);
2518
+ yield newDataset.createDBRecord();
2519
+ }
2520
+ else {
2521
+ throw error;
2522
+ }
2523
+ }
2524
+ });
2525
+ }
2526
+ populateToSync(source) {
2527
+ const excludedKeys = new Set([
2528
+ "ID",
2529
+ "DatasetID",
2530
+ "IsVersionOf",
2531
+ "PreviousVersionID",
2532
+ "NextVersionID",
2533
+ "VersionInfos",
2534
+ "InSeriesID",
2535
+ "FirstID",
2536
+ "PreviousID",
2537
+ "NextID",
2538
+ "LastID",
2539
+ "DistributionIDs",
2540
+ ]);
2541
+ for (const key in source) {
2542
+ if (!Object.prototype.hasOwnProperty.call(source, key))
2543
+ continue;
2544
+ if (key === "Distributions")
2545
+ continue;
2546
+ if (excludedKeys.has(key))
2547
+ continue;
2548
+ const value = source[key];
2549
+ if (value !== undefined) {
2550
+ this[key] = value;
2551
+ }
2552
+ }
2553
+ // Handle distributions separately so that we can preserve identity fields
2554
+ // of existing distributions while syncing other fields, and create new
2555
+ // distributions for any additional ones in the source.
2556
+ const sourceDistributions = source.Distributions;
2557
+ if (!sourceDistributions || sourceDistributions.length === 0) {
2558
+ return;
2559
+ }
2560
+ this.Distributions = [];
2561
+ for (let i = 0; i < sourceDistributions.length; i++) {
2562
+ const srcDist = sourceDistributions[i];
2563
+ const targetDist = new _distribution__WEBPACK_IMPORTED_MODULE_5__["default"]();
2564
+ targetDist.populateToSync(srcDist);
2565
+ this.Distributions.push(targetDist);
2566
+ }
2567
+ }
2504
2568
  createDBRecord() {
2505
2569
  const _super = Object.create(null, {
2506
2570
  createDBRecord: { get: () => super.createDBRecord }
@@ -2690,6 +2754,7 @@ __webpack_require__.r(__webpack_exports__);
2690
2754
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2691
2755
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2692
2756
  /* harmony export */ });
2757
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
2693
2758
  /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
2694
2759
  /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
2695
2760
  /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
@@ -2709,10 +2774,105 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
2709
2774
 
2710
2775
 
2711
2776
 
2777
+
2712
2778
  /**
2713
2779
  * Represents a series of datasets.
2714
2780
  */
2715
2781
  class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
2782
+ static syncToCurrentHub(datasetSeries) {
2783
+ return __awaiter(this, void 0, void 0, function* () {
2784
+ var _a;
2785
+ try {
2786
+ const checkExisting = yield DatasetSeries.getDBRecordByAssetID((0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(datasetSeries.assetID));
2787
+ if (checkExisting) {
2788
+ yield checkExisting.populateToSync(datasetSeries);
2789
+ yield checkExisting.updateDBRecord();
2790
+ }
2791
+ }
2792
+ catch (error) {
2793
+ if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2794
+ const newDatasetSeries = new DatasetSeries();
2795
+ yield newDatasetSeries.populateToSync(datasetSeries);
2796
+ yield newDatasetSeries.createDBRecord();
2797
+ }
2798
+ else {
2799
+ throw error;
2800
+ }
2801
+ }
2802
+ });
2803
+ }
2804
+ /**
2805
+ * Populates this instance with values from the given DatasetSeries, except for:
2806
+ * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)
2807
+ * - Version/lineage fields (IsVersionOf, PreviousVersionID, NextVersionID, VersionInfos)
2808
+ * - Series identity fields (DatasetSeriesID, InSeriesID)
2809
+ * - Fields explicitly set to `undefined` on the source instance
2810
+ *
2811
+ * Additionally, when SeriesMembers are present on the source, this method
2812
+ * resolves each member via Dataset.getDBRecordByAssetID (by AssetID) and
2813
+ * replaces this.SeriesMemberIDs with the resolved IDs.
2814
+ */
2815
+ populateToSync(source) {
2816
+ return __awaiter(this, void 0, void 0, function* () {
2817
+ var _a;
2818
+ const excludedKeys = new Set([
2819
+ "ID",
2820
+ "IsVersionOf",
2821
+ "PreviousVersionID",
2822
+ "NextVersionID",
2823
+ "VersionInfos",
2824
+ "DatasetSeriesID",
2825
+ "InSeriesID",
2826
+ ]);
2827
+ for (const key in source) {
2828
+ if (!Object.prototype.hasOwnProperty.call(source, key))
2829
+ continue;
2830
+ if (key === "SeriesMembers")
2831
+ continue;
2832
+ if (excludedKeys.has(key))
2833
+ continue;
2834
+ const value = source[key];
2835
+ if (value !== undefined) {
2836
+ this[key] = value;
2837
+ }
2838
+ }
2839
+ this.SeriesMembers = [];
2840
+ const sourceMembers = source.SeriesMembers;
2841
+ if (!sourceMembers || sourceMembers.length === 0) {
2842
+ return;
2843
+ }
2844
+ const resolvedIDs = [];
2845
+ for (const member of sourceMembers) {
2846
+ if (!member)
2847
+ continue;
2848
+ const assetIDStr = member.assetID;
2849
+ if (!assetIDStr)
2850
+ continue;
2851
+ const assetID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(assetIDStr);
2852
+ // Prefer existing record by AssetID; if not found, create a new one.
2853
+ try {
2854
+ const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecordByAssetID(assetID);
2855
+ if (existing) {
2856
+ existing.populateToSync(member);
2857
+ yield existing.updateDBRecord();
2858
+ resolvedIDs.push(existing.id);
2859
+ }
2860
+ }
2861
+ catch (error) {
2862
+ if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2863
+ const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_3__["default"]();
2864
+ newMember.populateToSync(member);
2865
+ yield newMember.createDBRecord();
2866
+ resolvedIDs.push(newMember.id);
2867
+ }
2868
+ else {
2869
+ throw error;
2870
+ }
2871
+ }
2872
+ }
2873
+ this.SeriesMemberIDs = resolvedIDs;
2874
+ });
2875
+ }
2716
2876
  /**
2717
2877
  * Initializes or updates the API_URL and LIST_URL for Dataset.
2718
2878
  *
@@ -2753,11 +2913,17 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2753
2913
  }
2754
2914
  populateSeriesMembersFromDTO(dto) {
2755
2915
  return __awaiter(this, void 0, void 0, function* () {
2916
+ this.SeriesMembers = [];
2756
2917
  if (dto.SeriesMemberIDs && dto.SeriesMemberIDs.length != 0) {
2757
2918
  this.SeriesMemberIDs = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asIDs)(dto.SeriesMemberIDs);
2758
- this.SeriesMembers = yield Promise.all(dto.SeriesMemberIDs.map((seriesMemberID) => __awaiter(this, void 0, void 0, function* () {
2759
- return yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecord(seriesMemberID);
2760
- })));
2919
+ if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {
2920
+ for (const seriesMemberID of this.SeriesMemberIDs) {
2921
+ const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecord(seriesMemberID);
2922
+ if (seriesMember) {
2923
+ this.SeriesMembers.push(seriesMember);
2924
+ }
2925
+ }
2926
+ }
2761
2927
  }
2762
2928
  });
2763
2929
  }
@@ -2776,6 +2942,17 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2776
2942
  yield _super.deleteDBRecord.call(this);
2777
2943
  });
2778
2944
  }
2945
+ /**
2946
+ * Creates a dataset series DB record in an interoperated context
2947
+ * (e.g. together with related Dataset instances or other resources).
2948
+ *
2949
+ * The implementation will be added later.
2950
+ */
2951
+ createInteroperatedDBRecord() {
2952
+ return __awaiter(this, void 0, void 0, function* () {
2953
+ // TODO: Implement interoperated create logic.
2954
+ });
2955
+ }
2779
2956
  appendSeriesMember(dataset) {
2780
2957
  if (!this.SeriesMemberIDs) {
2781
2958
  this.SeriesMemberIDs = [];
@@ -2808,7 +2985,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2808
2985
  get datasetSeriesID() {
2809
2986
  return this.DatasetSeriesID;
2810
2987
  }
2811
- get seriesMembereIDs() {
2988
+ get seriesMemberIDs() {
2812
2989
  return this.SeriesMemberIDs;
2813
2990
  }
2814
2991
  get seriesMembers() {
@@ -3232,8 +3409,8 @@ __webpack_require__.r(__webpack_exports__);
3232
3409
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3233
3410
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3234
3411
  /* harmony export */ });
3235
- /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
3236
- /* harmony import */ var _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../SODAS_SDK_FILE/dataFile */ "./lib/SODAS_SDK_FILE/dataFile.ts");
3412
+ /* harmony import */ var _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../SODAS_SDK_FILE/dataFile */ "./lib/SODAS_SDK_FILE/dataFile.ts");
3413
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
3237
3414
  /* harmony import */ var _dcatClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dcatClass */ "./lib/SODAS_SDK_CLASS/dcatClass.ts");
3238
3415
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
3239
3416
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -3248,6 +3425,24 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
3248
3425
 
3249
3426
 
3250
3427
  class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3428
+ /**
3429
+ * Populates this instance with values from the given Distribution, except for:
3430
+ * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)
3431
+ * - Fields that are explicitly set to `undefined` on the source instance
3432
+ */
3433
+ populateToSync(source) {
3434
+ const excludedKeys = new Set(["ID", "IsDistributionOf", "AccessServiceID"]);
3435
+ for (const key in source) {
3436
+ if (!Object.prototype.hasOwnProperty.call(source, key))
3437
+ continue;
3438
+ if (excludedKeys.has(key))
3439
+ continue;
3440
+ const value = source[key];
3441
+ if (value !== undefined) {
3442
+ this[key] = value;
3443
+ }
3444
+ }
3445
+ }
3251
3446
  toDTO() {
3252
3447
  return Object.assign(Object.assign(Object.assign(Object.assign({}, super.toDTO()), (this.IsDistributionOf && { IsDistributionOf: this.IsDistributionOf })), (this.AccessServiceID && { AccessServiceID: this.AccessServiceID })), { AccessURL: this.AccessURL, ByteSize: this.ByteSize, CompressFormat: this.CompressFormat, DownloadURL: this.DownloadURL, MediaType: this.MediaType, PackageFormat: this.PackageFormat, SpatialResolutionInMeters: this.SpatialResolutionInMeters, TemporalResolution: this.TemporalResolution, AccessRights: this.AccessRights, ConformsTo: this.ConformsTo, DescriptionML: this.DescriptionML, Format: this.Format, License: this.License, Rights: this.Rights, TitleML: this.TitleML, HasPolicy: this.HasPolicy, Checksum: this.Checksum });
3253
3448
  }
@@ -3259,7 +3454,7 @@ class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3259
3454
  yield _super.populateFromDTO.call(this, dto);
3260
3455
  const distributionDTO = dto;
3261
3456
  distributionDTO.AccessServiceID &&
3262
- (this.AccessServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_0__.asID)(distributionDTO.AccessServiceID));
3457
+ (this.AccessServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(distributionDTO.AccessServiceID));
3263
3458
  distributionDTO.AccessURL && (this.AccessURL = distributionDTO.AccessURL);
3264
3459
  distributionDTO.ByteSize && (this.ByteSize = distributionDTO.ByteSize);
3265
3460
  distributionDTO.CompressFormat &&
@@ -3287,7 +3482,7 @@ class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3287
3482
  distributionDTO.HasPolicy && (this.HasPolicy = distributionDTO.HasPolicy);
3288
3483
  distributionDTO.Checksum && (this.Checksum = distributionDTO.Checksum);
3289
3484
  distributionDTO.IsDistributionOf &&
3290
- (this.IsDistributionOf = (0,_core_type__WEBPACK_IMPORTED_MODULE_0__.asID)(distributionDTO.IsDistributionOf));
3485
+ (this.IsDistributionOf = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(distributionDTO.IsDistributionOf));
3291
3486
  });
3292
3487
  }
3293
3488
  /**
@@ -3303,7 +3498,7 @@ class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3303
3498
  Distribution.DOWNLOAD_API_URL = `${url}/data/download`;
3304
3499
  }
3305
3500
  static configureBucketName(bucketName) {
3306
- _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_1__["default"].configureBucketName(bucketName);
3501
+ _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_0__["default"].configureBucketName(bucketName);
3307
3502
  }
3308
3503
  /**
3309
3504
  * Sets file information for a browser environment.
@@ -3311,7 +3506,7 @@ class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3311
3506
  */
3312
3507
  setUploadingDataForBrowser(file) {
3313
3508
  if (!this.UploadingData) {
3314
- this.UploadingData = new _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_1__["default"]();
3509
+ this.UploadingData = new _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_0__["default"]();
3315
3510
  }
3316
3511
  this.UploadingData.setFileForBrowser(file);
3317
3512
  }
@@ -3321,7 +3516,7 @@ class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3321
3516
  */
3322
3517
  setUploadingDataForNode(filePath) {
3323
3518
  if (!this.UploadingData) {
3324
- this.UploadingData = new _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_1__["default"]();
3519
+ this.UploadingData = new _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_0__["default"]();
3325
3520
  }
3326
3521
  this.UploadingData.setFileForNode(filePath);
3327
3522
  }
@@ -3514,7 +3709,7 @@ class Distribution extends _dcatClass__WEBPACK_IMPORTED_MODULE_2__["default"] {
3514
3709
  return this.IsDistributionOf;
3515
3710
  }
3516
3711
  set isDistributionOf(value) {
3517
- this.IsDistributionOf = (0,_core_type__WEBPACK_IMPORTED_MODULE_0__.asID)(value);
3712
+ this.IsDistributionOf = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(value);
3518
3713
  }
3519
3714
  }
3520
3715
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Distribution);
@@ -3767,6 +3962,27 @@ class DCAT_MODEL extends _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__["default"]
3767
3962
  }
3768
3963
  });
3769
3964
  }
3965
+ /**
3966
+ * Checks whether a DB record exists for the given AssetID and returns its ID.
3967
+ *
3968
+ * This method wraps getDBRecordByAssetID and converts a 404 response to `null`,
3969
+ * while rethrowing any other kind of error.
3970
+ */
3971
+ static checkDBRecordOfAssetID(assetID) {
3972
+ return __awaiter(this, void 0, void 0, function* () {
3973
+ var _a;
3974
+ try {
3975
+ const record = (yield this.getDBRecordByAssetID(assetID));
3976
+ return record.id;
3977
+ }
3978
+ catch (error) {
3979
+ if (axios__WEBPACK_IMPORTED_MODULE_4__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
3980
+ return null;
3981
+ }
3982
+ throw error;
3983
+ }
3984
+ });
3985
+ }
3770
3986
  updateDBRecord() {
3771
3987
  return __awaiter(this, void 0, void 0, function* () {
3772
3988
  this.throwErrorIfAPIURLNotSet();
@@ -4738,7 +4954,7 @@ __webpack_require__.r(__webpack_exports__);
4738
4954
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4739
4955
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
4740
4956
  /* harmony export */ });
4741
- /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
4957
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
4742
4958
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_dataService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/dataService */ "./lib/SODAS_SDK_CLASS/DCAT/dataService.ts");
4743
4959
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
4744
4960
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_datasetSeries__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/datasetSeries */ "./lib/SODAS_SDK_CLASS/DCAT/datasetSeries.ts");
@@ -4749,6 +4965,7 @@ __webpack_require__.r(__webpack_exports__);
4749
4965
  /* harmony import */ var _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../SODAS_SDK_FILE/dataFile */ "./lib/SODAS_SDK_FILE/dataFile.ts");
4750
4966
  /* harmony import */ var _SODAS_SDK_FILE_thumbnailFile__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SODAS_SDK_FILE/thumbnailFile */ "./lib/SODAS_SDK_FILE/thumbnailFile.ts");
4751
4967
  /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./error */ "./lib/core/error.ts");
4968
+ /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./init */ "./lib/core/init.ts");
4752
4969
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
4753
4970
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4754
4971
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -4769,25 +4986,28 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
4769
4986
 
4770
4987
 
4771
4988
 
4989
+
4772
4990
  class Config {
4773
- constructor(governanceBaseUrl, datahubBaseUrl) {
4991
+ constructor(governanceBaseUrl, sodasProfileBaseUrl, legacyDatahubBaseUrl) {
4774
4992
  this.governanceToken = null;
4775
- this.datahubToken = null;
4993
+ this.legacyDatahubToken = null;
4776
4994
  this.governanceBaseUrl = governanceBaseUrl.replace(/\/$/, "");
4777
- this.datahubBaseUrl = datahubBaseUrl.replace(/\/$/, "");
4995
+ this.sodasProfileBaseUrl = sodasProfileBaseUrl.replace(/\/$/, "");
4996
+ this.legacyDatahubBaseUrl = legacyDatahubBaseUrl.replace(/\/$/, "");
4778
4997
  this.initializeAPIURLs();
4779
4998
  }
4780
4999
  /**
4781
5000
  * Explicitly configure the SDK with the given API URLs.
4782
5001
  * This is the preferred way to set API URLs instead of using configureAPIURL.
4783
5002
  */
4784
- static configure(datahubApiUrl, governanceApiUrl) {
5003
+ static configure(datahubApiUrl, governanceApiUrl, legacyDatahubApiUrl) {
4785
5004
  if (!Config.instance) {
4786
- Config.instance = new Config(governanceApiUrl, datahubApiUrl);
5005
+ Config.instance = new Config(governanceApiUrl, datahubApiUrl, legacyDatahubApiUrl);
4787
5006
  }
4788
5007
  else {
4789
5008
  Config.instance.governanceBaseUrl = governanceApiUrl.replace(/\/$/, "");
4790
- Config.instance.datahubBaseUrl = datahubApiUrl.replace(/\/$/, "");
5009
+ Config.instance.sodasProfileBaseUrl = datahubApiUrl.replace(/\/$/, "");
5010
+ Config.instance.legacyDatahubBaseUrl = legacyDatahubApiUrl.replace(/\/$/, "");
4791
5011
  Config.instance.initializeAPIURLs();
4792
5012
  }
4793
5013
  return Config.instance;
@@ -4800,13 +5020,16 @@ class Config {
4800
5020
  const governanceBaseUrl = process.env.PRODUCTION_GOVERNANCE_API_URL ||
4801
5021
  process.env.TEST_GOVERNANCE_API_URL ||
4802
5022
  "";
4803
- const datahubBaseUrl = process.env.PRODUCTION_DATAHUB_API_URL ||
4804
- process.env.TEST_DATAHUB_API_URL ||
5023
+ const sodasProfileBaseUrl = process.env.PRODUCTION_DATAHUB_API_URL ||
5024
+ process.env.TEST_SODAS_PROFILE_API_URL ||
5025
+ "";
5026
+ const legacyDatahubBaseUrl = process.env.PRODUCTION_LEGACY_DATAHUB_API_URL ||
5027
+ process.env.TEST_LEGACY_DATAHUB_API_URL ||
4805
5028
  "";
4806
- if (!governanceBaseUrl || !datahubBaseUrl) {
5029
+ if (!governanceBaseUrl || !sodasProfileBaseUrl) {
4807
5030
  throw new Error("Governance or Datahub base URL is not configured in environment variables.");
4808
5031
  }
4809
- Config.instance = new Config(governanceBaseUrl, datahubBaseUrl);
5032
+ Config.instance = new Config(governanceBaseUrl, sodasProfileBaseUrl, legacyDatahubBaseUrl);
4810
5033
  }
4811
5034
  return Config.instance;
4812
5035
  }
@@ -4814,15 +5037,15 @@ class Config {
4814
5037
  * Initialize all SDK class API URLs based on the configured base URLs.
4815
5038
  */
4816
5039
  initializeAPIURLs() {
4817
- const SLASH_DELETED_DATAHUB_API_URL = this.datahubBaseUrl.replace(/\/$/, "");
5040
+ const SLASH_DELETED_SODAS_PROFILE_BASE_URL = this.sodasProfileBaseUrl.replace(/\/$/, "");
4818
5041
  const SLASH_DELETED_GOVERNANCE_PORTAL_API_URL = this.governanceBaseUrl.replace(/\/$/, "");
4819
- if (this.datahubBaseUrl) {
4820
- _SODAS_SDK_CLASS_DCAT_distribution__WEBPACK_IMPORTED_MODULE_3__["default"].configureAPIURL(SLASH_DELETED_DATAHUB_API_URL);
4821
- _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__["default"].configureAPIURL(SLASH_DELETED_DATAHUB_API_URL);
4822
- _SODAS_SDK_CLASS_DCAT_datasetSeries__WEBPACK_IMPORTED_MODULE_2__["default"].configureAPIURL(SLASH_DELETED_DATAHUB_API_URL);
4823
- _SODAS_SDK_CLASS_DCAT_dataService__WEBPACK_IMPORTED_MODULE_0__["default"].configureAPIURL(SLASH_DELETED_DATAHUB_API_URL);
4824
- _SODAS_SDK_FILE_thumbnailFile__WEBPACK_IMPORTED_MODULE_8__["default"].configureAPIURL(SLASH_DELETED_DATAHUB_API_URL);
4825
- _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_7__["default"].configureAPIURL(SLASH_DELETED_DATAHUB_API_URL);
5042
+ if (this.sodasProfileBaseUrl) {
5043
+ _SODAS_SDK_CLASS_DCAT_distribution__WEBPACK_IMPORTED_MODULE_3__["default"].configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);
5044
+ _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__["default"].configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);
5045
+ _SODAS_SDK_CLASS_DCAT_datasetSeries__WEBPACK_IMPORTED_MODULE_2__["default"].configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);
5046
+ _SODAS_SDK_CLASS_DCAT_dataService__WEBPACK_IMPORTED_MODULE_0__["default"].configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);
5047
+ _SODAS_SDK_FILE_thumbnailFile__WEBPACK_IMPORTED_MODULE_8__["default"].configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);
5048
+ _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_7__["default"].configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);
4826
5049
  }
4827
5050
  else {
4828
5051
  console.error("DATAHUB_API_URL not found in config");
@@ -4847,9 +5070,10 @@ class Config {
4847
5070
  password,
4848
5071
  offline: false,
4849
5072
  };
4850
- const response = yield axios__WEBPACK_IMPORTED_MODULE_10__["default"].post(url, parameters);
5073
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_11__["default"].post(url, parameters);
4851
5074
  if (response.data && response.data.accessToken) {
4852
5075
  this.governanceToken = response.data.accessToken;
5076
+ (0,_init__WEBPACK_IMPORTED_MODULE_10__.setGovernanceBearerToken)(this.governanceToken);
4853
5077
  }
4854
5078
  else {
4855
5079
  throw new _error__WEBPACK_IMPORTED_MODULE_9__.NoAccessTokenFoundError();
@@ -4859,20 +5083,27 @@ class Config {
4859
5083
  /**
4860
5084
  * Login to the Datahub portal and store the access token.
4861
5085
  */
4862
- loginDatahub(id, password) {
5086
+ loginLegacyDatahub(id, password) {
4863
5087
  return __awaiter(this, void 0, void 0, function* () {
4864
- const url = `${this.datahubBaseUrl}/api/v1/authnz/authentication/user/login`;
5088
+ const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/login`;
4865
5089
  const parameters = {
4866
5090
  id,
4867
5091
  password,
4868
5092
  offline: false,
4869
5093
  };
4870
- const response = yield axios__WEBPACK_IMPORTED_MODULE_10__["default"].post(url, parameters);
4871
- if (response.data && response.data.accessToken) {
4872
- this.datahubToken = response.data.accessToken;
5094
+ try {
5095
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_11__["default"].post(url, parameters);
5096
+ if (response.data && response.data.accessToken) {
5097
+ this.legacyDatahubToken = response.data.accessToken;
5098
+ (0,_init__WEBPACK_IMPORTED_MODULE_10__.setLegacyDatahubBearerToken)(this.legacyDatahubToken);
5099
+ }
5100
+ else {
5101
+ throw new _error__WEBPACK_IMPORTED_MODULE_9__.NoAccessTokenFoundError();
5102
+ }
4873
5103
  }
4874
- else {
4875
- throw new _error__WEBPACK_IMPORTED_MODULE_9__.NoAccessTokenFoundError();
5104
+ catch (error) {
5105
+ console.error("Error during loginLegacyDatahub:", error);
5106
+ throw error;
4876
5107
  }
4877
5108
  });
4878
5109
  }
@@ -4882,7 +5113,7 @@ class Config {
4882
5113
  logoutGovernance() {
4883
5114
  return __awaiter(this, void 0, void 0, function* () {
4884
5115
  const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/logout`;
4885
- const response = yield axios__WEBPACK_IMPORTED_MODULE_10__["default"].post(url, {}, {
5116
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_11__["default"].post(url, {}, {
4886
5117
  headers: this.governanceToken
4887
5118
  ? { Authorization: `Bearer ${this.governanceToken}` }
4888
5119
  : undefined,
@@ -4898,16 +5129,16 @@ class Config {
4898
5129
  /**
4899
5130
  * Logout from the Datahub portal and clear the stored token.
4900
5131
  */
4901
- logoutDatahub() {
5132
+ logoutLegacyDatahub() {
4902
5133
  return __awaiter(this, void 0, void 0, function* () {
4903
- const url = `${this.datahubBaseUrl}/api/v1/authnz/authentication/user/logout`;
4904
- const response = yield axios__WEBPACK_IMPORTED_MODULE_10__["default"].post(url, {}, {
4905
- headers: this.datahubToken
4906
- ? { Authorization: `Bearer ${this.datahubToken}` }
5134
+ const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/logout`;
5135
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_11__["default"].post(url, {}, {
5136
+ headers: this.legacyDatahubToken
5137
+ ? { Authorization: `Bearer ${this.legacyDatahubToken}` }
4907
5138
  : undefined,
4908
5139
  });
4909
5140
  if (response.data && response.data.result === "success") {
4910
- this.datahubToken = null;
5141
+ this.legacyDatahubToken = null;
4911
5142
  }
4912
5143
  else {
4913
5144
  throw new _error__WEBPACK_IMPORTED_MODULE_9__.UnexpectedResponseFormatError(response.data);
@@ -4923,8 +5154,8 @@ class Config {
4923
5154
  /**
4924
5155
  * Get the current Datahub access token.
4925
5156
  */
4926
- getDatahubToken() {
4927
- return this.datahubToken;
5157
+ getLegacyDatahubToken() {
5158
+ return this.legacyDatahubToken;
4928
5159
  }
4929
5160
  }
4930
5161
  Config.instance = null;
@@ -5087,7 +5318,8 @@ class UnexpectedResponseFormatError extends Error {
5087
5318
 
5088
5319
  __webpack_require__.r(__webpack_exports__);
5089
5320
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5090
- /* harmony export */ setBearerToken: () => (/* binding */ setBearerToken)
5321
+ /* harmony export */ setGovernanceBearerToken: () => (/* binding */ setGovernanceBearerToken),
5322
+ /* harmony export */ setLegacyDatahubBearerToken: () => (/* binding */ setLegacyDatahubBearerToken)
5091
5323
  /* harmony export */ });
5092
5324
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_dataService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/dataService */ "./lib/SODAS_SDK_CLASS/DCAT/dataService.ts");
5093
5325
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
@@ -5107,13 +5339,15 @@ __webpack_require__.r(__webpack_exports__);
5107
5339
  * @param {string} token - The Bearer token used for API authentication.
5108
5340
  * @returns {void}
5109
5341
  */
5110
- function setBearerToken(token) {
5342
+ function setGovernanceBearerToken(token) {
5343
+ _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].BEARER_TOKEN = token;
5344
+ _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].BEARER_TOKEN = token;
5345
+ }
5346
+ function setLegacyDatahubBearerToken(token) {
5111
5347
  _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__["default"].BEARER_TOKEN = token;
5112
5348
  _SODAS_SDK_CLASS_DCAT_dataService__WEBPACK_IMPORTED_MODULE_0__["default"].BEARER_TOKEN = token;
5113
5349
  _SODAS_SDK_CLASS_DCAT_datasetSeries__WEBPACK_IMPORTED_MODULE_2__["default"].BEARER_TOKEN = token;
5114
5350
  _SODAS_SDK_CLASS_DCAT_distribution__WEBPACK_IMPORTED_MODULE_3__["default"].BEARER_TOKEN = token;
5115
- _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].BEARER_TOKEN = token;
5116
- _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].BEARER_TOKEN = token;
5117
5351
  }
5118
5352
 
5119
5353
 
@@ -10319,7 +10553,8 @@ __webpack_require__.r(__webpack_exports__);
10319
10553
  /* harmony export */ asID: () => (/* reexport safe */ _core_type__WEBPACK_IMPORTED_MODULE_6__.asID),
10320
10554
  /* harmony export */ asIRI: () => (/* reexport safe */ _core_type__WEBPACK_IMPORTED_MODULE_6__.asIRI),
10321
10555
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
10322
- /* harmony export */ setBearerToken: () => (/* reexport safe */ _core_init__WEBPACK_IMPORTED_MODULE_5__.setBearerToken)
10556
+ /* harmony export */ setGovernanceBearerToken: () => (/* reexport safe */ _core_init__WEBPACK_IMPORTED_MODULE_5__.setGovernanceBearerToken),
10557
+ /* harmony export */ setLegacyDatahubBearerToken: () => (/* reexport safe */ _core_init__WEBPACK_IMPORTED_MODULE_5__.setLegacyDatahubBearerToken)
10323
10558
  /* harmony export */ });
10324
10559
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_dataService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SODAS_SDK_CLASS/DCAT/dataService */ "./lib/SODAS_SDK_CLASS/DCAT/dataService.ts");
10325
10560
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SODAS_SDK_CLASS/DCAT/dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
@@ -10356,7 +10591,8 @@ const sdk = {
10356
10591
  SortOrder: _core_type__WEBPACK_IMPORTED_MODULE_6__.SortOrder,
10357
10592
  TemplateDetailFunctionality: _core_type__WEBPACK_IMPORTED_MODULE_6__.TemplateDetailFunctionality,
10358
10593
  Config: _core_auth__WEBPACK_IMPORTED_MODULE_4__["default"],
10359
- setBearerToken: _core_init__WEBPACK_IMPORTED_MODULE_5__.setBearerToken,
10594
+ setGovernanceBearerToken: _core_init__WEBPACK_IMPORTED_MODULE_5__.setGovernanceBearerToken,
10595
+ setLegacyDatahubBearerToken: _core_init__WEBPACK_IMPORTED_MODULE_5__.setLegacyDatahubBearerToken,
10360
10596
  };
10361
10597
  // ✅ Ensures `require("sodas-sdk")` works in CommonJS
10362
10598
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sdk);
@@ -10380,7 +10616,8 @@ var __webpack_exports__TemplateDetailFunctionality = __webpack_exports__.Templat
10380
10616
  var __webpack_exports__asID = __webpack_exports__.asID;
10381
10617
  var __webpack_exports__asIRI = __webpack_exports__.asIRI;
10382
10618
  var __webpack_exports__default = __webpack_exports__["default"];
10383
- var __webpack_exports__setBearerToken = __webpack_exports__.setBearerToken;
10384
- export { __webpack_exports__ArtifactType as ArtifactType, __webpack_exports__BASIC_TYPE_VALUES as BASIC_TYPE_VALUES, __webpack_exports__CONVERSION_VALUES as CONVERSION_VALUES, __webpack_exports__Config as Config, __webpack_exports__DataService as DataService, __webpack_exports__Dataset as Dataset, __webpack_exports__DatasetSeries as DatasetSeries, __webpack_exports__Distribution as Distribution, __webpack_exports__MEASURE_VALUES as MEASURE_VALUES, __webpack_exports__ORIGIN_VALUES as ORIGIN_VALUES, __webpack_exports__ProfileType as ProfileType, __webpack_exports__ResourceDescriptorRole as ResourceDescriptorRole, __webpack_exports__SortOrder as SortOrder, __webpack_exports__TemplateDetailFunctionality as TemplateDetailFunctionality, __webpack_exports__asID as asID, __webpack_exports__asIRI as asIRI, __webpack_exports__default as default, __webpack_exports__setBearerToken as setBearerToken };
10619
+ var __webpack_exports__setGovernanceBearerToken = __webpack_exports__.setGovernanceBearerToken;
10620
+ var __webpack_exports__setLegacyDatahubBearerToken = __webpack_exports__.setLegacyDatahubBearerToken;
10621
+ export { __webpack_exports__ArtifactType as ArtifactType, __webpack_exports__BASIC_TYPE_VALUES as BASIC_TYPE_VALUES, __webpack_exports__CONVERSION_VALUES as CONVERSION_VALUES, __webpack_exports__Config as Config, __webpack_exports__DataService as DataService, __webpack_exports__Dataset as Dataset, __webpack_exports__DatasetSeries as DatasetSeries, __webpack_exports__Distribution as Distribution, __webpack_exports__MEASURE_VALUES as MEASURE_VALUES, __webpack_exports__ORIGIN_VALUES as ORIGIN_VALUES, __webpack_exports__ProfileType as ProfileType, __webpack_exports__ResourceDescriptorRole as ResourceDescriptorRole, __webpack_exports__SortOrder as SortOrder, __webpack_exports__TemplateDetailFunctionality as TemplateDetailFunctionality, __webpack_exports__asID as asID, __webpack_exports__asIRI as asIRI, __webpack_exports__default as default, __webpack_exports__setGovernanceBearerToken as setGovernanceBearerToken, __webpack_exports__setLegacyDatahubBearerToken as setLegacyDatahubBearerToken };
10385
10622
 
10386
10623
  //# sourceMappingURL=index.browser.js.map