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
@@ -5359,8 +5359,12 @@ __webpack_require__.r(__webpack_exports__);
5359
5359
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5360
5360
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
5361
5361
  /* harmony export */ });
5362
- /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
5363
- /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5362
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
5363
+ /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
5364
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
5365
+ /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
5366
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
5367
+ /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5364
5368
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
5365
5369
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5366
5370
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -5372,10 +5376,14 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
5372
5376
  };
5373
5377
 
5374
5378
 
5379
+
5380
+
5381
+
5382
+
5375
5383
  /**
5376
5384
  * Represents a Data Service DTO.
5377
5385
  */
5378
- class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"] {
5386
+ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
5379
5387
  /**
5380
5388
  * Initializes the API URL for DataService.
5381
5389
  *
@@ -5386,6 +5394,37 @@ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"]
5386
5394
  DataService.API_URL = `${url}/dataservice`;
5387
5395
  DataService.LIST_URL = `${DataService.API_URL}/list`;
5388
5396
  }
5397
+ static listUserDBRecords() {
5398
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
5399
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
5400
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
5401
+ const url = DataService.LIST_URL.replace(/\/list$/, "/user/list");
5402
+ let response;
5403
+ try {
5404
+ response = yield axios__WEBPACK_IMPORTED_MODULE_5__["default"].get(url, {
5405
+ headers: Object.assign({ "Content-Type": "application/json" }, (DataService.BEARER_TOKEN && {
5406
+ Authorization: `Bearer ${DataService.BEARER_TOKEN}`,
5407
+ })),
5408
+ params: { pageNumber, pageSize, sortOrder },
5409
+ });
5410
+ }
5411
+ catch (error) {
5412
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
5413
+ }
5414
+ if (response.data.total != null && Array.isArray(response.data.list)) {
5415
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
5416
+ const dataService = new DataService();
5417
+ yield dataService.populateFromDTO(item);
5418
+ return dataService;
5419
+ })));
5420
+ return {
5421
+ total: response.data.total,
5422
+ list,
5423
+ };
5424
+ }
5425
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
5426
+ });
5427
+ }
5389
5428
  toDTO() {
5390
5429
  return Object.assign(Object.assign(Object.assign({}, super.toDTO()), (this.DataServiceID && { DataServiceID: this.DataServiceID })), { EndpointURL: this.EndpointURL, EndpointDescription: this.EndpointDescription });
5391
5430
  }
@@ -5397,7 +5436,7 @@ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"]
5397
5436
  yield _super.populateFromDTO.call(this, dto);
5398
5437
  const dataServiceDTO = dto;
5399
5438
  dataServiceDTO.DataServiceID &&
5400
- (this.DataServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_0__.asID)(dataServiceDTO.DataServiceID));
5439
+ (this.DataServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(dataServiceDTO.DataServiceID));
5401
5440
  dataServiceDTO.EndpointURL &&
5402
5441
  (this.EndpointURL = dataServiceDTO.EndpointURL);
5403
5442
  dataServiceDTO.EndpointDescription &&
@@ -5472,6 +5511,61 @@ class Dataset extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
5472
5511
  Dataset.API_URL = `${url}/dataset`;
5473
5512
  Dataset.LIST_URL = `${Dataset.API_URL}/list`;
5474
5513
  }
5514
+ static listUserDBRecords() {
5515
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
5516
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
5517
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
5518
+ const url = Dataset.LIST_URL.replace(/\/list$/, "/user/list");
5519
+ let response;
5520
+ try {
5521
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
5522
+ headers: Object.assign({ "Content-Type": "application/json" }, (Dataset.BEARER_TOKEN && {
5523
+ Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,
5524
+ })),
5525
+ params: { pageNumber, pageSize, sortOrder },
5526
+ });
5527
+ }
5528
+ catch (error) {
5529
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
5530
+ }
5531
+ if (response.data.total != null && Array.isArray(response.data.list)) {
5532
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
5533
+ const dataset = new Dataset();
5534
+ yield dataset.populateFromDTO(item);
5535
+ return dataset;
5536
+ })));
5537
+ return {
5538
+ total: response.data.total,
5539
+ list,
5540
+ };
5541
+ }
5542
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
5543
+ });
5544
+ }
5545
+ static getRDF(id_1) {
5546
+ return __awaiter(this, arguments, void 0, function* (id, depth = 1) {
5547
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
5548
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
5549
+ const url = `${Dataset.API_URL}/rdf`;
5550
+ let response;
5551
+ try {
5552
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
5553
+ headers: Object.assign({ Accept: "text/turtle" }, (Dataset.BEARER_TOKEN && {
5554
+ Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,
5555
+ })),
5556
+ params: { id, depth },
5557
+ responseType: "text",
5558
+ });
5559
+ }
5560
+ catch (error) {
5561
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
5562
+ }
5563
+ if (typeof response.data === "string") {
5564
+ return response.data;
5565
+ }
5566
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
5567
+ });
5568
+ }
5475
5569
  static searchDBRecords(searchKeyword_1) {
5476
5570
  return __awaiter(this, arguments, void 0, function* (searchKeyword, pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
5477
5571
  if (!searchKeyword || !searchKeyword.trim()) {
@@ -5796,12 +5890,13 @@ __webpack_require__.r(__webpack_exports__);
5796
5890
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5797
5891
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
5798
5892
  /* harmony export */ });
