sodas-sdk 1.1.13 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/SODAS_SDK_CLASS/DCAT/dataService.d.ts +2 -1
  2. package/dist/SODAS_SDK_CLASS/DCAT/dataset.d.ts +2 -0
  3. package/dist/SODAS_SDK_CLASS/DCAT/datasetSeries.d.ts +3 -1
  4. package/dist/SODAS_SDK_CLASS/template/validation.d.ts +83 -0
  5. package/dist/__tests__/SODAS_SDK_CLASS/DCAT/dataService/userL.medium.test.d.ts +1 -0
  6. package/dist/__tests__/SODAS_SDK_CLASS/DCAT/dataset/rdf.medium.test.d.ts +1 -0
  7. package/dist/__tests__/SODAS_SDK_CLASS/DCAT/dataset/userL.medium.test.d.ts +1 -0
  8. package/dist/__tests__/SODAS_SDK_CLASS/DCAT/datasetSeries/rdf.medium.test.d.ts +1 -0
  9. package/dist/__tests__/SODAS_SDK_CLASS/DCAT/datasetSeries/userL.medium.test.d.ts +1 -0
  10. package/dist/__tests__/SODAS_SDK_CLASS/template/validation/CRUD.medium.test.d.ts +1 -0
  11. package/dist/__tests__/SODAS_SDK_CLASS/template/validation/LIST.big.test.d.ts +1 -0
  12. package/dist/__tests__/SODAS_SDK_CLASS/template/validation/escape.small.test.d.ts +1 -0
  13. package/dist/__tests__/SODAS_SDK_CLASS/template/validation/group.small.test.d.ts +1 -0
  14. package/dist/__tests__/SODAS_SDK_CLASS/template/validation/manageRules.small.test.d.ts +1 -0
  15. package/dist/__tests__/SODAS_SDK_CLASS/template/validation/parse.small.test.d.ts +1 -0
  16. package/dist/__tests__/utility/validation.d.ts +6 -0
  17. package/dist/index.browser.js +499 -26
  18. package/dist/index.browser.js.map +1 -1
  19. package/dist/index.legacy.browser.js +499 -26
  20. package/dist/index.legacy.browser.js.map +1 -1
  21. package/dist/index.legacy.node.cjs +499 -26
  22. package/dist/index.legacy.node.cjs.map +1 -1
  23. package/dist/index.node.js +499 -26
  24. package/dist/index.node.js.map +1 -1
  25. package/package.json +1 -1
  26. package/dist/SODAS_SDK_FILE/artifactFile.d.ts +0 -8
@@ -5374,8 +5374,12 @@ __webpack_require__.r(__webpack_exports__);
5374
5374
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5375
5375
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
5376
5376
  /* harmony export */ });
5377
- /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
5378
- /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5377
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
5378
+ /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
5379
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
5380
+ /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
5381
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
5382
+ /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5379
5383
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
5380
5384
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5381
5385
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -5387,10 +5391,14 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
5387
5391
  };
5388
5392
 
5389
5393
 
5394
+
5395
+
5396
+
5397
+
5390
5398
  /**
5391
5399
  * Represents a Data Service DTO.
5392
5400
  */
