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
@@ -1793,8 +1793,12 @@ __webpack_require__.r(__webpack_exports__);
1793
1793
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1794
1794
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1795
1795
  /* harmony export */ });
1796
- /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
1797
- /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
1796
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
1797
+ /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
1798
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
1799
+ /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
1800
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
1801
+ /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
1798
1802
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
1799
1803
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1800
1804
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -1806,10 +1810,14 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
1806
1810
  };
1807
1811
 
1808
1812
 
1813
+
1814
+
1815
+
1816
+
1809
1817
  /**
1810
1818
  * Represents a Data Service DTO.
1811
1819
  */
1812
- class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"] {
1820
+ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
1813
1821
  /**
1814
1822
  * Initializes the API URL for DataService.
1815
1823
  *
@@ -1820,6 +1828,37 @@ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"]
1820
1828
  DataService.API_URL = `${url}/dataservice`;
1821
1829
  DataService.LIST_URL = `${DataService.API_URL}/list`;
1822
1830
  }
1831
+ static listUserDBRecords() {
1832
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
1833
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
1834
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
1835
+ const url = DataService.LIST_URL.replace(/\/list$/, "/user/list");
1836
+ let response;
1837
+ try {
1838
+ response = yield axios__WEBPACK_IMPORTED_MODULE_5__["default"].get(url, {
1839
+ headers: Object.assign({ "Content-Type": "application/json" }, (DataService.BEARER_TOKEN && {
1840
+ Authorization: `Bearer ${DataService.BEARER_TOKEN}`,
1841
+ })),
1842
+ params: { pageNumber, pageSize, sortOrder },
1843
+ });
1844
+ }
1845
+ catch (error) {
1846
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
1847
+ }
1848
+ if (response.data.total != null && Array.isArray(response.data.list)) {
1849
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
1850
+ const dataService = new DataService();
1851
+ yield dataService.populateFromDTO(item);
1852
+ return dataService;
1853
+ })));
1854
+ return {
1855
+ total: response.data.total,
1856
+ list,
1857
+ };
1858
+ }
1859
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
1860
+ });
1861
+ }
1823
1862
  toDTO() {
1824
1863
  return Object.assign(Object.assign(Object.assign({}, super.toDTO()), (this.DataServiceID && { DataServiceID: this.DataServiceID })), { EndpointURL: this.EndpointURL, EndpointDescription: this.EndpointDescription });
1825
1864
  }
@@ -1831,7 +1870,7 @@ class DataService extends _dcatResource__WEBPACK_IMPORTED_MODULE_1__["default"]
1831
1870
  yield _super.populateFromDTO.call(this, dto);
1832
1871
  const dataServiceDTO = dto;
1833
1872
  dataServiceDTO.DataServiceID &&
1834
- (this.DataServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_0__.asID)(dataServiceDTO.DataServiceID));
1873
+ (this.DataServiceID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(dataServiceDTO.DataServiceID));
1835
1874
  dataServiceDTO.EndpointURL &&
1836
1875
  (this.EndpointURL = dataServiceDTO.EndpointURL);
1837
1876
  dataServiceDTO.EndpointDescription &&
@@ -1907,6 +1946,61 @@ class Dataset extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
1907
1946
  Dataset.API_URL = `${url}/dataset`;
1908
1947
  Dataset.LIST_URL = `${Dataset.API_URL}/list`;
1909
1948
  }
1949
+ static listUserDBRecords() {
1950
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
1951
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
1952
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
1953
+ const url = Dataset.LIST_URL.replace(/\/list$/, "/user/list");
1954
+ let response;
1955
+ try {
1956
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
1957
+ headers: Object.assign({ "Content-Type": "application/json" }, (Dataset.BEARER_TOKEN && {
1958
+ Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,
1959
+ })),
1960
+ params: { pageNumber, pageSize, sortOrder },
1961
+ });
1962
+ }
1963
+ catch (error) {
1964
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
1965
+ }
1966
+ if (response.data.total != null && Array.isArray(response.data.list)) {
1967
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
1968
+ const dataset = new Dataset();
1969
+ yield dataset.populateFromDTO(item);
1970
+ return dataset;
1971
+ })));
1972
+ return {
1973
+ total: response.data.total,
1974
+ list,
1975
+ };
1976
+ }
1977
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
1978
+ });
1979
+ }
1980
+ static getRDF(id_1) {
1981
+ return __awaiter(this, arguments, void 0, function* (id, depth = 1) {
1982
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
1983
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
1984
+ const url = `${Dataset.API_URL}/rdf`;
1985
+ let response;
1986
+ try {
1987
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
1988
+ headers: Object.assign({ Accept: "text/turtle" }, (Dataset.BEARER_TOKEN && {
1989
+ Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,
1990
+ })),
1991
+ params: { id, depth },
1992
+ responseType: "text",
1993
+ });
1994
+ }
1995
+ catch (error) {
1996
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
1997
+ }
1998
+ if (typeof response.data === "string") {
1999
+ return response.data;
2000
+ }
2001
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
2002
+ });
2003
+ }
1910
2004
  static searchDBRecords(searchKeyword_1) {
1911
2005
  return __awaiter(this, arguments, void 0, function* (searchKeyword, pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
1912
2006
  if (!searchKeyword || !searchKeyword.trim()) {
@@ -2232,12 +2326,13 @@ __webpack_require__.r(__webpack_exports__);
2232
2326
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2233
2327
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2234
2328
  /* harmony export */ });