5799
- /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
5893
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
5800
5894
  /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
5801
5895
  /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
5802
5896
  /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
5803
- /* harmony import */ var _dataset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
5804
- /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5897
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
5898
+ /* harmony import */ var _dataset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
5899
+ /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
5805
5900
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
5806
5901
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5807
5902
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -5817,10 +5912,11 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
5817
5912
 
5818
5913
 
5819
5914
 
5915
+
5820
5916
  /**
5821
5917
  * Represents a series of datasets.
5822
5918
  */
5823
- class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
5919
+ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_5__["default"] {
5824
5920
  static syncToCurrentHub(datasetSeries) {
5825
5921
  return __awaiter(this, void 0, void 0, function* () {
5826
5922
  var _a;
@@ -5832,7 +5928,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5832
5928
  }
5833
5929
  }
5834
5930
  catch (error) {
5835
- if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
5931
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
5836
5932
  const newDatasetSeries = new DatasetSeries();
5837
5933
  yield newDatasetSeries.populateToSync(datasetSeries);
5838
5934
  yield newDatasetSeries.createDBRecord();
@@ -5893,7 +5989,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5893
5989
  const assetID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(assetIDStr);
5894
5990
  // Prefer existing record by AssetID; if not found, create a new one.
5895
5991
  try {
5896
- const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecordByAssetID(assetID);
5992
+ const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_4__["default"].getDBRecordByAssetID(assetID);
5897
5993
  if (existing) {
5898
5994
  existing.populateToSync(member);
5899
5995
  yield existing.updateDBRecord();
@@ -5901,8 +5997,8 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5901
5997
  }
5902
5998
  }
5903
5999
  catch (error) {
5904
- if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
5905
- const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_3__["default"]();
6000
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
6001
+ const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_4__["default"]();
5906
6002
  newMember.populateToSync(member);
5907
6003
  yield newMember.createDBRecord();
5908
6004
  resolvedIDs.push(newMember.id);
@@ -5925,6 +6021,61 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5925
6021
  DatasetSeries.API_URL = `${url}/datasetseries`;
5926
6022
  DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;
5927
6023
  }
6024
+ static getRDF(id_1) {
6025
+ return __awaiter(this, arguments, void 0, function* (id, depth = 1) {
6026
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
6027
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
6028
+ const url = `${DatasetSeries.API_URL}/rdf`;
6029
+ let response;
6030
+ try {
6031
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
6032
+ headers: Object.assign({ Accept: "text/turtle" }, (DatasetSeries.BEARER_TOKEN && {
6033
+ Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,
6034
+ })),
6035
+ params: { id, depth },
6036
+ responseType: "text",
6037
+ });
6038
+ }
6039
+ catch (error) {
6040
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
6041
+ }
6042
+ if (typeof response.data === "string") {
6043
+ return response.data;
6044
+ }
6045
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
6046
+ });
6047
+ }
6048
+ static listUserDBRecords() {
6049
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
6050
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
6051
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
6052
+ const url = DatasetSeries.LIST_URL.replace(/\/list$/, "/user/list");
6053
+ let response;
6054
+ try {
6055
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
6056
+ headers: Object.assign({ "Content-Type": "application/json" }, (DatasetSeries.BEARER_TOKEN && {
6057
+ Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,
6058
+ })),
6059
+ params: { pageNumber, pageSize, sortOrder },
6060
+ });
6061
+ }
6062
+ catch (error) {
6063
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
6064
+ }
6065
+ if (response.data.total != null && Array.isArray(response.data.list)) {
6066
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
6067
+ const datasetSeries = new DatasetSeries();
6068
+ yield datasetSeries.populateFromDTO(item);
6069
+ return datasetSeries;
6070
+ })));
6071
+ return {
6072
+ total: response.data.total,
6073
+ list,
6074
+ };
6075
+ }
6076
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
6077
+ });
6078
+ }
5928
6079
  toDTO() {
5929
6080
  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 }));