5393
- class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"] {
5401
+ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
5394
5402
  /**
5395
5403
  * Initializes the API URL for DataService.
5396
5404
  *
@@ -5401,6 +5409,37 @@ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"]
5401
5409
  DataService.API_URL = `${url}/dataservice`;
5402
5410
  DataService.LIST_URL = `${DataService.API_URL}/list`;
5403
5411
  }
5412
+ static listUserDBRecords() {
5413
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
5414
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
5415
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
5416
+ const url = DataService.LIST_URL.replace(/\/list$/, "/user/list");
5417
+ let response;
5418
+ try {
5419
+ response = yield axios__WEBPACK_IMPORTED_MODULE_5__["default"].get(url, {
5420
+ headers: Object.assign({ "Content-Type": "application/json" }, (DataService.BEARER_TOKEN && {
5421
+ Authorization: `Bearer ${DataService.BEARER_TOKEN}`,
5422
+ })),
5423
+ params: { pageNumber, pageSize, sortOrder },
5424
+ });
5425
+ }
5426
+ catch (error) {
5427
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
5428
+ }
5429
+ if (response.data.total != null && Array.isArray(response.data.list)) {
5430
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
5431
+ const dataService = new DataService();
5432
+ yield dataService.populateFromDTO(item);
5433
+ return dataService;
5434
+ })));
5435
+ return {
5436
+ total: response.data.total,
5437
+ list,
5438
+ };
5439
+ }
5440
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
5441
+ });
5442
+ }
5404
5443
  toDTO() {
5405
5444
  return Object.assign(Object.assign(Object.assign({}, super.toDTO()), (this.DataServiceID && { DataServiceID: this.DataServiceID })), { EndpointURL: this.EndpointURL, EndpointDescription: this.EndpointDescription });
5406
5445
  }
@@ -5412,7 +5451,7 @@ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"]
5412
5451
  yield _super.populateFromDTO.call(this, dto);
5413
5452
  const dataServiceDTO = dto;
5414
5453
  dataServiceDTO.DataServiceID &&
5415
- (this.DataServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_0__.asID)(dataServiceDTO.DataServiceID));
5454
+ (this.DataServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(dataServiceDTO.DataServiceID));
5416
5455
  dataServiceDTO.EndpointURL &&
5417
5456
  (this.EndpointURL = dataServiceDTO.EndpointURL);
5418
5457
  dataServiceDTO.EndpointDescription &&
@@ -5488,6 +5527,61 @@ class Dataset extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
5488
5527
  Dataset.API_URL = `${url}/dataset`;
5489
5528
  Dataset.LIST_URL = `${Dataset.API_URL}/list`;
5490
5529
  }
5530
+ static listUserDBRecords() {
5531
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
5532
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
5533
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
5534
+ const url = Dataset.LIST_URL.replace(/\/list$/, "/user/list");
5535
+ let response;
5536
+ try {
5537
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
5538
+ headers: Object.assign({ "Content-Type": "application/json" }, (Dataset.BEARER_TOKEN && {
5539
+ Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,
5540
+ })),
5541
+ params: { pageNumber, pageSize, sortOrder },
5542
+ });
5543
+ }
5544
+ catch (error) {
5545
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
5546
+ }
5547
+ if (response.data.total != null && Array.isArray(response.data.list)) {
5548
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
5549
+ const dataset = new Dataset();
5550
+ yield dataset.populateFromDTO(item);
5551
+ return dataset;
5552
+ })));
5553
+ return {
5554
+ total: response.data.total,
5555
+ list,
5556
+ };
5557
+ }
5558
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
5559
+ });
5560
+ }
5561
+ static getRDF(id_1) {
5562
+ return __awaiter(this, arguments, void 0, function* (id, depth = 1) {
5563
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
5564
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
5565
+ const url = `${Dataset.API_URL}/rdf`;
5566
+ let response;
5567
+ try {
5568
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
5569
+ headers: Object.assign({ Accept: "text/turtle" }, (Dataset.BEARER_TOKEN && {
5570
+ Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,
5571
+ })),
5572
+ params: { id, depth },
5573
+ responseType: "text",
5574
+ });
5575
+ }
5576
+ catch (error) {
5577
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
5578
+ }
5579
+ if (typeof response.data === "string") {
5580
+ return response.data;
5581
+ }
5582
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
5583
+ });
5584
+ }
5491
5585
  static searchDBRecords(searchKeyword_1) {
5492
5586
  return __awaiter(this, arguments, void 0, function* (searchKeyword, pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
5493
5587
  if (!searchKeyword || !searchKeyword.trim()) {
@@ -5813,12 +5907,13 @@ __webpack_require__.r(__webpack_exports__);
5813
5907
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5814
5908
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
5815
5909
  /* harmony export */ });
5816
- /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
5910
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
5817
5911
  /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
5818
5912
  /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
5819
5913
  /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
5820
- /* harmony import */ var _dataset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
5821
- /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5914
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
5915
+ /* harmony import */ var _dataset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
5916
+ /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5822
5917
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
5823
5918
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5824
5919
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -5834,10 +5929,11 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
5834
5929
 