2235
- /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
2329
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
2236
2330
  /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
2237
2331
  /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
2238
2332
  /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
2239
- /* harmony import */ var _dataset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
2240
- /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
2333
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
2334
+ /* harmony import */ var _dataset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataset */ "./lib/SODAS_SDK_CLASS/DCAT/dataset.ts");
2335
+ /* harmony import */ var _dcatResource__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dcatResource */ "./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts");
2241
2336
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
2242
2337
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2243
2338
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -2253,10 +2348,11 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
2253
2348
 
2254
2349
 
2255
2350
 
2351
+
2256
2352
  /**
2257
2353
  * Represents a series of datasets.
2258
2354
  */
2259
- class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"] {
2355
+ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_5__["default"] {
2260
2356
  static syncToCurrentHub(datasetSeries) {
2261
2357
  return __awaiter(this, void 0, void 0, function* () {
2262
2358
  var _a;
@@ -2268,7 +2364,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2268
2364
  }
2269
2365
  }
2270
2366
  catch (error) {
2271
- if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2367
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2272
2368
  const newDatasetSeries = new DatasetSeries();
2273
2369
  yield newDatasetSeries.populateToSync(datasetSeries);
2274
2370
  yield newDatasetSeries.createDBRecord();
@@ -2329,7 +2425,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2329
2425
  const assetID = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asID)(assetIDStr);
2330
2426
  // Prefer existing record by AssetID; if not found, create a new one.
2331
2427
  try {
2332
- const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecordByAssetID(assetID);
2428
+ const existing = yield _dataset__WEBPACK_IMPORTED_MODULE_4__["default"].getDBRecordByAssetID(assetID);
2333
2429
  if (existing) {
2334
2430
  existing.populateToSync(member);
2335
2431
  yield existing.updateDBRecord();
@@ -2337,8 +2433,8 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2337
2433
  }
2338
2434
  }
2339
2435
  catch (error) {
2340
- if (axios__WEBPACK_IMPORTED_MODULE_5__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2341
- const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_3__["default"]();
2436
+ if (axios__WEBPACK_IMPORTED_MODULE_6__["default"].isAxiosError(error) && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
2437
+ const newMember = new _dataset__WEBPACK_IMPORTED_MODULE_4__["default"]();
2342
2438
  newMember.populateToSync(member);
2343
2439
  yield newMember.createDBRecord();
2344
2440
  resolvedIDs.push(newMember.id);
@@ -2361,6 +2457,61 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2361
2457
  DatasetSeries.API_URL = `${url}/datasetseries`;
2362
2458
  DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;
2363
2459
  }
2460
+ static getRDF(id_1) {
2461
+ return __awaiter(this, arguments, void 0, function* (id, depth = 1) {
2462
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
2463
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
2464
+ const url = `${DatasetSeries.API_URL}/rdf`;
2465
+ let response;
2466
+ try {
2467
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
2468
+ headers: Object.assign({ Accept: "text/turtle" }, (DatasetSeries.BEARER_TOKEN && {
2469
+ Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,
2470
+ })),
2471
+ params: { id, depth },
2472
+ responseType: "text",
2473
+ });
2474
+ }
2475
+ catch (error) {
2476
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
2477
+ }
2478
+ if (typeof response.data === "string") {
2479
+ return response.data;
2480
+ }
2481
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
2482
+ });
2483
+ }
2484
+ static listUserDBRecords() {
2485
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC) {
2486
+ // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type
2487
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_3__.throwErrorIfAPIURLNotSetForStatic)(this);
2488
+ const url = DatasetSeries.LIST_URL.replace(/\/list$/, "/user/list");
2489
+ let response;
2490
+ try {
2491
+ response = yield axios__WEBPACK_IMPORTED_MODULE_6__["default"].get(url, {
2492
+ headers: Object.assign({ "Content-Type": "application/json" }, (DatasetSeries.BEARER_TOKEN && {
2493
+ Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,
2494
+ })),
2495
+ params: { pageNumber, pageSize, sortOrder },
2496
+ });
2497
+ }
2498
+ catch (error) {
2499
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
2500
+ }
2501
+ if (response.data.total != null && Array.isArray(response.data.list)) {
2502
+ const list = yield Promise.all(response.data.list.map((item) => __awaiter(this, void 0, void 0, function* () {
2503
+ const datasetSeries = new DatasetSeries();
2504
+ yield datasetSeries.populateFromDTO(item);
2505
+ return datasetSeries;
2506
+ })));
2507
+ return {
2508
+ total: response.data.total,
2509
+ list,
2510
+ };
2511
+ }
2512
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseFormatError(response);
2513
+ });
2514
+ }
2364
2515
  toDTO() {
2365
2516
  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 }));