5930
6081
  return result;
@@ -5960,7 +6111,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5960
6111
  this.SeriesMemberIDs = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asIDs)(dto.SeriesMemberIDs);
5961
6112
  if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {
5962
6113
  for (const seriesMemberID of this.SeriesMemberIDs) {
5963
- const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecord(seriesMemberID);
6114
+ const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_4__["default"].getDBRecord(seriesMemberID);
5964
6115
  if (seriesMember) {
5965
6116
  this.SeriesMembers.push(seriesMember);
5966
6117
  }
@@ -5999,7 +6150,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
5999
6150
  if (!this.SeriesMemberIDs) {
6000
6151
  this.SeriesMemberIDs = [];
6001
6152
  }
6002
- if (!(dataset instanceof _dataset__WEBPACK_IMPORTED_MODULE_3__["default"])) {
6153
+ if (!(dataset instanceof _dataset__WEBPACK_IMPORTED_MODULE_4__["default"])) {
6003
6154
  throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.InvalidTypeError(dataset, "Dataset");
6004
6155
  }
6005
6156
  if (!dataset.id) {
@@ -7712,26 +7863,345 @@ class SODAS_SDK_CLASS {
7712
7863
 
7713
7864
  /***/ }),
7714
7865
 
7715
- /***/ "./lib/SODAS_SDK_FILE/artifactFile.ts":
7716
- /*!********************************************!*\
7717
- !*** ./lib/SODAS_SDK_FILE/artifactFile.ts ***!
7718
- \********************************************/
7866
+ /***/ "./lib/SODAS_SDK_CLASS/template/validation.ts":
7867
+ /*!****************************************************!*\
7868
+ !*** ./lib/SODAS_SDK_CLASS/template/validation.ts ***!
7869
+ \****************************************************/
7719
7870
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7720
7871
 
7721
7872
  __webpack_require__.r(__webpack_exports__);
7722
7873
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7874
+ /* harmony export */ EXPECTED_TYPE: () => (/* binding */ EXPECTED_TYPE),
7875
+ /* harmony export */ VALIDATION_TYPE: () => (/* binding */ VALIDATION_TYPE),
7723
7876
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
7724
7877
  /* harmony export */ });
7725
- /* harmony import */ var _sodasSDKFile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sodasSDKFile */ "./lib/SODAS_SDK_FILE/sodasSDKFile.ts");
7878
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
7879
+ /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
7880
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
7881
+ /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
7882
+ /* harmony import */ var _governanceClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../governanceClass */ "./lib/SODAS_SDK_CLASS/governanceClass.ts");
7883
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
7884
+ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
7885
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7886
+ return new (P || (P = Promise))(function (resolve, reject) {
7887
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7888
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7889
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7890
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
7891
+ });
7892
+ };
7893
+
7894
+
7895
+
7726
7896
 