5835
5930
 
5836
5931
 
5932
+
5837
5933
  /**
5838
5934
  * Represents a series of datasets.
5839
5935
  */
5840
- class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
5936
+ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_5__["default"] {
5841
5937
  static syncToCurrentHub(datasetSeries) {
5842
5938
  return __awaiter(this, void 0, void 0, function* () {
5843
5939
  var _a;
@@ -5849,7 +5945,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5849
5945
  }
5850
5946
  }
5851
5947
  catch (error) {
5852
- if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
5948
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
5853
5949
  const newDatasetSeries = new DatasetSeries();
5854
5950
  yield newDatasetSeries.populateToSync(datasetSeries);
5855
5951
  yield newDatasetSeries.createDBRecord();
@@ -5910,7 +6006,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5910
6006
  const assetID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(assetIDStr);
5911
6007
  // Prefer existing record by AssetID; if not found, create a new one.
5912
6008
  try {
5913
- const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecordByAssetID(assetID);
6009
+ const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_4__["default"].getDBRecordByAssetID(assetID);
5914
6010
  if (existing) {
5915
6011
  existing.populateToSync(member);
5916
6012
  yield existing.updateDBRecord();
@@ -5918,8 +6014,8 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5918
6014
  }
5919
6015
  }
5920
6016
  catch (error) {
5921
- if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
5922
- const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_3__["default"]();
6017
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
6018
+ const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_4__["default"]();
5923
6019
  newMember.populateToSync(member);
5924
6020
  yield newMember.createDBRecord();
5925
6021
  resolvedIDs.push(newMember.id);
@@ -5942,6 +6038,61 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5942
6038
  DatasetSeries.API_URL = `${url}/datasetseries`;
5943
6039
  DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;
5944
6040
  }
6041
+ static getRDF(id_1) {
6042
+ return __awaiter(this, arguments, void 0, function* (id, depth = 1) {
6043
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
6044
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
6045
+ const url = `${DatasetSeries.API_URL}/rdf`;
6046
+ let response;
6047
+ try {
6048
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
6049
+ headers: Object.assign({ Accept: "text/turtle" }, (DatasetSeries.BEARER_TOKEN && {
6050
+ Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,
6051
+ })),
6052
+ params: { id, depth },
6053
+ responseType: "text",
6054
+ });
6055
+ }
6056
+ catch (error) {
6057
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
6058
+ }
6059
+ if (typeof response.data === "string") {
6060
+ return response.data;
6061
+ }
6062
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
6063
+ });
6064
+ }
6065
+ static listUserDBRecords() {
6066
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
6067
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
6068
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
6069
+ const url = DatasetSeries.LIST_URL.replace(/\/list$/, "/user/list");
6070
+ let response;
6071
+ try {
6072
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
6073
+ headers: Object.assign({ "Content-Type": "application/json" }, (DatasetSeries.BEARER_TOKEN && {
6074
+ Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,
6075
+ })),
6076
+ params: { pageNumber, pageSize, sortOrder },
6077
+ });
6078
+ }
6079
+ catch (error) {
6080
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
6081
+ }
6082
+ if (response.data.total != null && Array.isArray(response.data.list)) {
6083
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
6084
+ const datasetSeries = new DatasetSeries();
6085
+ yield datasetSeries.populateFromDTO(item);
6086
+ return datasetSeries;
6087
+ })));
6088
+ return {
6089
+ total: response.data.total,
6090
+ list,
6091
+ };
6092
+ }
6093
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
6094
+ });
6095
+ }
5945
6096
  toDTO() {
5946
6097
  const result = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, super.toDTO()), (this.DatasetSeriesID && { DatasetSeriesID: this.DatasetSeriesID })), (this.InSeriesID && { InSeriesID: this.InSeriesID })), { Frequency: this.Frequency, SpatialResolutionInMeters: this.SpatialResolutionInMeters, TemporalResolution: this.TemporalResolution, Spatial: this.Spatial, Temporal: this.Temporal, WasGeneratedBy: this.WasGeneratedBy }), (this.SeriesMemberIDs && { SeriesMemberIDs: this.SeriesMemberIDs }));