2366
2517
  return result;
@@ -2396,7 +2547,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2396
2547
  this.SeriesMemberIDs = (0,_core_type__WEBPACK_IMPORTED_MODULE_1__.asIDs)(dto.SeriesMemberIDs);
2397
2548
  if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {
2398
2549
  for (const seriesMemberID of this.SeriesMemberIDs) {
2399
- const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_3__["default"].getDBRecord(seriesMemberID);
2550
+ const seriesMember = yield _dataset__WEBPACK_IMPORTED_MODULE_4__["default"].getDBRecord(seriesMemberID);
2400
2551
  if (seriesMember) {
2401
2552
  this.SeriesMembers.push(seriesMember);
2402
2553
  }
@@ -2435,7 +2586,7 @@ class DatasetSeries extends _dcatResource__WEBPACK_IMPORTED_MODULE_4__["default"
2435
2586
  if (!this.SeriesMemberIDs) {
2436
2587
  this.SeriesMemberIDs = [];
2437
2588
  }
2438
- if (!(dataset instanceof _dataset__WEBPACK_IMPORTED_MODULE_3__["default"])) {
2589
+ if (!(dataset instanceof _dataset__WEBPACK_IMPORTED_MODULE_4__["default"])) {
2439
2590
  throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.InvalidTypeError(dataset, "Dataset");
2440
2591
  }
2441
2592
  if (!dataset.id) {
@@ -4156,27 +4307,346 @@ class SODAS_SDK_CLASS {
4156
4307
 
4157
4308
  /***/ }),
4158
4309
 
4159
- /***/ "./lib/SODAS_SDK_FILE/artifactFile.ts":
4160
- /*!********************************************!*\
4161
- !*** ./lib/SODAS_SDK_FILE/artifactFile.ts ***!
4162
- \********************************************/
4310
+ /***/ "./lib/SODAS_SDK_CLASS/template/validation.ts":
4311
+ /*!****************************************************!*\
4312
+ !*** ./lib/SODAS_SDK_CLASS/template/validation.ts ***!
4313
+ \****************************************************/
4163
4314
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4164
4315
 
4165
4316
  "use strict";
4166
4317
  __webpack_require__.r(__webpack_exports__);
4167
4318
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4319
+ /* harmony export */ EXPECTED_TYPE: () => (/* binding */ EXPECTED_TYPE),
4320
+ /* harmony export */ VALIDATION_TYPE: () => (/* binding */ VALIDATION_TYPE),
4168
4321
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
4169
4322
  /* harmony export */ });
4170
- /* harmony import */ var _sodasSDKFile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sodasSDKFile */ "./lib/SODAS_SDK_FILE/sodasSDKFile.ts");
4323
+ /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");
4324
+ /* harmony import */ var _core_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/error */ "./lib/core/error.ts");
4325
+ /* harmony import */ var _core_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/type */ "./lib/core/type.ts");
4326
+ /* harmony import */ var _core_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/util */ "./lib/core/util.ts");
4327
+ /* harmony import */ var _governanceClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../governanceClass */ "./lib/SODAS_SDK_CLASS/governanceClass.ts");
4328
+ /* harmony import */ var _sodasSDKClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sodasSDKClass */ "./lib/SODAS_SDK_CLASS/sodasSDKClass.ts");
4329
+ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
4330
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4331
+ return new (P || (P = Promise))(function (resolve, reject) {
4332
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
4333
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
4334
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
4335
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
4336
+ });
4337
+ };
4338
+
4339
+
4171
4340
 
