@startinblox/core 2.0.6-beta.23 → 2.0.6-beta.25

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.
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { q as mergeContexts, o as getRawContext, n as normalizeContext } from "./helpers-DtCY-jxq.js";
5
- import { S as StoreService } from "./store-CcdngHTz.js";
5
+ import { S as StoreService } from "./store-C655KD6t.js";
6
6
  const store = StoreService.getInstance();
7
7
  class CustomGetter {
8
8
  // search attributes to give to server
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { g as getDefaultExportFromCjs, S as StoreService, b as base_context, f as formatAttributesToServerPaginationOptions, m as mergeServerSearchOptions, a as formatAttributesToServerSearchOptions, c as StoreType, d as StoreFactory, h as hasSetLocalData, e as hasQueryIndex, __tla as __tla_0 } from "./store-CcdngHTz.js";
4
+ import { g as getDefaultExportFromCjs, S as StoreService, b as base_context, f as formatAttributesToServerPaginationOptions, m as mergeServerSearchOptions, a as formatAttributesToServerSearchOptions, c as StoreType, d as StoreFactory, h as hasSetLocalData, e as hasQueryIndex, __tla as __tla_0 } from "./store-C655KD6t.js";
5
5
  import { d as defineComponent, n as normalizeContext, u as uniqID, f as fuzzyCompare, a as asyncQuerySelector, i as importInlineCSS, b as importCSS, c as doesResourceContainList, e as findClosingBracketMatchIndex, p as parseFieldsString, g as evalTemplateString, h as compare, j as generalComparator, t as transformArrayToContainer, s as setDeepProperty } from "./helpers-DtCY-jxq.js";
6
- import { __tla as __tla_1 } from "./store-CcdngHTz.js";
7
- import { A, D } from "./store-CcdngHTz.js";
6
+ import { __tla as __tla_1 } from "./store-C655KD6t.js";
7
+ import { A, D } from "./store-C655KD6t.js";
8
8
  import { k } from "./helpers-DtCY-jxq.js";
9
9
  let index$4, BaseWidgetMixin, index$3, CounterMixin, DspCatalogDisplay, EdcAssetsDisplay, FederationMixin, FilterMixin, GrouperMixin, HighlighterMixin, ListMixin, NextMixin, PaginateMixin, RequiredMixin, Sib, SolidAcChecker, SolidDelete, SolidDisplay, SolidForm, SolidFormSearch, SolidLang, SolidMemberAdd, SolidMemberDelete, SolidMembership, SolidTable, SolidTemplateElement, SolidWidget, SorterMixin, StoreMixin, index$2, index$1, index, TranslationMixin, ValidationMixin, WidgetMixin, b, o$2, newWidgetFactory, D2, o$1, m, widgetFactory;
10
10
  let __tla = Promise.all([
@@ -4875,6 +4875,426 @@ let __tla = (async () => {
4875
4875
  return newStore;
4876
4876
  }
4877
4877
  }
4878
+ class FederatedCatalogueDcpAPIWrapper {
4879
+ constructor(baseUrl, fetchImpl = fetch.bind(globalThis)) {
4880
+ __publicField(this, "baseUrl");
4881
+ __publicField(this, "fetchImpl");
4882
+ this.baseUrl = baseUrl.replace(/\/+$/, "");
4883
+ this.fetchImpl = fetchImpl;
4884
+ }
4885
+ async getAggregatedCatalog(opts = {}) {
4886
+ const { flatten: flatten2 = true } = opts;
4887
+ const url2 = `${this.baseUrl}/v1alpha/catalog/query${flatten2 ? "?flatten=true" : ""}`;
4888
+ const body = JSON.stringify({
4889
+ "@context": {
4890
+ edc: "https://w3id.org/edc/v0.0.1/ns/"
4891
+ },
4892
+ "@type": "QuerySpec"
4893
+ });
4894
+ const response = await this.fetchImpl(url2, {
4895
+ method: "POST",
4896
+ headers: {
4897
+ "Content-Type": "application/json",
4898
+ Accept: "application/json"
4899
+ },
4900
+ body
4901
+ });
4902
+ if (!response.ok) {
4903
+ throw new Error(`[FederatedCatalogueDcpAPIWrapper] POST /v1alpha/catalog/query failed: ${response.status} ${response.statusText}`, {
4904
+ cause: response
4905
+ });
4906
+ }
4907
+ const payload = await response.json();
4908
+ if (Array.isArray(payload)) return payload;
4909
+ if (payload && typeof payload === "object") {
4910
+ const values = Object.values(payload);
4911
+ return values.filter((v) => typeof v === "object" && v !== null && "@type" in v);
4912
+ }
4913
+ return [];
4914
+ }
4915
+ }
4916
+ const instances = /* @__PURE__ */ new Map();
4917
+ function getFederatedCatalogueDcpAPIWrapper(baseUrl, fetchImpl = fetch.bind(globalThis)) {
4918
+ const key = baseUrl;
4919
+ let inst = instances.get(key);
4920
+ if (!inst) {
4921
+ inst = new FederatedCatalogueDcpAPIWrapper(baseUrl, fetchImpl);
4922
+ instances.set(key, inst);
4923
+ }
4924
+ return inst;
4925
+ }
4926
+ function toArray$1(v) {
4927
+ if (v === void 0 || v === null) return [];
4928
+ return Array.isArray(v) ? v : [
4929
+ v
4930
+ ];
4931
+ }
4932
+ function readObjectId(v) {
4933
+ if (typeof v === "string" && v.length > 0) return v;
4934
+ if (v && typeof v === "object" && !Array.isArray(v)) {
4935
+ const id = v["@id"];
4936
+ if (typeof id === "string" && id.length > 0) return id;
4937
+ }
4938
+ return void 0;
4939
+ }
4940
+ function readString(v) {
4941
+ if (typeof v === "string") return v.length > 0 ? v : void 0;
4942
+ if (v && typeof v === "object" && !Array.isArray(v)) {
4943
+ const value = v["@value"];
4944
+ if (typeof value === "string" && value.length > 0) return value;
4945
+ }
4946
+ return void 0;
4947
+ }
4948
+ function readIsoDate(v) {
4949
+ const s = readString(v);
4950
+ return s && /^\d{4}-\d{2}-\d{2}/.test(s) ? s : void 0;
4951
+ }
4952
+ function normalizeUriObjects(v) {
4953
+ return toArray$1(v).map(readObjectId).filter((u) => !!u);
4954
+ }
4955
+ function extractRdfType(ds) {
4956
+ const raw = ds["rdf:type"];
4957
+ const s = typeof raw === "string" ? raw : readObjectId(raw);
4958
+ if (!s) return void 0;
4959
+ const norm = s.replace(/^http:\/\/www\.w3\.org\/ns\/dcat#/, "dcat:");
4960
+ return norm;
4961
+ }
4962
+ const URI_TO_PREFIX = {
4963
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#": "rdf:",
4964
+ "http://purl.org/dc/terms/": "dct:",
4965
+ "http://xmlns.com/foaf/0.1/": "foaf:",
4966
+ "http://tems.org/2024/temscore#": "tc:",
4967
+ "http://www.w3.org/ns/dcat#": "dcat:",
4968
+ "http://www.w3.org/2006/vcard/ns#": "vcard:",
4969
+ "http://www.w3.org/ns/odrl/2/": "odrl:"
4970
+ };
4971
+ function normalizeJsonLdKeys(v) {
4972
+ if (Array.isArray(v)) return v.map(normalizeJsonLdKeys);
4973
+ if (!v || typeof v !== "object") return v;
4974
+ const out = {};
4975
+ for (const [k, val] of Object.entries(v)) {
4976
+ let key = k;
4977
+ for (const uri of Object.keys(URI_TO_PREFIX)) {
4978
+ if (k.startsWith(uri)) {
4979
+ key = URI_TO_PREFIX[uri] + k.slice(uri.length);
4980
+ break;
4981
+ }
4982
+ }
4983
+ out[key] = normalizeJsonLdKeys(val);
4984
+ }
4985
+ return out;
4986
+ }
4987
+ class FederatedCatalogueDcpStore {
4988
+ constructor(cfg) {
4989
+ __publicField(this, "cache");
4990
+ __publicField(this, "api", null);
4991
+ __publicField(this, "isFetching", false);
4992
+ __publicField(this, "pendingGetData", null);
4993
+ this.cfg = cfg;
4994
+ if (!this.cfg.endpoint) {
4995
+ throw new Error("Missing required `endpoint` in StoreConfig for FederatedCatalogueDcpStore");
4996
+ }
4997
+ this.api = getFederatedCatalogueDcpAPIWrapper(this.cfg.endpoint);
4998
+ this.cache = new InMemoryCacheManager();
4999
+ }
5000
+ disconnectedCallback() {
5001
+ }
5002
+ buildContainerId(containerType = "default") {
5003
+ return `store://local.${this.cfg.endpoint}.${containerType}`;
5004
+ }
5005
+ resolveTargetType(args) {
5006
+ if (!args || typeof args !== "object") return "";
5007
+ if ("targetType" in args && args.targetType) return String(args.targetType);
5008
+ if ("rdf-type" in args) return String(args["rdf-type"]);
5009
+ return "";
5010
+ }
5011
+ async getData(args) {
5012
+ if (this.isFetching) {
5013
+ if (this.pendingGetData) return this.pendingGetData;
5014
+ return null;
5015
+ }
5016
+ this.isFetching = true;
5017
+ const execute = async () => {
5018
+ var _a2;
5019
+ const targetType = this.resolveTargetType(args);
5020
+ if (!this.api) return this.initLocalDataSourceContainer();
5021
+ let payload = [];
5022
+ try {
5023
+ payload = await this.api.getAggregatedCatalog();
5024
+ } catch (err) {
5025
+ console.error("[FederatedCatalogueDcpStore] Fetch failed; returning empty container.", err);
5026
+ return this.initLocalDataSourceContainer();
5027
+ }
5028
+ const opts = {
5029
+ temsServiceBase: this.cfg.temsServiceBase,
5030
+ temsOfferBase: this.cfg.temsOfferBase,
5031
+ temsCategoryBase: this.cfg.temsCategoryBase,
5032
+ temsImageBase: this.cfg.temsImageBase,
5033
+ temsProviderBase: this.cfg.temsProviderBase
5034
+ };
5035
+ const own = (_a2 = this.cfg.ownParticipantId) == null ? void 0 : _a2.toLowerCase();
5036
+ const items = [];
5037
+ for (const catalog of payload) {
5038
+ if (own && this.isOwnCatalog(catalog, own)) continue;
5039
+ const datasets = this.normalizeDatasets(catalog["dcat:dataset"]);
5040
+ for (const ds of datasets) {
5041
+ const mapped = this.mapDatasetToDestination(ds, catalog, opts);
5042
+ if (!targetType || mapped["@type"].includes(targetType)) {
5043
+ items.push(mapped);
5044
+ }
5045
+ }
5046
+ }
5047
+ const container = {
5048
+ "@context": "https://cdn.startinblox.com/owl/context.jsonld",
5049
+ "@type": "ldp:Container",
5050
+ "@id": this.buildContainerId(targetType || "default"),
5051
+ "ldp:contains": items,
5052
+ permissions: [
5053
+ "view"
5054
+ ]
5055
+ };
5056
+ await this.cache.set(container["@id"], container);
5057
+ for (const item of items) {
5058
+ if (item["@id"]) await this.cache.set(item["@id"], item);
5059
+ }
5060
+ this.notifyComponents(container["@id"], container);
5061
+ return container;
5062
+ };
5063
+ this.pendingGetData = execute().finally(() => {
5064
+ this.isFetching = false;
5065
+ this.pendingGetData = null;
5066
+ });
5067
+ return this.pendingGetData;
5068
+ }
5069
+ normalizeDatasets(v) {
5070
+ if (!v) return [];
5071
+ return Array.isArray(v) ? v : [
5072
+ v
5073
+ ];
5074
+ }
5075
+ normalizeServices(v) {
5076
+ if (!v) return [];
5077
+ return Array.isArray(v) ? v : [
5078
+ v
5079
+ ];
5080
+ }
5081
+ isOwnCatalog(catalog, ownLower) {
5082
+ const pid = String(catalog["dspace:participantId"] ?? "").toLowerCase();
5083
+ return pid !== "" && pid === ownLower;
5084
+ }
5085
+ mapDatasetToDestination(rawDs, catalog, _opts) {
5086
+ var _a2, _b, _c;
5087
+ const ds = normalizeJsonLdKeys(rawDs);
5088
+ const rawId = String(ds["@id"] ?? ds.id ?? "");
5089
+ const bareUuid = rawId.replace(/^urn:uuid:/i, "");
5090
+ const id = bareUuid ? `urn:uuid:${bareUuid}` : rawId;
5091
+ const datasetServices = this.normalizeServices(ds["dcat:service"]);
5092
+ const catalogServices = this.normalizeServices(catalog["dcat:service"]);
5093
+ const serviceForMeta = datasetServices[0] ?? catalogServices[0] ?? {};
5094
+ const title = readString(ds["dcterms:title"] ?? ds["dct:title"] ?? serviceForMeta["dcterms:title"] ?? serviceForMeta["dct:title"]);
5095
+ const description = readString(ds["dcterms:description"] ?? ds["dct:description"] ?? ds["rdfs:comment"] ?? serviceForMeta["dcterms:description"] ?? serviceForMeta["dct:description"] ?? serviceForMeta["rdfs:comment"]);
5096
+ const rawKeywords = ds["dcat:keyword"] ?? serviceForMeta["dcat:keyword"];
5097
+ const keywords = Array.isArray(rawKeywords) ? rawKeywords.map(String) : rawKeywords ? [
5098
+ String(rawKeywords)
5099
+ ] : void 0;
5100
+ const version = readString(ds["dcat:version"] ?? serviceForMeta["dcat:version"]);
5101
+ const rdfType = extractRdfType(ds);
5102
+ const publisher = ds["dcterms:publisher"] ?? ds["dct:publisher"];
5103
+ const providerId = (publisher == null ? void 0 : publisher["@id"]) ?? catalog["dspace:participantId"];
5104
+ const providerName = (publisher == null ? void 0 : publisher["foaf:name"]) ?? providerId;
5105
+ const providerLogo = readObjectId(publisher == null ? void 0 : publisher["foaf:depiction"]);
5106
+ const endpointUrl = readObjectId(ds["dcat:endpointURL"]);
5107
+ const endpointDescription = readObjectId(ds["dcat:endpointDescription"]);
5108
+ const providerAddress = endpointUrl ?? ((_a2 = catalogServices[0]) == null ? void 0 : _a2["dcat:endpointURL"]) ?? ((_b = catalogServices[0]) == null ? void 0 : _b["dcat:endpointUrl"]) ?? catalog.originator;
5109
+ const type = [
5110
+ "tems:Object"
5111
+ ];
5112
+ if (rdfType === "dcat:DataService") type.push("tems:Service");
5113
+ else if (rdfType === "dcat:Dataset") type.push("tems:DataOffer");
5114
+ const bannerUrl = readObjectId(ds["foaf:depiction"]);
5115
+ const images = [];
5116
+ if (bannerUrl) images.push(bannerUrl);
5117
+ const themes = normalizeUriObjects(ds["dcat:theme"]).map((uri) => ({
5118
+ uri
5119
+ }));
5120
+ const languages = normalizeUriObjects(ds["dcterms:language"] ?? ds["dct:language"]).map((uri) => ({
5121
+ uri
5122
+ }));
5123
+ const conformsTo = toArray$1(ds["dcterms:conformsTo"] ?? ds["dct:conformsTo"]).map((c) => {
5124
+ const cAny = c;
5125
+ const title2 = c["dcterms:title"] ?? cAny["dct:title"];
5126
+ const desc = cAny["dcterms:description"] ?? cAny["dct:description"];
5127
+ return {
5128
+ "@id": String(c["@id"]),
5129
+ ...title2 ? {
5130
+ "dcterms:title": String(title2)
5131
+ } : {},
5132
+ ...desc ? {
5133
+ "dcterms:description": String(desc)
5134
+ } : {}
5135
+ };
5136
+ });
5137
+ const contact = ds["dcat:contactPoint"];
5138
+ const contactPoint = (contact == null ? void 0 : contact["vcard:fn"]) ? {
5139
+ name: String(contact["vcard:fn"]),
5140
+ email: String(contact["vcard:hasEmail"] ?? "").replace(/^mailto:/i, "")
5141
+ } : void 0;
5142
+ const distributions = rdfType === "dcat:Dataset" ? toArray$1(ds["dcat:distribution"]).map((d) => {
5143
+ const accessUrl = readObjectId(d["dcat:accessURL"]) ?? "";
5144
+ const byteSize = d["dcat:byteSize"];
5145
+ return {
5146
+ accessUrl,
5147
+ ...typeof byteSize === "number" ? {
5148
+ byteSize
5149
+ } : {}
5150
+ };
5151
+ }) : void 0;
5152
+ const hostingCountry = (_c = readString(ds["tc:hostingCountry"])) == null ? void 0 : _c.toUpperCase();
5153
+ const issued = readIsoDate(ds["dcterms:issued"] ?? ds["dct:issued"]);
5154
+ const identifier = readString(ds["dcterms:identifier"] ?? ds["dct:identifier"]);
5155
+ return {
5156
+ "@id": id,
5157
+ "@type": type,
5158
+ name: title,
5159
+ description,
5160
+ keywords,
5161
+ version,
5162
+ provider: providerId || providerAddress ? {
5163
+ "@id": providerId,
5164
+ name: providerName ?? providerId,
5165
+ address: providerAddress,
5166
+ ...providerLogo ? {
5167
+ logoUrl: providerLogo
5168
+ } : {}
5169
+ } : void 0,
5170
+ images,
5171
+ identifier,
5172
+ rdfType,
5173
+ issued,
5174
+ themes: themes.length > 0 ? themes : void 0,
5175
+ languages: languages.length > 0 ? languages : void 0,
5176
+ hostingCountry,
5177
+ conformsTo: conformsTo.length > 0 ? conformsTo : void 0,
5178
+ contactPoint,
5179
+ distributions: ((distributions == null ? void 0 : distributions.length) ?? 0) > 0 ? distributions : void 0,
5180
+ endpointUrl,
5181
+ endpointDescription,
5182
+ bannerUrl,
5183
+ counterPartyId: providerId,
5184
+ counterPartyAddress: providerAddress,
5185
+ assetId: id,
5186
+ datasetId: id,
5187
+ policy: ds["odrl:hasPolicy"],
5188
+ _rawDataset: rawDs,
5189
+ _rawCatalog: {
5190
+ "@id": catalog["@id"],
5191
+ "dspace:participantId": catalog["dspace:participantId"],
5192
+ originator: catalog.originator
5193
+ }
5194
+ };
5195
+ }
5196
+ async initLocalDataSourceContainer(dataSrc = "", containerType = "default") {
5197
+ if (!dataSrc) dataSrc = this.buildContainerId(containerType);
5198
+ const localContainer = {
5199
+ "@context": "https://cdn.startinblox.com/owl/context.jsonld",
5200
+ "@type": "ldp:Container",
5201
+ "@id": dataSrc,
5202
+ "ldp:contains": [],
5203
+ permissions: [
5204
+ "view"
5205
+ ]
5206
+ };
5207
+ await this.setLocalData(localContainer, dataSrc);
5208
+ return localContainer;
5209
+ }
5210
+ async get(id, _serverPagination, _serverSearch) {
5211
+ try {
5212
+ return await this.cache.get(id) || null;
5213
+ } catch (error2) {
5214
+ console.error(`[FederatedCatalogueDcpStore] Error getting resource ${id}:`, error2);
5215
+ return null;
5216
+ }
5217
+ }
5218
+ post(_r, _id, _s) {
5219
+ return Promise.resolve(null);
5220
+ }
5221
+ put(_r, _id, _s) {
5222
+ return Promise.resolve(null);
5223
+ }
5224
+ patch(_r, _id, _s) {
5225
+ return Promise.resolve(null);
5226
+ }
5227
+ delete(_id, _c) {
5228
+ return Promise.resolve(null);
5229
+ }
5230
+ async clearCache(id) {
5231
+ try {
5232
+ if (await this.cache.has(id)) await this.cache.delete(id);
5233
+ } catch (error2) {
5234
+ console.error(`[FederatedCatalogueDcpStore] Error clearing cache for ${id}:`, error2);
5235
+ }
5236
+ }
5237
+ async cacheResource(key, resourceProxy) {
5238
+ try {
5239
+ await this.cache.set(key, resourceProxy);
5240
+ } catch (error2) {
5241
+ console.error(`[FederatedCatalogueDcpStore] Error caching resource ${key}:`, error2);
5242
+ }
5243
+ }
5244
+ _getLanguage() {
5245
+ return "";
5246
+ }
5247
+ selectLanguage(_selectedLanguageCode) {
5248
+ }
5249
+ getExpandedPredicate(_property, _context) {
5250
+ return null;
5251
+ }
5252
+ subscribeResourceTo(_resourceId, _nestedResourceId) {
5253
+ }
5254
+ async fetchAuthn(_iri, _options) {
5255
+ return await Promise.resolve({});
5256
+ }
5257
+ async setLocalData(resource, id) {
5258
+ try {
5259
+ const resourceWithId = {
5260
+ ...resource,
5261
+ "@id": id
5262
+ };
5263
+ await this.cache.set(id, resourceWithId);
5264
+ this.notifyComponents(id, resourceWithId);
5265
+ return id;
5266
+ } catch (error2) {
5267
+ console.error(`[FederatedCatalogueDcpStore] Error storing local data for ${id}:`, error2);
5268
+ return null;
5269
+ }
5270
+ }
5271
+ notifyComponents(id, resource) {
5272
+ document.dispatchEvent(new CustomEvent("resoureReady", {
5273
+ detail: {
5274
+ id,
5275
+ resource,
5276
+ fetchedResource: resource
5277
+ },
5278
+ bubbles: true
5279
+ }));
5280
+ }
5281
+ }
5282
+ class FederatedCatalogueDcpStoreAdapter {
5283
+ constructor() {
5284
+ }
5285
+ static validateConfiguration(cfg) {
5286
+ if (!cfg.endpoint) {
5287
+ throw new Error("[FederatedCatalogueDcpStoreAdapter] `endpoint` is required in StoreConfig");
5288
+ }
5289
+ }
5290
+ static getStoreInstance(cfg) {
5291
+ if (!cfg) {
5292
+ throw new Error("[FederatedCatalogueDcpStoreAdapter] configuration is required");
5293
+ }
5294
+ FederatedCatalogueDcpStoreAdapter.validateConfiguration(cfg);
5295
+ return new FederatedCatalogueDcpStore(cfg);
5296
+ }
5297
+ }
4878
5298
  const _LocalStorageCacheMetadataManager = class _LocalStorageCacheMetadataManager {
4879
5299
  constructor(endpoint, ttlMs = _LocalStorageCacheMetadataManager.DEFAULT_TTL_MS) {
4880
5300
  this.endpoint = endpoint;
@@ -5934,8 +6354,9 @@ let __tla = (async () => {
5934
6354
  throw new Error(`Could not locate an offering block (used key: ${usedKey}); resolved catInfo is empty`);
5935
6355
  }
5936
6356
  const resourceId = cs["@id"];
5937
- const slug = resourceId.split("/").pop() || "unknown";
5938
- const serviceId = `${opts.temsServiceBase}${encodeURIComponent(slug)}/`;
6357
+ const rawSlug = resourceId.split("/").pop() || "unknown";
6358
+ const bareUuid = rawSlug.replace(/^urn:uuid:/i, "");
6359
+ const serviceId = `urn:uuid:${bareUuid}`;
5939
6360
  const creation_date = vc.issuanceDate;
5940
6361
  const update_date = vc.expirationDate;
5941
6362
  const name = catInfo["dcterms:title"] || catInfo["dct:title"];
@@ -5946,7 +6367,7 @@ let __tla = (async () => {
5946
6367
  ] : [];
5947
6368
  const long_description = keywords.length > 0 ? `Keywords: ${keywords.join(", ")}` : "";
5948
6369
  const categories = {
5949
- "@id": `${serviceId}categories/`,
6370
+ "@id": `${serviceId}/categories`,
5950
6371
  "@type": "ldp:Container",
5951
6372
  "ldp:contains": keywords.map((kw) => ({
5952
6373
  "@id": `${opts.temsCategoryBase}${encodeURIComponent(kw)}/`,
@@ -5966,7 +6387,7 @@ let __tla = (async () => {
5966
6387
  const creatorThumbnail = getThumbnailUrl(getCreator(catInfo));
5967
6388
  if (creatorThumbnail) imageUrls.push(creatorThumbnail);
5968
6389
  const images = {
5969
- "@id": `${serviceId}images/`,
6390
+ "@id": `${serviceId}/images`,
5970
6391
  "@type": "ldp:Container",
5971
6392
  "ldp:contains": imageUrls.map((url2) => ({
5972
6393
  "@id": `${opts.temsImageBase}${encodeURIComponent(url2.split("/").pop() || "0")}/`,
@@ -27564,24 +27985,24 @@ let __tla = (async () => {
27564
27985
  }
27565
27986
  msg += "must be ";
27566
27987
  const types2 = [];
27567
- const instances = [];
27988
+ const instances2 = [];
27568
27989
  const other = [];
27569
27990
  for (const value of expected) {
27570
27991
  assert(typeof value === "string", "All expected entries have to be of type string");
27571
27992
  if (kTypes.includes(value)) {
27572
27993
  types2.push(value.toLowerCase());
27573
27994
  } else if (classRegExp.test(value)) {
27574
- instances.push(value);
27995
+ instances2.push(value);
27575
27996
  } else {
27576
27997
  assert(value !== "object", 'The value "object" should be written as "Object"');
27577
27998
  other.push(value);
27578
27999
  }
27579
28000
  }
27580
- if (instances.length > 0) {
28001
+ if (instances2.length > 0) {
27581
28002
  const pos = types2.indexOf("object");
27582
28003
  if (pos !== -1) {
27583
28004
  types2.splice(types2, pos, 1);
27584
- instances.push("Object");
28005
+ instances2.push("Object");
27585
28006
  }
27586
28007
  }
27587
28008
  if (types2.length > 0) {
@@ -27597,21 +28018,21 @@ let __tla = (async () => {
27597
28018
  msg += `one of type ${types2.join(", ")}, or ${last}`;
27598
28019
  }
27599
28020
  }
27600
- if (instances.length > 0 || other.length > 0) {
28021
+ if (instances2.length > 0 || other.length > 0) {
27601
28022
  msg += " or ";
27602
28023
  }
27603
28024
  }
27604
- if (instances.length > 0) {
27605
- switch (instances.length) {
28025
+ if (instances2.length > 0) {
28026
+ switch (instances2.length) {
27606
28027
  case 1:
27607
- msg += `an instance of ${instances[0]}`;
28028
+ msg += `an instance of ${instances2[0]}`;
27608
28029
  break;
27609
28030
  case 2:
27610
- msg += `an instance of ${instances[0]} or ${instances[1]}`;
28031
+ msg += `an instance of ${instances2[0]} or ${instances2[1]}`;
27611
28032
  break;
27612
28033
  default: {
27613
- const last = instances.pop();
27614
- msg += `an instance of ${instances.join(", ")}, or ${last}`;
28034
+ const last = instances2.pop();
28035
+ msg += `an instance of ${instances2.join(", ")}, or ${last}`;
27615
28036
  }
27616
28037
  }
27617
28038
  if (other.length > 0) {
@@ -33120,7 +33541,7 @@ sh:property [
33120
33541
  window.dispatchEvent(event);
33121
33542
  }
33122
33543
  async initGetter() {
33123
- const { CustomGetter } = await import("./custom-getter-GzeAgss3.js");
33544
+ const { CustomGetter } = await import("./custom-getter-CeqxfVXE.js");
33124
33545
  return CustomGetter;
33125
33546
  }
33126
33547
  disconnectedCallback() {
@@ -33495,6 +33916,7 @@ sh:property [
33495
33916
  StoreType = ((StoreType2) => {
33496
33917
  StoreType2["LDP"] = "ldp";
33497
33918
  StoreType2["FederatedCatalogue"] = "federatedCatalogue";
33919
+ StoreType2["FederatedCatalogueDcp"] = "federatedCatalogueDcp";
33498
33920
  StoreType2["DataspaceConnector"] = "dataspaceConnector";
33499
33921
  return StoreType2;
33500
33922
  })(StoreType || {});
@@ -33513,6 +33935,7 @@ sh:property [
33513
33935
  })(StoreFactory || (StoreFactory = {}));
33514
33936
  StoreFactory.register(StoreType.LDP, LdpStoreAdapter);
33515
33937
  StoreFactory.register(StoreType.FederatedCatalogue, FederatedCatalogueStoreAdapter);
33938
+ StoreFactory.register(StoreType.FederatedCatalogueDcp, FederatedCatalogueDcpStoreAdapter);
33516
33939
  StoreFactory.register(StoreType.DataspaceConnector, DataspaceConnectorStoreAdapter);
33517
33940
  StoreService = (_a = class {
33518
33941
  static addStore(name, config) {
package/dist/store.js CHANGED
@@ -1,4 +1,4 @@
1
- import { s, S, c, b, e, j, h, i } from "./store-CcdngHTz.js";
1
+ import { s, S, c, b, e, j, h, i } from "./store-C655KD6t.js";
2
2
  export {
3
3
  s as SEMANTIZER,
4
4
  S as StoreService,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@startinblox/core",
3
- "version": "2.0.6-beta.23",
3
+ "version": "2.0.6-beta.25",
4
4
  "description": "This is a series of web component respecting both the web components standards and the Linked Data Platform convention.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",