5947
6098
  return result;
@@ -5977,7 +6128,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5977
6128
  this.SeriesMemberIDs = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asIDs)(dto.SeriesMemberIDs);
5978
6129
  if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {
5979
6130
  for (const seriesMemberID of this.SeriesMemberIDs) {
5980
- const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecord(seriesMemberID);
6131
+ const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_4__["default"].getDBRecord(seriesMemberID);
5981
6132
  if (seriesMember) {
5982
6133
  this.SeriesMembers.push(seriesMember);
5983
6134
  }
@@ -6016,7 +6167,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
6016
6167
  if (!this.SeriesMemberIDs) {
6017
6168
  this.SeriesMemberIDs = [];
6018
6169
  }
6019
- if (!(dataset instanceof _dataset__WEBPACK_IMPORTED_MODULE_3__["default"])) {
6170
+ if (!(dataset instanceof _dataset__WEBPACK_IMPORTED_MODULE_4__["default"])) {
6020
6171
  throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.InvalidTypeError(dataset, "Dataset");
6021
6172
  }
6022
6173
  if (!dataset.id) {
@@ -7737,27 +7888,346 @@ class SODAS_SDK_CLASS {
7737
7888
 
7738
7889
  /***/ }),
7739
7890
 
7740
- /***/ "./lib/SODAS_SDK_FILE/artifactFile.ts":
7741
- /*!********************************************!*\
7742
- !*** ./lib/SODAS_SDK_FILE/artifactFile.ts ***!
7743
- \********************************************/
7891
+ /***/ "./lib/SODAS_SDK_CLASS/template/validation.ts":
7892
+ /*!****************************************************!*\
7893
+ !*** ./lib/SODAS_SDK_CLASS/template/validation.ts ***!
7894
+ \****************************************************/
7744
7895
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7745
7896
 
7746
7897
  "use strict";
7747
7898
  __webpack_require__.r(__webpack_exports__);
7748
7899
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7900
+ /* harmony export */ EXPECTED_TYPE: () => (/* binding */ EXPECTED_TYPE),
7901
+ /* harmony export */ VALIDATION_TYPE: () => (/* binding */ VALIDATION_TYPE),
7749
7902
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
7750
7903
  /* harmony export */ });
7751
- /* harmony import */ var _sodasSDKFile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sodasSDKFile */ "./lib/SODAS_SDK_FILE/sodasSDKFile.ts");
7904
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
7905
+ /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
7906
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
7907
+ /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
7908
+ /* harmony import */ var _governanceClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../governanceClass */ "./lib/SODAS_SDK_CLASS/governanceClass.ts");
7909
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
7910
+ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
7911
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7912
+ return new (P || (P = Promise))(function (resolve, reject) {
7913
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7914
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7915
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7916
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
7917
+ });
7918
+ };
7919
+
7920
+
7921
+
7752
7922
 