4172
- class ArtifactFile extends _sodasSDKFile__WEBPACK_IMPORTED_MODULE_0__["default"] {
4341
+
4342
+
4343
+
4344
+ var VALIDATION_TYPE;
4345
+ (function (VALIDATION_TYPE) {
4346
+ VALIDATION_TYPE["DATA_TYPE"] = "data_type";
4347
+ VALIDATION_TYPE["RANGE"] = "range";
4348
+ VALIDATION_TYPE["PATTERN"] = "pattern";
4349
+ VALIDATION_TYPE["UNIQUENESS"] = "uniqueness";
4350
+ VALIDATION_TYPE["COMPLETENESS"] = "completeness";
4351
+ VALIDATION_TYPE["LENGTH"] = "length";
4352
+ VALIDATION_TYPE["ALLOWED_VALUES"] = "allowed_values";
4353
+ VALIDATION_TYPE["OUTLIER"] = "outlier";
4354
+ VALIDATION_TYPE["STATISTICAL"] = "statistical";
4355
+ })(VALIDATION_TYPE || (VALIDATION_TYPE = {}));
4356
+ var EXPECTED_TYPE;
4357
+ (function (EXPECTED_TYPE) {
4358
+ EXPECTED_TYPE["NUMERIC"] = "numeric";
4359
+ EXPECTED_TYPE["STRING"] = "string";
4360
+ EXPECTED_TYPE["DATETIME"] = "datetime";
4361
+ })(EXPECTED_TYPE || (EXPECTED_TYPE = {}));
4362
+ class ValidationTemplate extends _governanceClass__WEBPACK_IMPORTED_MODULE_3__["default"] {
4173
4363
  static configureAPIURL(url) {
4174
- ArtifactFile.UPLOAD_URL = `${url}/api/v1/governance/open-reference-model/resource-descriptor/artifact/upload`;
4175
- ArtifactFile.REMOVE_URL = `${url}/api/v1/governance/open-reference-model/resource-descriptor/artifact/remove?id=`;
4176
- ArtifactFile.DOWNLOAD_URL = `${url}/artifacts`;
4364
+ const PREFIX = "api/v1/governance/template";
4365
+ ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;
4366
+ ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;
4367
+ ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;
4368
+ ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;
4369
+ ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;
4370
+ ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;
4371
+ }
4372
+ toDTO() {
4373
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, super.toDTO()), { name: this.Name }), (this.ValidationRules && { validationRules: this.ValidationRules })), (this.Description && { description: this.Description }));
4374
+ }
4375
+ populateFromFormData(data) {
4376
+ return __awaiter(this, void 0, void 0, function* () {
4377
+ throw new _core_error__WEBPACK_IMPORTED_MODULE_0__.NeedToImplementError();
4378
+ });
4379
+ }
4380
+ populateFromDTO(dto) {
4381
+ const _super = Object.create(null, {
4382
+ populateFromDTO: { get: () => super.populateFromDTO }
4383
+ });
4384
+ return __awaiter(this, void 0, void 0, function* () {
4385
+ yield _super.populateFromDTO.call(this, dto);
4386
+ const validationTemplateDTO = dto;
4387
+ this.ValidationRules = validationTemplateDTO.validationRules;
4388
+ this.Name = validationTemplateDTO.name;
4389
+ this.Description = validationTemplateDTO.description;
4390
+ });
4391
+ }
4392
+ static listDBRecords() {
4393
+ return __awaiter(this, arguments, void 0, function* (pageNumber = 1, pageSize = 10, sortOrder = _core_type__WEBPACK_IMPORTED_MODULE_1__.SortOrder.DESC, vocabularyID) {
4394
+ (0,_sodasSDKClass__WEBPACK_IMPORTED_MODULE_4__.throwErrorIfAPIURLNotSetForStatic)(ValidationTemplate);
4395
+ try {
4396
+ const response = yield axios__WEBPACK_IMPORTED_MODULE_5__["default"].get(ValidationTemplate.LIST_URL, {
4397
+ params: {
4398
+ offset: (pageNumber - 1) * pageSize,
4399
+ limit: pageSize,
4400
+ ordered: sortOrder,
4401
+ vocabularyId: vocabularyID,
4402
+ },
4403
+ // headers,
4404
+ });
4405
+ return yield ValidationTemplate.listResponseToPaginatedResponse(response);
4406
+ }
4407
+ catch (error) {
4408
+ (0,_core_util__WEBPACK_IMPORTED_MODULE_2__.handleAxiosError)(error);
4409
+ }
4410
+ });
4411
+ }
4412
+ get name() {
4413
+ return this.Name;
4414
+ }
4415
+ set name(value) {
4416
+ this.Name = value;
4417
+ }
4418
+ get description() {
4419
+ return this.Description;
4420
+ }
4421
+ set description(value) {
4422
+ this.Description = value;
4423
+ }
4424
+ get validationRules() {
4425
+ return this.ValidationRules;
4426
+ }
4427
+ set validationRules(value) {
4428
+ this.ValidationRules = value;
4429
+ }
4430
+ static parseValidationRules(rawRules) {
4431
+ return rawRules.map((rule) => {
4432
+ const baseRule = {
4433
+ column: rule.column,
4434
+ name: rule.name,
4435
+ type: rule.type,
4436
+ };
4437
+ switch (rule.type) {
4438
+ case VALIDATION_TYPE.COMPLETENESS:
4439
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.COMPLETENESS, min_completeness: rule.min_completeness, weight: rule.weight });
4440
+ case VALIDATION_TYPE.DATA_TYPE:
4441
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.DATA_TYPE, expected_type: rule.expected_type, weight: rule.weight });
4442
+ case VALIDATION_TYPE.PATTERN:
4443
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.PATTERN, pattern: rule.pattern, weight: rule.weight });
4444
+ case VALIDATION_TYPE.UNIQUENESS:
4445
+ return Object.assign(Object.assign({}, baseRule), { type: VALIDATION_TYPE.UNIQUENESS, weight: rule.weight });
4446
+ default:
4447
+ return baseRule;
4448
+ }
4449
+ });
4450
+ }
4451
+ ensureValidationRulesInitialized() {
4452
+ if (!this.ValidationRules) {
4453
+ this.ValidationRules = [];
4454
+ }
4455
+ }
4456
+ createRule(type) {
4457
+ this.ensureValidationRulesInitialized();
4458
+ let rule;
4459
+ const baseRule = {
4460
+ column: "",
4461
+ name: "",
4462
+ type,
4463
+ };
4464
+ switch (type) {
4465
+ case VALIDATION_TYPE.COMPLETENESS:
4466
+ rule = Object.assign(Object.assign({}, baseRule), { min_completeness: 0, weight: 0 });
4467
+ break;
4468
+ case VALIDATION_TYPE.DATA_TYPE:
4469
+ rule = Object.assign(Object.assign({}, baseRule), { expected_type: EXPECTED_TYPE.STRING, weight: 0 });
4470
+ break;
4471
+ case VALIDATION_TYPE.PATTERN:
4472
+ rule = Object.assign(Object.assign({}, baseRule), { pattern: "", weight: 0 });
4473
+ break;
4474
+ case VALIDATION_TYPE.UNIQUENESS:
4475
+ rule = Object.assign(Object.assign({}, baseRule), { weight: 0 });
4476
+ break;
4477
+ default:
4478
+ rule = baseRule;
4479
+ }
4480
+ this.ValidationRules.push(rule);
4481
+ return rule;
4482
+ }
4483
+ deleteRuleAt(index) {
4484
+ if (!this.ValidationRules) {
4485
+ return;
4486
+ }
4487
+ if (index < 0 || index >= this.ValidationRules.length) {
4488
+ return;
4489
+ }
4490
+ this.ValidationRules.splice(index, 1);
4491
+ }
4492
+ deleteRuleByTypeAt(type, index) {
4493
+ if (!this.ValidationRules) {
4494
+ return;
4495
+ }
4496
+ if (index < 0) {
4497
+ return;
4498
+ }
4499
+ let current = 0;
4500
+ for (let i = 0; i < this.ValidationRules.length; i++) {
4501
+ if (this.ValidationRules[i].type === type) {
4502
+ if (current === index) {
4503
+ this.ValidationRules.splice(i, 1);
4504
+ return;
4505
+ }
4506
+ current++;
4507
+ }
4508
+ }
4509
+ }
4510
+ static groupValidationRulesByColumn(rules) {
4511
+ return rules.reduce((acc, rule) => {
4512
+ const column = rule.column;
4513
+ if (!acc[column]) {
4514
+ acc[column] = [];
4515
+ }
4516
+ acc[column].push(rule);
4517
+ return acc;
4518
+ }, {});
4519
+ }
4520
+ static groupValidationRulesByType(rules) {
4521
+ return rules.reduce((acc, rule) => {
4522
+ const type = rule.type;
4523
+ if (!acc[type]) {
4524
+ acc[type] = [];
4525
+ }
4526
+ acc[type].push(rule);
4527
+ return acc;
4528
+ }, {});
4529
+ }
4530
+ /**
4531
+ * Parse escaped JSON string containing validation_rules to ValidationRule[]
4532
+ * @param escapedString - Escaped JSON string like "validation_rules\":[{\"column\":\"class_label\",...}]"
4533
+ * @returns Parsed ValidationRule array
4534
+ */
4535
+ static parseValidationRulesFromEscapedString(escapedString) {
4536
+ let processedString = escapedString.trim();
4537
+ // Remove surrounding quotes if present (e.g., '"{"validation_rules":...}"' -> '{"validation_rules":...}')
4538
+ // Check for both single and double quotes
4539
+ if (((processedString.startsWith('"') && processedString.endsWith('"')) ||
4540
+ (processedString.startsWith("'") && processedString.endsWith("'"))) &&
4541
+ processedString.length > 1) {
4542
+ processedString = processedString.slice(1, -1).trim();
4543
+ }
4544
+ // Unescape the string (replace \" with ")
4545
+ // Handle both \" and \\\" cases to avoid double-escaping issues
4546
+ let unescapedString = processedString;
4547
+ // First handle \\\" -> \"
4548
+ unescapedString = unescapedString.replace(/\\\\"/g, '\\"');
4549
+ // Then handle \" -> "
4550
+ unescapedString = unescapedString.replace(/\\"/g, '"');
4551
+ // Try to parse as JSON
4552
+ let parsed;
4553
+ try {
4554
+ // First try parsing directly
4555
+ parsed = JSON.parse(unescapedString);
4556
+ }
4557
+ catch (error) {
4558
+ // If parsing fails, try different approaches
4559
+ const trimmed = unescapedString.trim();
4560
+ // If it starts with "validation_rules" but is not wrapped in braces
4561
+ if (trimmed.startsWith('"validation_rules"') ||
4562
+ trimmed.startsWith("validation_rules")) {
4563
+ // Try wrapping in braces
4564
+ const wrapped = trimmed.startsWith('"')
4565
+ ? `{${trimmed}}`
4566
+ : `{"${trimmed}}`;
4567
+ try {
4568
+ parsed = JSON.parse(wrapped);
4569
+ }
4570
+ catch (e) {
4571
+ // If still fails, try without the leading quote
4572
+ const withoutQuote = trimmed.replace(/^"/, "");
4573
+ parsed = JSON.parse(`{"${withoutQuote}`);
4574
+ }
4575
+ }
4576
+ else if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
4577
+ // Already looks like JSON object, try parsing again after trimming
4578
+ parsed = JSON.parse(trimmed);
4579
+ }
4580
+ else {
4581
+ throw error;
4582
+ }
4583
+ }
4584
+ // Extract validation_rules array
4585
+ let validationRules;
4586
+ // If it's already an array, use it directly
4587
+ if (Array.isArray(parsed)) {
4588
+ validationRules = parsed;
4589
+ }
4590
+ else if (parsed.validation_rules) {
4591
+ // If it's an object with validation_rules property
4592
+ validationRules = parsed.validation_rules;
4593
+ }
4594
+ else if (typeof parsed === "object") {
4595
+ // If it's an object but no validation_rules property, try to use it as is
4596
+ validationRules = parsed;
4597
+ }
4598
+ else {
4599
+ throw new Error("Invalid format: validation_rules not found");
4600
+ }
4601
+ // Ensure validationRules is an array
4602
+ if (!Array.isArray(validationRules)) {
4603
+ throw new Error("Invalid format: validation_rules must be an array");
4604
+ }
4605
+ const parsedRules = ValidationTemplate.parseValidationRules(validationRules);
4606
+ parsedRules._escapedString = escapedString;
4607
+ return parsedRules;
4608
+ }
4609
+ /**
4610
+ * Convert ValidationRule[] to escaped JSON string
4611
+ * @param rules - ValidationRule array to stringify
4612
+ * @returns Escaped JSON string with format: "{\"validation_rules\":[...]}"
4613
+ */
4614
+ static stringifyValidationRulesToEscapedString(rules) {
4615
+ // Convert ValidationRule[] to plain objects for JSON serialization
4616
+ const plainRules = rules.map((rule) => {
4617
+ const plainRule = {
4618
+ column: rule.column,
4619
+ name: rule.name,
4620
+ type: rule.type,
4621
+ };
4622
+ switch (rule.type) {
4623
+ case VALIDATION_TYPE.COMPLETENESS:
4624
+ const completenessRule = rule;
4625
+ return Object.assign(Object.assign({}, plainRule), { min_completeness: completenessRule.min_completeness, weight: completenessRule.weight });
4626
+ case VALIDATION_TYPE.DATA_TYPE:
4627
+ const dataTypeRule = rule;
4628
+ return Object.assign(Object.assign({}, plainRule), { expected_type: dataTypeRule.expected_type, weight: dataTypeRule.weight });
4629
+ case VALIDATION_TYPE.PATTERN:
4630
+ const patternRule = rule;
4631
+ return Object.assign(Object.assign({}, plainRule), { pattern: patternRule.pattern, weight: patternRule.weight });
4632
+ case VALIDATION_TYPE.UNIQUENESS:
4633
+ const uniquenessRule = rule;
4634
+ return Object.assign(Object.assign({}, plainRule), { weight: uniquenessRule.weight });
4635
+ default:
4636
+ return plainRule;
4637
+ }
4638
+ });
4639
+ // Create object with validation_rules property
4640
+ if (rules._escapedString) {
4641
+ return rules._escapedString;
4642
+ }
4643
+ const obj = { validation_rules: plainRules };
4644
+ const jsonString = JSON.stringify(obj);
4645
+ const escaped = jsonString.replace(/"/g, '\\"');
4646
+ return '"' + escaped + '"';
4177
4647
  }
4178
4648
  }
4179
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArtifactFile);
4649
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ValidationTemplate);
4180
4650
 