7727
- class ArtifactFile extends _sodasSDKFile__WEBPACK_IMPORTED_MODULE_0__["default"] {
7897
+
7898
+
7899
+ var VALIDATION_TYPE;
7900
+ (function (VALIDATION_TYPE) {
7901
+ VALIDATION_TYPE["DATA_TYPE"] = "data_type";
7902
+ VALIDATION_TYPE["RANGE"] = "range";
7903
+ VALIDATION_TYPE["PATTERN"] = "pattern";
7904
+ VALIDATION_TYPE["UNIQUENESS"] = "uniqueness";
7905
+ VALIDATION_TYPE["COMPLETENESS"] = "completeness";
7906
+ VALIDATION_TYPE["LENGTH"] = "length";
7907
+ VALIDATION_TYPE["ALLOWED_VALUES"] = "allowed_values";
7908
+ VALIDATION_TYPE["OUTLIER"] = "outlier";
7909
+ VALIDATION_TYPE["STATISTICAL"] = "statistical";
7910
+ })(VALIDATION_TYPE || (VALIDATION_TYPE = {}));
7911
+ var EXPECTED_TYPE;
7912
+ (function (EXPECTED_TYPE) {
7913
+ EXPECTED_TYPE["NUMERIC"] = "numeric";
7914
+ EXPECTED_TYPE["STRING"] = "string";
7915
+ EXPECTED_TYPE["DATETIME"] = "datetime";
7916
+ })(EXPECTED_TYPE || (EXPECTED_TYPE = {}));
7917
+ class ValidationTemplate extends _governanceClass__WEBPACK_IMPORTED_MODULE_3__["default"] {
7728
7918
  static configureAPIURL(url) {
7729
- ArtifactFile.UPLOAD_URL = `${url}/api/v1/governance/open-reference-model/resource-descriptor/artifact/upload`;
7730
- ArtifactFile.REMOVE_URL = `${url}/api/v1/governance/open-reference-model/resource-descriptor/artifact/remove?id=`;
7731
- ArtifactFile.DOWNLOAD_URL = `${url}/artifacts`;
7919
+ const PREFIX = "api/v1/governance/template";
7920
+ ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;
7921
+ ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;
7922
+ ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;
7923
+ ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;
7924
+ ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;
7925
+ ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;
7926
+ }
7927
+ toDTO() {
7928
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, super.toDTO()), { name: this.Name }), (this.ValidationRules && { validationRules: this.ValidationRules })), (this.Description && { description: this.Description }));
7929
+ }
7930
+ populateFromFormData(data) {
7931
+ return __awaiter(this, void 0, void 0, function* () {
7932
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.NeedToImplementError();
7933
+ });
7934
+ }
7935
+ populateFromDTO(dto) {
7936
+ const _super = Object.create(null, {
7937
+ populateFromDTO: { get: () => super.populateFromDTO }
7938
+ });
7939
+ return __awaiter(this, void 0, void 0, function* () {
7940
+ yield _super.populateFromDTO.call(this, dto);
7941
+ const validationTemplateDTO = dto;
7942
+ this.ValidationRules = validationTemplateDTO.validationRules;
7943
+ this.Name = validationTemplateDTO.name;
7944
+ this.Description = validationTemplateDTO.description;
7945
+ });
7946
+ }
7947
+ static listDBRecords() {
7948
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC, vocabularyID) {
7949
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_4__.throwErrorIfAPIURLNotSetForStatic)(ValidationTemplate);
7950
+ try {
7951
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_5__["default"].get(ValidationTemplate.LIST_URL, {
7952
+ params: {
7953
+ offset: (pageNumber - 1) * pageSize,
7954
+ limit: pageSize,
7955
+ ordered: sortOrder,
7956
+ vocabularyId: vocabularyID,
7957
+ },
7958
+ // headers,
7959
+ });
7960
+ return yield ValidationTemplate.listResponseToPaginatedResponse(response);
7961
+ }
7962
+ catch (error) {
7963
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
7964
+ }
7965
+ });
7966
+ }
7967
+ get name() {
7968
+ return this.Name;
7969
+ }
7970
+ set name(value) {
7971
+ this.Name = value;
7972
+ }
7973
+ get description() {
7974
+ return this.Description;
7975
+ }
7976
+ set description(value) {
7977
+ this.Description = value;
7978
+ }
7979
+ get validationRules() {
7980
+ return this.ValidationRules;
7981
+ }
7982
+ set validationRules(value) {
7983
+ this.ValidationRules = value;
7984
+ }
7985
+ static parseValidationRules(rawRules) {
7986
+ return rawRules.map((rule) => {
7987
+ const baseRule = {
7988
+ column: rule.column,
7989
+ name: rule.name,
7990
+ type: rule.type,
7991
+ };
7992
+ switch (rule.type) {
7993
+ case VALIDATION_TYPE.COMPLETENESS:
7994
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.COMPLETENESS, min_completeness: rule.min_completeness, weight: rule.weight });
7995
+ case VALIDATION_TYPE.DATA_TYPE:
7996
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.DATA_TYPE, expected_type: rule.expected_type, weight: rule.weight });
7997
+ case VALIDATION_TYPE.PATTERN:
7998
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.PATTERN, pattern: rule.pattern, weight: rule.weight });
7999
+ case VALIDATION_TYPE.UNIQUENESS:
8000
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.UNIQUENESS, weight: rule.weight });
8001
+ default:
8002
+ return baseRule;
8003
+ }
8004
+ });
8005
+ }
8006
+ ensureValidationRulesInitialized() {
8007
+ if (!this.ValidationRules) {
8008
+ this.ValidationRules = [];
8009
+ }
8010
+ }
8011
+ createRule(type) {
8012
+ this.ensureValidationRulesInitialized();
8013
+ let rule;
8014
+ const baseRule = {
8015
+ column: "",
8016
+ name: "",
8017
+ type,
8018
+ };
8019
+ switch (type) {
8020
+ case VALIDATION_TYPE.COMPLETENESS:
8021
+ rule = Object.assign(Object.assign({}, baseRule), { min_completeness: 0, weight: 0 });
8022
+ break;
8023
+ case VALIDATION_TYPE.DATA_TYPE:
8024
+ rule = Object.assign(Object.assign({}, baseRule), { expected_type: EXPECTED_TYPE.STRING, weight: 0 });
8025
+ break;
8026
+ case VALIDATION_TYPE.PATTERN:
8027
+ rule = Object.assign(Object.assign({}, baseRule), { pattern: "", weight: 0 });
8028
+ break;
8029
+ case VALIDATION_TYPE.UNIQUENESS:
8030
+ rule = Object.assign(Object.assign({}, baseRule), { weight: 0 });
8031
+ break;
8032
+ default:
8033
+ rule = baseRule;
8034
+ }
8035
+ this.ValidationRules.push(rule);
8036
+ return rule;
8037
+ }
8038
+ deleteRuleAt(index) {
8039
+ if (!this.ValidationRules) {
8040
+ return;
8041
+ }
8042
+ if (index < 0 || index >= this.ValidationRules.length) {
8043
+ return;
8044
+ }
8045
+ this.ValidationRules.splice(index, 1);
8046
+ }
8047
+ deleteRuleByTypeAt(type, index) {
8048
+ if (!this.ValidationRules) {
8049
+ return;
8050
+ }
8051
+ if (index < 0) {
8052
+ return;
8053
+ }
8054
+ let current = 0;
8055
+ for (let i = 0; i < this.ValidationRules.length; i++) {
8056
+ if (this.ValidationRules[i].type === type) {
8057
+ if (current === index) {
8058
+ this.ValidationRules.splice(i, 1);
8059
+ return;
8060
+ }
8061
+ current++;
8062
+ }
8063
+ }
8064
+ }
8065
+ static groupValidationRulesByColumn(rules) {
8066
+ return rules.reduce((acc, rule) => {
8067
+ const column = rule.column;
8068
+ if (!acc[column]) {
8069
+ acc[column] = [];
8070
+ }
8071
+ acc[column].push(rule);
8072
+ return acc;
8073
+ }, {});
8074
+ }
8075
+ static groupValidationRulesByType(rules) {
8076
+ return rules.reduce((acc, rule) => {
8077
+ const type = rule.type;
8078
+ if (!acc[type]) {
8079
+ acc[type] = [];
8080
+ }
8081
+ acc[type].push(rule);
8082
+ return acc;
8083
+ }, {});
8084
+ }
8085
+ /**
8086
+ * Parse escaped JSON string containing validation_rules to ValidationRule[]
8087
+ * @param escapedString - Escaped JSON string like "validation_rules\":[{\"column\":\"class_label\",...}]"
8088
+ * @returns Parsed ValidationRule array
8089
+ */
8090
+ static parseValidationRulesFromEscapedString(escapedString) {
8091
+ let processedString = escapedString.trim();
8092
+ // Remove surrounding quotes if present (e.g., '"{"validation_rules":...}"' -> '{"validation_rules":...}')
8093
+ // Check for both single and double quotes
8094
+ if (((processedString.startsWith('"') && processedString.endsWith('"')) ||
8095
+ (processedString.startsWith("'") && processedString.endsWith("'"))) &&
8096
+ processedString.length > 1) {
8097
+ processedString = processedString.slice(1, -1).trim();
8098
+ }
8099
+ // Unescape the string (replace \" with ")
8100
+ // Handle both \" and \\\" cases to avoid double-escaping issues
8101
+ let unescapedString = processedString;
8102
+ // First handle \\\" -> \"
8103
+ unescapedString = unescapedString.replace(/\\\\"/g, '\\"');
8104
+ // Then handle \" -> "
8105
+ unescapedString = unescapedString.replace(/\\"/g, '"');
8106
+ // Try to parse as JSON
8107
+ let parsed;
8108
+ try {
8109
+ // First try parsing directly
8110
+ parsed = JSON.parse(unescapedString);
8111
+ }
8112
+ catch (error) {
8113
+ // If parsing fails, try different approaches
8114
+ const trimmed = unescapedString.trim();
8115
+ // If it starts with "validation_rules" but is not wrapped in braces
8116
+ if (trimmed.startsWith('"validation_rules"') ||
8117
+ trimmed.startsWith("validation_rules")) {
8118
+ // Try wrapping in braces
8119
+ const wrapped = trimmed.startsWith('"')
8120
+ ? `{${trimmed}}`
8121
+ : `{"${trimmed}}`;
8122
+ try {
8123
+ parsed = JSON.parse(wrapped);
8124
+ }
8125
+ catch (e) {
8126
+ // If still fails, try without the leading quote
8127
+ const withoutQuote = trimmed.replace(/^"/, "");
8128
+ parsed = JSON.parse(`{"${withoutQuote}`);
8129
+ }
8130
+ }
8131
+ else if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
8132
+ // Already looks like JSON object, try parsing again after trimming
8133
+ parsed = JSON.parse(trimmed);
8134
+ }
8135
+ else {
8136
+ throw error;
8137
+ }
8138
+ }
8139
+ // Extract validation_rules array
8140
+ let validationRules;
8141
+ // If it's already an array, use it directly
8142
+ if (Array.isArray(parsed)) {
8143
+ validationRules = parsed;
8144
+ }
8145
+ else if (parsed.validation_rules) {
8146
+ // If it's an object with validation_rules property
8147
+ validationRules = parsed.validation_rules;
8148
+ }
8149
+ else if (typeof parsed === "object") {
8150
+ // If it's an object but no validation_rules property, try to use it as is
8151
+ validationRules = parsed;
8152
+ }
8153
+ else {
8154
+ throw new Error("Invalid format: validation_rules not found");
8155
+ }
8156
+ // Ensure validationRules is an array
8157
+ if (!Array.isArray(validationRules)) {
8158
+ throw new Error("Invalid format: validation_rules must be an array");
8159
+ }
8160
+ const parsedRules = ValidationTemplate.parseValidationRules(validationRules);
8161
+ parsedRules._escapedString = escapedString;
8162
+ return parsedRules;
8163
+ }
8164
+ /**
8165
+ * Convert ValidationRule[] to escaped JSON string
8166
+ * @param rules - ValidationRule array to stringify
8167
+ * @returns Escaped JSON string with format: "{\"validation_rules\":[...]}"
8168
+ */
8169
+ static stringifyValidationRulesToEscapedString(rules) {
8170
+ // Convert ValidationRule[] to plain objects for JSON serialization
8171
+ const plainRules = rules.map((rule) => {
8172
+ const plainRule = {
8173
+ column: rule.column,
8174
+ name: rule.name,
8175
+ type: rule.type,
8176
+ };
8177
+ switch (rule.type) {
8178
+ case VALIDATION_TYPE.COMPLETENESS:
8179
+ const completenessRule = rule;
8180
+ return Object.assign(Object.assign({}, plainRule), { min_completeness: completenessRule.min_completeness, weight: completenessRule.weight });
8181
+ case VALIDATION_TYPE.DATA_TYPE:
8182
+ const dataTypeRule = rule;
8183
+ return Object.assign(Object.assign({}, plainRule), { expected_type: dataTypeRule.expected_type, weight: dataTypeRule.weight });
8184
+ case VALIDATION_TYPE.PATTERN:
8185
+ const patternRule = rule;
8186
+ return Object.assign(Object.assign({}, plainRule), { pattern: patternRule.pattern, weight: patternRule.weight });
8187
+ case VALIDATION_TYPE.UNIQUENESS:
8188
+ const uniquenessRule = rule;
8189
+ return Object.assign(Object.assign({}, plainRule), { weight: uniquenessRule.weight });
8190
+ default:
8191
+ return plainRule;
8192
+ }
8193
+ });
8194
+ // Create object with validation_rules property
8195
+ if (rules._escapedString) {
8196
+ return rules._escapedString;
8197
+ }
8198
+ const obj = { validation_rules: plainRules };
8199
+ const jsonString = JSON.stringify(obj);
8200
+ const escaped = jsonString.replace(/"/g, '\\"');
8201
+ return '"' + escaped + '"';
7732
8202
  }
7733
8203
  }
7734
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArtifactFile);
8204
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ValidationTemplate);
7735
8205
 