7753
- class ArtifactFile extends _sodasSDKFile__WEBPACK_IMPORTED_MODULE_0__["default"] {
7923
+
7924
+
7925
+ var VALIDATION_TYPE;
7926
+ (function (VALIDATION_TYPE) {
7927
+ VALIDATION_TYPE["DATA_TYPE"] = "data_type";
7928
+ VALIDATION_TYPE["RANGE"] = "range";
7929
+ VALIDATION_TYPE["PATTERN"] = "pattern";
7930
+ VALIDATION_TYPE["UNIQUENESS"] = "uniqueness";
7931
+ VALIDATION_TYPE["COMPLETENESS"] = "completeness";
7932
+ VALIDATION_TYPE["LENGTH"] = "length";
7933
+ VALIDATION_TYPE["ALLOWED_VALUES"] = "allowed_values";
7934
+ VALIDATION_TYPE["OUTLIER"] = "outlier";
7935
+ VALIDATION_TYPE["STATISTICAL"] = "statistical";
7936
+ })(VALIDATION_TYPE || (VALIDATION_TYPE = {}));
7937
+ var EXPECTED_TYPE;
7938
+ (function (EXPECTED_TYPE) {
7939
+ EXPECTED_TYPE["NUMERIC"] = "numeric";
7940
+ EXPECTED_TYPE["STRING"] = "string";
7941
+ EXPECTED_TYPE["DATETIME"] = "datetime";
7942
+ })(EXPECTED_TYPE || (EXPECTED_TYPE = {}));
7943
+ class ValidationTemplate extends _governanceClass__WEBPACK_IMPORTED_MODULE_3__["default"] {
7754
7944
  static configureAPIURL(url) {
7755
- ArtifactFile.UPLOAD_URL = `${url}/api/v1/governance/open-reference-model/resource-descriptor/artifact/upload`;
7756
- ArtifactFile.REMOVE_URL = `${url}/api/v1/governance/open-reference-model/resource-descriptor/artifact/remove?id=`;
7757
- ArtifactFile.DOWNLOAD_URL = `${url}/artifacts`;
7945
+ const PREFIX = "api/v1/governance/template";
7946
+ ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;
7947
+ ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;
7948
+ ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;
7949
+ ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;
7950
+ ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;
7951
+ ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;
7952
+ }
7953
+ toDTO() {
7954
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, super.toDTO()), { name: this.Name }), (this.ValidationRules && { validationRules: this.ValidationRules })), (this.Description && { description: this.Description }));
7955
+ }
7956
+ populateFromFormData(data) {
7957
+ return __awaiter(this, void 0, void 0, function* () {
7958
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.NeedToImplementError();
7959
+ });
7960
+ }
7961
+ populateFromDTO(dto) {
7962
+ const _super = Object.create(null, {
7963
+ populateFromDTO: { get: () => super.populateFromDTO }
7964
+ });
7965
+ return __awaiter(this, void 0, void 0, function* () {
7966
+ yield _super.populateFromDTO.call(this, dto);
7967
+ const validationTemplateDTO = dto;
7968
+ this.ValidationRules = validationTemplateDTO.validationRules;
7969
+ this.Name = validationTemplateDTO.name;
7970
+ this.Description = validationTemplateDTO.description;
7971
+ });
7972
+ }
7973
+ static listDBRecords() {
7974
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC, vocabularyID) {
7975
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_4__.throwErrorIfAPIURLNotSetForStatic)(ValidationTemplate);
7976
+ try {
7977
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_5__["default"].get(ValidationTemplate.LIST_URL, {
7978
+ params: {
7979
+ offset: (pageNumber - 1) * pageSize,
7980
+ limit: pageSize,
7981
+ ordered: sortOrder,
7982
+ vocabularyId: vocabularyID,
7983
+ },
7984
+ // headers,
7985
+ });
7986
+ return yield ValidationTemplate.listResponseToPaginatedResponse(response);
7987
+ }
7988
+ catch (error) {
7989
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
7990
+ }
7991
+ });
7992
+ }
7993
+ get name() {
7994
+ return this.Name;
7995
+ }
7996
+ set name(value) {
7997
+ this.Name = value;
7998
+ }
7999
+ get description() {
8000
+ return this.Description;
8001
+ }
8002
+ set description(value) {
8003
+ this.Description = value;
8004
+ }
8005
+ get validationRules() {
8006
+ return this.ValidationRules;
8007
+ }
8008
+ set validationRules(value) {
8009
+ this.ValidationRules = value;
8010
+ }
8011
+ static parseValidationRules(rawRules) {
8012
+ return rawRules.map((rule) => {
8013
+ const baseRule = {
8014
+ column: rule.column,
8015
+ name: rule.name,
8016
+ type: rule.type,
8017
+ };
8018
+ switch (rule.type) {
8019
+ case VALIDATION_TYPE.COMPLETENESS:
8020
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.COMPLETENESS, min_completeness: rule.min_completeness, weight: rule.weight });
8021
+ case VALIDATION_TYPE.DATA_TYPE:
8022
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.DATA_TYPE, expected_type: rule.expected_type, weight: rule.weight });
8023
+ case VALIDATION_TYPE.PATTERN:
8024
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.PATTERN, pattern: rule.pattern, weight: rule.weight });
8025
+ case VALIDATION_TYPE.UNIQUENESS:
8026
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.UNIQUENESS, weight: rule.weight });
8027
+ default:
8028
+ return baseRule;
8029
+ }
8030
+ });
8031
+ }
8032
+ ensureValidationRulesInitialized() {
8033
+ if (!this.ValidationRules) {
8034
+ this.ValidationRules = [];
8035
+ }
8036
+ }
8037
+ createRule(type) {
8038
+ this.ensureValidationRulesInitialized();
8039
+ let rule;
8040
+ const baseRule = {
8041
+ column: "",
8042
+ name: "",
8043
+ type,
8044
+ };
8045
+ switch (type) {
8046
+ case VALIDATION_TYPE.COMPLETENESS:
8047
+ rule = Object.assign(Object.assign({}, baseRule), { min_completeness: 0, weight: 0 });
8048
+ break;
8049
+ case VALIDATION_TYPE.DATA_TYPE:
8050
+ rule = Object.assign(Object.assign({}, baseRule), { expected_type: EXPECTED_TYPE.STRING, weight: 0 });
8051
+ break;
8052
+ case VALIDATION_TYPE.PATTERN:
8053
+ rule = Object.assign(Object.assign({}, baseRule), { pattern: "", weight: 0 });
8054
+ break;
8055
+ case VALIDATION_TYPE.UNIQUENESS:
8056
+ rule = Object.assign(Object.assign({}, baseRule), { weight: 0 });
8057
+ break;
8058
+ default:
8059
+ rule = baseRule;
8060
+ }
8061
+ this.ValidationRules.push(rule);
8062
+ return rule;
8063
+ }
8064
+ deleteRuleAt(index) {
8065
+ if (!this.ValidationRules) {
8066
+ return;
8067
+ }
8068
+ if (index < 0 || index >= this.ValidationRules.length) {
8069
+ return;
8070
+ }
8071
+ this.ValidationRules.splice(index, 1);
8072
+ }
8073
+ deleteRuleByTypeAt(type, index) {
8074
+ if (!this.ValidationRules) {
8075
+ return;
8076
+ }
8077
+ if (index < 0) {
8078
+ return;
8079
+ }
8080
+ let current = 0;
8081
+ for (let i = 0; i < this.ValidationRules.length; i++) {
8082
+ if (this.ValidationRules[i].type === type) {
8083
+ if (current === index) {
8084
+ this.ValidationRules.splice(i, 1);
8085
+ return;
8086
+ }
8087
+ current++;
8088
+ }
8089
+ }
8090
+ }
8091
+ static groupValidationRulesByColumn(rules) {
8092
+ return rules.reduce((acc, rule) => {
8093
+ const column = rule.column;
8094
+ if (!acc[column]) {
8095
+ acc[column] = [];
8096
+ }
8097
+ acc[column].push(rule);
8098
+ return acc;
8099
+ }, {});
8100
+ }
8101
+ static groupValidationRulesByType(rules) {
8102
+ return rules.reduce((acc, rule) => {
8103
+ const type = rule.type;
8104
+ if (!acc[type]) {
8105
+ acc[type] = [];
8106
+ }
8107
+ acc[type].push(rule);
8108
+ return acc;
8109
+ }, {});
8110
+ }
8111
+ /**
8112
+ * Parse escaped JSON string containing validation_rules to ValidationRule[]
8113
+ * @param escapedString - Escaped JSON string like "validation_rules\":[{\"column\":\"class_label\",...}]"
8114
+ * @returns Parsed ValidationRule array
8115
+ */
8116
+ static parseValidationRulesFromEscapedString(escapedString) {
8117
+ let processedString = escapedString.trim();
8118
+ // Remove surrounding quotes if present (e.g., '"{"validation_rules":...}"' -> '{"validation_rules":...}')
8119
+ // Check for both single and double quotes
8120
+ if (((processedString.startsWith('"') && processedString.endsWith('"')) ||
8121
+ (processedString.startsWith("'") && processedString.endsWith("'"))) &&
8122
+ processedString.length > 1) {
8123
+ processedString = processedString.slice(1, -1).trim();
8124
+ }
8125
+ // Unescape the string (replace \" with ")
8126
+ // Handle both \" and \\\" cases to avoid double-escaping issues
8127
+ let unescapedString = processedString;
8128
+ // First handle \\\" -> \"
8129
+ unescapedString = unescapedString.replace(/\\\\"/g, '\\"');
8130
+ // Then handle \" -> "
8131
+ unescapedString = unescapedString.replace(/\\"/g, '"');
8132
+ // Try to parse as JSON
8133
+ let parsed;
8134
+ try {
8135
+ // First try parsing directly
8136
+ parsed = JSON.parse(unescapedString);
8137
+ }
8138
+ catch (error) {
8139
+ // If parsing fails, try different approaches
8140
+ const trimmed = unescapedString.trim();
8141
+ // If it starts with "validation_rules" but is not wrapped in braces
8142
+ if (trimmed.startsWith('"validation_rules"') ||
8143
+ trimmed.startsWith("validation_rules")) {
8144
+ // Try wrapping in braces
8145
+ const wrapped = trimmed.startsWith('"')
8146
+ ? `{${trimmed}}`
8147
+ : `{"${trimmed}}`;
8148
+ try {
8149
+ parsed = JSON.parse(wrapped);
8150
+ }
8151
+ catch (e) {
8152
+ // If still fails, try without the leading quote
8153
+ const withoutQuote = trimmed.replace(/^"/, "");
8154
+ parsed = JSON.parse(`{"${withoutQuote}`);
8155
+ }
8156
+ }
8157
+ else if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
8158
+ // Already looks like JSON object, try parsing again after trimming
8159
+ parsed = JSON.parse(trimmed);
8160
+ }
8161
+ else {
8162
+ throw error;
8163
+ }
8164
+ }
8165
+ // Extract validation_rules array
8166
+ let validationRules;
8167
+ // If it's already an array, use it directly
8168
+ if (Array.isArray(parsed)) {
8169
+ validationRules = parsed;
8170
+ }
8171
+ else if (parsed.validation_rules) {
8172
+ // If it's an object with validation_rules property
8173
+ validationRules = parsed.validation_rules;
8174
+ }
8175
+ else if (typeof parsed === "object") {
8176
+ // If it's an object but no validation_rules property, try to use it as is
8177
+ validationRules = parsed;
8178
+ }
8179
+ else {
8180
+ throw new Error("Invalid format: validation_rules not found");
8181
+ }
8182
+ // Ensure validationRules is an array
8183
+ if (!Array.isArray(validationRules)) {
8184
+ throw new Error("Invalid format: validation_rules must be an array");
8185
+ }
8186
+ const parsedRules = ValidationTemplate.parseValidationRules(validationRules);
8187
+ parsedRules._escapedString = escapedString;
8188
+ return parsedRules;
8189
+ }
8190
+ /**
8191
+ * Convert ValidationRule[] to escaped JSON string
8192
+ * @param rules - ValidationRule array to stringify
8193
+ * @returns Escaped JSON string with format: "{\"validation_rules\":[...]}"
8194
+ */
8195
+ static stringifyValidationRulesToEscapedString(rules) {
8196
+ // Convert ValidationRule[] to plain objects for JSON serialization
8197
+ const plainRules = rules.map((rule) => {
8198
+ const plainRule = {
8199
+ column: rule.column,
8200
+ name: rule.name,
8201
+ type: rule.type,
8202
+ };
8203
+ switch (rule.type) {
8204
+ case VALIDATION_TYPE.COMPLETENESS:
8205
+ const completenessRule = rule;
8206
+ return Object.assign(Object.assign({}, plainRule), { min_completeness: completenessRule.min_completeness, weight: completenessRule.weight });
8207
+ case VALIDATION_TYPE.DATA_TYPE:
8208
+ const dataTypeRule = rule;
8209
+ return Object.assign(Object.assign({}, plainRule), { expected_type: dataTypeRule.expected_type, weight: dataTypeRule.weight });
8210
+ case VALIDATION_TYPE.PATTERN:
8211
+ const patternRule = rule;
8212
+ return Object.assign(Object.assign({}, plainRule), { pattern: patternRule.pattern, weight: patternRule.weight });
8213
+ case VALIDATION_TYPE.UNIQUENESS:
8214
+ const uniquenessRule = rule;
8215
+ return Object.assign(Object.assign({}, plainRule), { weight: uniquenessRule.weight });
8216
+ default:
8217
+ return plainRule;
8218
+ }
8219
+ });
8220
+ // Create object with validation_rules property
8221
+ if (rules._escapedString) {
8222
+ return rules._escapedString;
8223
+ }
8224
+ const obj = { validation_rules: plainRules };
8225
+ const jsonString = JSON.stringify(obj);
8226
+ const escaped = jsonString.replace(/"/g, '\\"');
8227
+ return '"' + escaped + '"';
7758
8228
  }
7759
8229
  }
7760
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArtifactFile);
8230
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ValidationTemplate);
7761
8231
 