4181
4651
 
4182
4652
  /***/ }),
@@ -4452,7 +4922,7 @@ __webpack_require__.r(__webpack_exports__);
4452
4922
  /* 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");
4453
4923
  /* 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");
4454
4924
  /* 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");
4455
- /* harmony import */ var _SODAS_SDK_FILE_artifactFile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SODAS_SDK_FILE/artifactFile */ "./lib/SODAS_SDK_FILE/artifactFile.ts");
4925
+ /* 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");
4456
4926
  /* harmony import */ var _SODAS_SDK_FILE_dataFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../SODAS_SDK_FILE/dataFile */ "./lib/SODAS_SDK_FILE/dataFile.ts");
4457
4927
  /* harmony import */ var _SODAS_SDK_FILE_thumbnailFile__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../SODAS_SDK_FILE/thumbnailFile */ "./lib/SODAS_SDK_FILE/thumbnailFile.ts");
4458
4928
  /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./error */ "./lib/core/error.ts");
@@ -4542,9 +5012,9 @@ class Config {
4542
5012
  console.error("DATAHUB_API_URL not found in config");
4543
5013
  }
4544
5014
  if (this.governanceBaseUrl) {
4545
- _SODAS_SDK_FILE_artifactFile__WEBPACK_IMPORTED_MODULE_6__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
4546
5015
  _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
4547
5016
  _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
5017
+ _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__["default"].configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);
4548
5018
  }