7736
8206
 
7737
8207
  /***/ }),
@@ -8003,7 +8473,7 @@ __webpack_require__.r(__webpack_exports__);
8003
8473
  /* 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");
8004
8474
  /* 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");
8005
8475
  /* 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");
8006
- /* harmony import */ var _SODAS_SDK_FILE_artifactFile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SODAS_SDK_FILE/artifactFile */ "./lib/SODAS_SDK_FILE/artifactFile.ts");
8476
+ /* 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");
8007
8477
  /* harmony import */ var _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../SODAS_SDK_FILE/dataFile */ "./lib/SODAS_SDK_FILE/dataFile.ts");
8008
8478
  /* harmony import */ var _SODAS_SDK_FILE_thumbnailFile__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SODAS_SDK_FILE/thumbnailFile */ "./lib/SODAS_SDK_FILE/thumbnailFile.ts");
8009
8479
  /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./error */ "./lib/core/error.ts");
@@ -8093,9 +8563,9 @@ class Config {
8093
8563
  console.error("DATAHUB_API_URL not found in config");
8094
8564
  }
8095
8565
  if (this.governanceBaseUrl) {
8096
- _SODAS_SDK_FILE_artifactFile__WEBPACK_IMPORTED_MODULE_6__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8097
8566
  _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8098
8567
  _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8568
+ _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
8099
8569
  }
8100
8570
  else {
8101
8571
  console.error("GOVERNANCE_API_URL not found in config");
@@ -8369,6 +8839,8 @@ __webpack_require__.r(__webpack_exports__);
8369
8839
  /* 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");
8370
8840
  /* 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");
8371
8841
  /* 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");
8842
+ /* 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");
8843
+
8372
8844
 
8373
8845
 
8374
8846
 
@@ -8384,6 +8856,7 @@ __webpack_require__.r(__webpack_exports__);
8384
8856
  function setGovernanceBearerToken(token) {
8385
8857
  _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].BEARER_TOKEN = token;
8386
8858
  _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].BEARER_TOKEN = token;
8859
+ _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__["default"].BEARER_TOKEN = token;
8387
8860
  }
8388
8861
  function setLegacyDatahubBearerToken(token) {
8389
8862
  _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__["default"].BEARER_TOKEN = token;