7762
8232
 
7763
8233
  /***/ }),
@@ -8033,7 +8503,7 @@ __webpack_require__.r(__webpack_exports__);
8033
8503
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_distribution__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/distribution */ "./lib/SODAS_SDK_CLASS/DCAT/distribution.ts");
8034
8504
  /* harmony import */ var _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/dictionary/term */ "./lib/SODAS_SDK_CLASS/dictionary/term.ts");
8035
8505
  /* harmony import */ var _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/dictionary/vocabulary */ "./lib/SODAS_SDK_CLASS/dictionary/vocabulary.ts");
8036
- /* harmony import */ var _SODAS_SDK_FILE_artifactFile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SODAS_SDK_FILE/artifactFile */ "./lib/SODAS_SDK_FILE/artifactFile.ts");
8506
+ /* harmony import */ var _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/template/validation */ "./lib/SODAS_SDK_CLASS/template/validation.ts");
8037
8507
  /* harmony import */ var _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../SODAS_SDK_FILE/dataFile */ "./lib/SODAS_SDK_FILE/dataFile.ts");
8038
8508
  /* harmony import */ var _SODAS_SDK_FILE_thumbnailFile__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SODAS_SDK_FILE/thumbnailFile */ "./lib/SODAS_SDK_FILE/thumbnailFile.ts");