4549
5019
  else {
4550
5020
  console.error("GOVERNANCE_API_URL not found in config");
@@ -4820,6 +5290,8 @@ __webpack_require__.r(__webpack_exports__);
4820
5290
  /* 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");
4821
5291
  /* 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");
4822
5292
  /* 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");
5293
+ /* 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");
5294
+
4823
5295
 
4824
5296
 
4825
5297
 
@@ -4835,6 +5307,7 @@ __webpack_require__.r(__webpack_exports__);
4835
5307
  function setGovernanceBearerToken(token) {
4836
5308
  _SODAS_SDK_CLASS_dictionary_vocabulary__WEBPACK_IMPORTED_MODULE_5__["default"].BEARER_TOKEN = token;
4837
5309
  _SODAS_SDK_CLASS_dictionary_term__WEBPACK_IMPORTED_MODULE_4__["default"].BEARER_TOKEN = token;
5310
+ _SODAS_SDK_CLASS_template_validation__WEBPACK_IMPORTED_MODULE_6__["default"].BEARER_TOKEN = token;
4838
5311
  }
4839
5312
  function setLegacyDatahubBearerToken(token) {
4840
5313
  _SODAS_SDK_CLASS_DCAT_dataset__WEBPACK_IMPORTED_MODULE_1__["default"].BEARER_TOKEN = token;