8039
8509
  /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./error */ "./lib/core/error.ts");
@@ -8123,9 +8593,9 @@ class Config {
8123
8593
  console.error("DATAHUB_API_URL not found in config");
8124
8594
  }
8125
8595
  if (this.governanceBaseUrl) {
8126
- _SODAS_SDK_FILE_artifactFile__WEBPACK_IMPORTED_MODULE_6__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8127
8596
  _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8128
8597
  _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8598
+ _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8129
8599
  }
8130
8600
  else {
8131
8601
  console.error("GOVERNANCE_API_URL not found in config");
@@ -8401,6 +8871,8 @@ __webpack_require__.r(__webpack_exports__);
8401
8871
  /* harmony import */ var _SODAS_SDK_CLASS_DCAT_distribution__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/DCAT/distribution */ "./lib/SODAS_SDK_CLASS/DCAT/distribution.ts");
8402
8872
  /* harmony import */ var _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/dictionary/term */ "./lib/SODAS_SDK_CLASS/dictionary/term.ts");
8403
8873
  /* harmony import */ var _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/dictionary/vocabulary */ "./lib/SODAS_SDK_CLASS/dictionary/vocabulary.ts");
8874
+ /* harmony import */ var _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SODAS_SDK_CLASS/template/validation */ "./lib/SODAS_SDK_CLASS/template/validation.ts");
8875
+
8404
8876
 
8405
8877
 
8406
8878
 
@@ -8416,6 +8888,7 @@ __webpack_require__.r(__webpack_exports__);
8416
8888
  function setGovernanceBearerToken(token) {
8417
8889
  _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].BEARER_TOKEN = token;
8418
8890
  _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].BEARER_TOKEN = token;
8891
+ _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__["default"].BEARER_TOKEN = token;
8419
8892
  }
8420
8893
  function setLegacyDatahubBearerToken(token) {
8421
8894
  _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__["default"].BEARER_TOKEN = token;