@twin.org/standards-dataspace-protocol 0.0.3-next.12 → 0.0.3-next.14

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.
@@ -1,7 +1,7 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  import { DataTypeHelper } from "@twin.org/data-core";
4
- import { DcatClasses, DcatContexts } from "@twin.org/standards-w3c-dcat";
4
+ import { DcatContexts } from "@twin.org/standards-w3c-dcat";
5
5
  import { DataspaceProtocolCatalogTypes } from "../models/catalog/dataspaceProtocolCatalogTypes.js";
6
6
  import { DataspaceProtocolContexts } from "../models/dataspaceProtocolContexts.js";
7
7
  import DsProtocolCatalogSchema from "../schemas/DataspaceProtocolCatalog.json" with { type: "json" };
@@ -34,11 +34,11 @@ export class CatalogDataTypes {
34
34
  }
35
35
  ];
36
36
  DataTypeHelper.registerTypes(DataspaceProtocolContexts.Namespace, DataspaceProtocolContexts.JsonLdContext, types);
37
- // This is just for schema registration as Dataset is a DCAT type
38
- DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DcatClasses.Dataset, DcatContexts.JsonLdContext, DsProtocolDatasetSchema);
39
- DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DcatClasses.Catalog, DcatContexts.JsonLdContext, DsProtocolCatalogSchema);
40
- DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DcatClasses.Distribution, DcatContexts.JsonLdContext, DsProtocolDistributionSchema);
41
- DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DcatClasses.DataService, DcatContexts.JsonLdContext, DsProtocolDataServiceSchema);
37
+ // These are the custom version of the DCAT3 classes with DS Protocol constraints
38
+ DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DataspaceProtocolCatalogTypes.Dataset, DcatContexts.JsonLdContext, DsProtocolDatasetSchema);
39
+ DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DataspaceProtocolCatalogTypes.Catalog, DcatContexts.JsonLdContext, DsProtocolCatalogSchema);
40
+ DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DataspaceProtocolCatalogTypes.Distribution, DcatContexts.JsonLdContext, DsProtocolDistributionSchema);
41
+ DataTypeHelper.registerType(DataspaceProtocolContexts.Namespace, DataspaceProtocolCatalogTypes.DataService, DcatContexts.JsonLdContext, DsProtocolDataServiceSchema);
42
42
  }
43
43
  }
44
44
  //# sourceMappingURL=catalogDataTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalogDataTypes.js","sourceRoot":"","sources":["../../../src/dataTypes/catalogDataTypes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,uBAAuB,MAAM,0CAA0C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,kBAAkB,MAAM,+CAA+C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,2BAA2B,MAAM,wDAAwD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvH,OAAO,uBAAuB,MAAM,0CAA0C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,2BAA2B,MAAM,wDAAwD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvH,OAAO,2BAA2B,MAAM,kDAAkD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjH,OAAO,4BAA4B,MAAM,mDAAmD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC5B;;OAEG;IACI,MAAM,CAAC,aAAa;QAC1B,MAAM,KAAK,GAAG;YACb;gBACC,IAAI,EAAE,6BAA6B,CAAC,qBAAqB;gBACzD,MAAM,EAAE,2BAA2B;aACnC;YACD;gBACC,IAAI,EAAE,6BAA6B,CAAC,qBAAqB;gBACzD,MAAM,EAAE,2BAA2B;aACnC;YACD;gBACC,IAAI,EAAE,6BAA6B,CAAC,YAAY;gBAChD,MAAM,EAAE,kBAAkB;aAC1B;SACD,CAAC;QAEF,cAAc,CAAC,aAAa,CAC3B,yBAAyB,CAAC,SAAS,EACnC,yBAAyB,CAAC,aAAa,EACvC,KAAK,CACL,CAAC;QAEF,iEAAiE;QACjE,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,WAAW,CAAC,OAAO,EACnB,YAAY,CAAC,aAAa,EAC1B,uBAAuB,CACvB,CAAC;QAEF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,WAAW,CAAC,OAAO,EACnB,YAAY,CAAC,aAAa,EAC1B,uBAAuB,CACvB,CAAC;QAEF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,WAAW,CAAC,YAAY,EACxB,YAAY,CAAC,aAAa,EAC1B,4BAA4B,CAC5B,CAAC;QAEF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,WAAW,CAAC,WAAW,EACvB,YAAY,CAAC,aAAa,EAC1B,2BAA2B,CAC3B,CAAC;IACH,CAAC;CACD","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { DataTypeHelper } from \"@twin.org/data-core\";\nimport { DcatClasses, DcatContexts } from \"@twin.org/standards-w3c-dcat\";\nimport { DataspaceProtocolCatalogTypes } from \"../models/catalog/dataspaceProtocolCatalogTypes.js\";\nimport { DataspaceProtocolContexts } from \"../models/dataspaceProtocolContexts.js\";\nimport DsProtocolCatalogSchema from \"../schemas/DataspaceProtocolCatalog.json\" with { type: \"json\" };\nimport CatalogErrorSchema from \"../schemas/DataspaceProtocolCatalogError.json\" with { type: \"json\" };\nimport CatalogRequestMessageSchema from \"../schemas/DataspaceProtocolCatalogRequestMessage.json\" with { type: \"json\" };\nimport DsProtocolDatasetSchema from \"../schemas/DataspaceProtocolDataset.json\" with { type: \"json\" };\nimport DatasetRequestMessageSchema from \"../schemas/DataspaceProtocolDatasetRequestMessage.json\" with { type: \"json\" };\nimport DsProtocolDataServiceSchema from \"../schemas-src/DataspaceProtocolDataService.json\" with { type: \"json\" };\nimport DsProtocolDistributionSchema from \"../schemas-src/DataspaceProtocolDistribution.json\" with { type: \"json\" };\n\n/**\n * Handle all the catalog data types for Dataspace Protocol.\n */\nexport class CatalogDataTypes {\n\t/**\n\t * Register all the data types.\n\t */\n\tpublic static registerTypes(): void {\n\t\tconst types = [\n\t\t\t{\n\t\t\t\ttype: DataspaceProtocolCatalogTypes.CatalogRequestMessage,\n\t\t\t\tschema: CatalogRequestMessageSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: DataspaceProtocolCatalogTypes.DatasetRequestMessage,\n\t\t\t\tschema: DatasetRequestMessageSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: DataspaceProtocolCatalogTypes.CatalogError,\n\t\t\t\tschema: CatalogErrorSchema\n\t\t\t}\n\t\t];\n\n\t\tDataTypeHelper.registerTypes(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDataspaceProtocolContexts.JsonLdContext,\n\t\t\ttypes\n\t\t);\n\n\t\t// This is just for schema registration as Dataset is a DCAT type\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDcatClasses.Dataset,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolDatasetSchema\n\t\t);\n\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDcatClasses.Catalog,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolCatalogSchema\n\t\t);\n\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDcatClasses.Distribution,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolDistributionSchema\n\t\t);\n\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDcatClasses.DataService,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolDataServiceSchema\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"file":"catalogDataTypes.js","sourceRoot":"","sources":["../../../src/dataTypes/catalogDataTypes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,uBAAuB,MAAM,0CAA0C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,kBAAkB,MAAM,+CAA+C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,2BAA2B,MAAM,wDAAwD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvH,OAAO,uBAAuB,MAAM,0CAA0C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,2BAA2B,MAAM,wDAAwD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvH,OAAO,2BAA2B,MAAM,kDAAkD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjH,OAAO,4BAA4B,MAAM,mDAAmD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC5B;;OAEG;IACI,MAAM,CAAC,aAAa;QAC1B,MAAM,KAAK,GAAG;YACb;gBACC,IAAI,EAAE,6BAA6B,CAAC,qBAAqB;gBACzD,MAAM,EAAE,2BAA2B;aACnC;YACD;gBACC,IAAI,EAAE,6BAA6B,CAAC,qBAAqB;gBACzD,MAAM,EAAE,2BAA2B;aACnC;YACD;gBACC,IAAI,EAAE,6BAA6B,CAAC,YAAY;gBAChD,MAAM,EAAE,kBAAkB;aAC1B;SACD,CAAC;QAEF,cAAc,CAAC,aAAa,CAC3B,yBAAyB,CAAC,SAAS,EACnC,yBAAyB,CAAC,aAAa,EACvC,KAAK,CACL,CAAC;QAEF,iFAAiF;QACjF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,6BAA6B,CAAC,OAAO,EACrC,YAAY,CAAC,aAAa,EAC1B,uBAAuB,CACvB,CAAC;QAEF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,6BAA6B,CAAC,OAAO,EACrC,YAAY,CAAC,aAAa,EAC1B,uBAAuB,CACvB,CAAC;QAEF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,6BAA6B,CAAC,YAAY,EAC1C,YAAY,CAAC,aAAa,EAC1B,4BAA4B,CAC5B,CAAC;QAEF,cAAc,CAAC,YAAY,CAC1B,yBAAyB,CAAC,SAAS,EACnC,6BAA6B,CAAC,WAAW,EACzC,YAAY,CAAC,aAAa,EAC1B,2BAA2B,CAC3B,CAAC;IACH,CAAC;CACD","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { DataTypeHelper } from \"@twin.org/data-core\";\nimport { DcatContexts } from \"@twin.org/standards-w3c-dcat\";\nimport { DataspaceProtocolCatalogTypes } from \"../models/catalog/dataspaceProtocolCatalogTypes.js\";\nimport { DataspaceProtocolContexts } from \"../models/dataspaceProtocolContexts.js\";\nimport DsProtocolCatalogSchema from \"../schemas/DataspaceProtocolCatalog.json\" with { type: \"json\" };\nimport CatalogErrorSchema from \"../schemas/DataspaceProtocolCatalogError.json\" with { type: \"json\" };\nimport CatalogRequestMessageSchema from \"../schemas/DataspaceProtocolCatalogRequestMessage.json\" with { type: \"json\" };\nimport DsProtocolDatasetSchema from \"../schemas/DataspaceProtocolDataset.json\" with { type: \"json\" };\nimport DatasetRequestMessageSchema from \"../schemas/DataspaceProtocolDatasetRequestMessage.json\" with { type: \"json\" };\nimport DsProtocolDataServiceSchema from \"../schemas-src/DataspaceProtocolDataService.json\" with { type: \"json\" };\nimport DsProtocolDistributionSchema from \"../schemas-src/DataspaceProtocolDistribution.json\" with { type: \"json\" };\n\n/**\n * Handle all the catalog data types for Dataspace Protocol.\n */\nexport class CatalogDataTypes {\n\t/**\n\t * Register all the data types.\n\t */\n\tpublic static registerTypes(): void {\n\t\tconst types = [\n\t\t\t{\n\t\t\t\ttype: DataspaceProtocolCatalogTypes.CatalogRequestMessage,\n\t\t\t\tschema: CatalogRequestMessageSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: DataspaceProtocolCatalogTypes.DatasetRequestMessage,\n\t\t\t\tschema: DatasetRequestMessageSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: DataspaceProtocolCatalogTypes.CatalogError,\n\t\t\t\tschema: CatalogErrorSchema\n\t\t\t}\n\t\t];\n\n\t\tDataTypeHelper.registerTypes(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDataspaceProtocolContexts.JsonLdContext,\n\t\t\ttypes\n\t\t);\n\n\t\t// These are the custom version of the DCAT3 classes with DS Protocol constraints\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDataspaceProtocolCatalogTypes.Dataset,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolDatasetSchema\n\t\t);\n\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDataspaceProtocolCatalogTypes.Catalog,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolCatalogSchema\n\t\t);\n\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDataspaceProtocolCatalogTypes.Distribution,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolDistributionSchema\n\t\t);\n\n\t\tDataTypeHelper.registerType(\n\t\t\tDataspaceProtocolContexts.Namespace,\n\t\t\tDataspaceProtocolCatalogTypes.DataService,\n\t\t\tDcatContexts.JsonLdContext,\n\t\t\tDsProtocolDataServiceSchema\n\t\t);\n\t}\n}\n"]}
@@ -13,7 +13,10 @@ export class DataspaceProtocolDataTypes {
13
13
  * Register the JSON-LD Redirects.
14
14
  */
15
15
  static registerRedirects() {
16
- JsonLdProcessor.addRedirect(new RegExp(DataspaceProtocolContexts.Namespace), DataspaceProtocolContexts.JsonLdContext);
16
+ // Escape regex special characters and anchor to match exactly the namespace URL
17
+ // This prevents matching sub-paths like odrl-profile.jsonld or context.jsonld
18
+ const escapedNamespace = DataspaceProtocolContexts.Namespace.replace(/[$()*+.?[\\\]^{|}]/g, "\\$&");
19
+ JsonLdProcessor.addRedirect(new RegExp(`^${escapedNamespace}$`), DataspaceProtocolContexts.JsonLdContext);
17
20
  }
18
21
  /**
19
22
  * Register all the data types.
@@ -1 +1 @@
1
- {"version":3,"file":"dataspaceProtocolDataTypes.js","sourceRoot":"","sources":["../../../src/dataTypes/dataspaceProtocolDataTypes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACtC;;OAEG;IACI,MAAM,CAAC,iBAAiB;QAC9B,eAAe,CAAC,WAAW,CAC1B,IAAI,MAAM,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAC/C,yBAAyB,CAAC,aAAa,CACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa;QAC1B,4BAA4B,CAAC,aAAa,EAAE,CAAC;QAC7C,gBAAgB,CAAC,aAAa,EAAE,CAAC;QACjC,wBAAwB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;CACD","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { JsonLdProcessor } from \"@twin.org/data-json-ld\";\nimport { CatalogDataTypes } from \"./catalogDataTypes.js\";\nimport { ContractNegotiationDataTypes } from \"./contractNegotiationDataTypes.js\";\nimport { TransferProcessDataTypes } from \"./transferProcessDataTypes.js\";\nimport { DataspaceProtocolContexts } from \"../models/dataspaceProtocolContexts.js\";\n\n/**\n * Handle all the data types for Dataspace Protocol.\n */\nexport class DataspaceProtocolDataTypes {\n\t/**\n\t * Register the JSON-LD Redirects.\n\t */\n\tpublic static registerRedirects(): void {\n\t\tJsonLdProcessor.addRedirect(\n\t\t\tnew RegExp(DataspaceProtocolContexts.Namespace),\n\t\t\tDataspaceProtocolContexts.JsonLdContext\n\t\t);\n\t}\n\n\t/**\n\t * Register all the data types.\n\t */\n\tpublic static registerTypes(): void {\n\t\tContractNegotiationDataTypes.registerTypes();\n\t\tCatalogDataTypes.registerTypes();\n\t\tTransferProcessDataTypes.registerTypes();\n\t}\n}\n"]}
1
+ {"version":3,"file":"dataspaceProtocolDataTypes.js","sourceRoot":"","sources":["../../../src/dataTypes/dataspaceProtocolDataTypes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACtC;;OAEG;IACI,MAAM,CAAC,iBAAiB;QAC9B,gFAAgF;QAChF,8EAA8E;QAC9E,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,SAAS,CAAC,OAAO,CACnE,qBAAqB,EACrB,MAAM,CACN,CAAC;QACF,eAAe,CAAC,WAAW,CAC1B,IAAI,MAAM,CAAC,IAAI,gBAAgB,GAAG,CAAC,EACnC,yBAAyB,CAAC,aAAa,CACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa;QAC1B,4BAA4B,CAAC,aAAa,EAAE,CAAC;QAC7C,gBAAgB,CAAC,aAAa,EAAE,CAAC;QACjC,wBAAwB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;CACD","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { JsonLdProcessor } from \"@twin.org/data-json-ld\";\nimport { CatalogDataTypes } from \"./catalogDataTypes.js\";\nimport { ContractNegotiationDataTypes } from \"./contractNegotiationDataTypes.js\";\nimport { TransferProcessDataTypes } from \"./transferProcessDataTypes.js\";\nimport { DataspaceProtocolContexts } from \"../models/dataspaceProtocolContexts.js\";\n\n/**\n * Handle all the data types for Dataspace Protocol.\n */\nexport class DataspaceProtocolDataTypes {\n\t/**\n\t * Register the JSON-LD Redirects.\n\t */\n\tpublic static registerRedirects(): void {\n\t\t// Escape regex special characters and anchor to match exactly the namespace URL\n\t\t// This prevents matching sub-paths like odrl-profile.jsonld or context.jsonld\n\t\tconst escapedNamespace = DataspaceProtocolContexts.Namespace.replace(\n\t\t\t/[$()*+.?[\\\\\\]^{|}]/g,\n\t\t\t\"\\\\$&\"\n\t\t);\n\t\tJsonLdProcessor.addRedirect(\n\t\t\tnew RegExp(`^${escapedNamespace}$`),\n\t\t\tDataspaceProtocolContexts.JsonLdContext\n\t\t);\n\t}\n\n\t/**\n\t * Register all the data types.\n\t */\n\tpublic static registerTypes(): void {\n\t\tContractNegotiationDataTypes.registerTypes();\n\t\tCatalogDataTypes.registerTypes();\n\t\tTransferProcessDataTypes.registerTypes();\n\t}\n}\n"]}
@@ -22,12 +22,14 @@ export class DataspaceProtocolHelper {
22
22
  */
23
23
  static async checkConformance(object, validationFailures) {
24
24
  let result = false;
25
- const dcatPrefix = DcatContexts.Namespace;
25
+ const dcatNamespace = DcatContexts.Namespace;
26
26
  const objectTypes = await JsonLdHelper.getType(object);
27
27
  for (const type of objectTypes) {
28
28
  let dataTypeIdentifier = type;
29
- if (type.startsWith(dcatPrefix)) {
30
- const nonQualifiedType = `dcat:${type.replace(dcatPrefix, "")}`;
29
+ // If the DCAT3 types are used, convert to the DS Protocol equivalent
30
+ // which have the enhancements and constraints defined by the DS Protocol
31
+ if (type.startsWith(dcatNamespace)) {
32
+ const nonQualifiedType = type.replace(dcatNamespace, "");
31
33
  dataTypeIdentifier = `${DataspaceProtocolContexts.Namespace}${nonQualifiedType}`;
32
34
  }
33
35
  const schema = await DataTypeHelper.getSchemaForType(dataTypeIdentifier);
@@ -1 +1 @@
1
- {"version":3,"file":"dataspaceProtocolHelper.js","sourceRoot":"","sources":["../../../src/utils/dataspaceProtocolHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\nimport { GeneralError, Is, ObjectHelper, type IValidationFailure } from \"@twin.org/core\";\nimport { DataTypeHelper, JsonSchemaHelper } from \"@twin.org/data-core\";\nimport {\n\tJsonLdHelper,\n\tJsonLdProcessor,\n\ttype IJsonLdContextDefinitionRoot,\n\ttype IJsonLdNodeObject\n} from \"@twin.org/data-json-ld\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { DcatContexts } from \"@twin.org/standards-w3c-dcat\";\nimport { DataspaceProtocolContexts } from \"../models/dataspaceProtocolContexts.js\";\n\n/**\n * Dataspace protocol helper.\n */\nexport abstract class DataspaceProtocolHelper {\n\t/**\n\t * The class name.\n\t * @internal\n\t */\n\tpublic static readonly CLASS_NAME = nameof<DataspaceProtocolHelper>();\n\n\t/**\n\t * Checks whether the object passed as parameter is conformant to the DS Protocol definitions.\n\t * @param object The object to check\n\t * @param validationFailures the Validation failures obtained during the conformance checking.\n\t * @returns true or false depending whether the object is conformant or not\n\t */\n\tpublic static async checkConformance(\n\t\tobject: IJsonLdNodeObject,\n\t\tvalidationFailures: IValidationFailure[]\n\t): Promise<boolean> {\n\t\tlet result = false;\n\n\t\tconst dcatPrefix = DcatContexts.Namespace;\n\n\t\tconst objectTypes = await JsonLdHelper.getType(object);\n\n\t\tfor (const type of objectTypes) {\n\t\t\tlet dataTypeIdentifier = type;\n\t\t\tif (type.startsWith(dcatPrefix)) {\n\t\t\t\tconst nonQualifiedType = `dcat:${type.replace(dcatPrefix, \"\")}`;\n\t\t\t\tdataTypeIdentifier = `${DataspaceProtocolContexts.Namespace}${nonQualifiedType}`;\n\t\t\t}\n\n\t\t\tconst schema = await DataTypeHelper.getSchemaForType(dataTypeIdentifier);\n\t\t\tif (!schema) {\n\t\t\t\tthrow new GeneralError(DataspaceProtocolHelper.CLASS_NAME, \"schemaNotRegistered\", {\n\t\t\t\t\tschemaId: dataTypeIdentifier\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst validationResult = await JsonSchemaHelper.validate(\n\t\t\t\tschema,\n\t\t\t\tawait DataspaceProtocolHelper.normalize(object)\n\t\t\t);\n\t\t\tresult = validationResult.result;\n\n\t\t\tif (!result && Is.array(validationResult.error)) {\n\t\t\t\tfor (const aError of validationResult.error) {\n\t\t\t\t\tconst validationFailure: IValidationFailure = {\n\t\t\t\t\t\tproperty: aError.instancePath,\n\t\t\t\t\t\treason: aError.message as string\n\t\t\t\t\t};\n\t\t\t\t\tvalidationFailures.push(validationFailure);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * Normalizes the input object making it compliant with the DS Protocol specifications.\n\t * @param object The input object.\n\t * @returns The input object normalized.\n\t */\n\tpublic static async normalize(object: IJsonLdNodeObject): Promise<IJsonLdNodeObject> {\n\t\tconst annotatedObject = DataspaceProtocolHelper.annotateLDContextForFormat(object);\n\n\t\tconst compactedObject = await JsonLdProcessor.compact(annotatedObject, [\n\t\t\tDataspaceProtocolContexts.JsonLdContext\n\t\t]);\n\n\t\tif (!Is.array(compactedObject[\"@context\"])) {\n\t\t\tObjectHelper.propertySet(compactedObject, \"@context\", [\n\t\t\t\tObjectHelper.propertyGet(compactedObject, \"@context\")\n\t\t\t]);\n\t\t}\n\n\t\treturn compactedObject;\n\t}\n\n\t/**\n\t * Ensures format property has a proper LD Context.\n\t * @param object The object.\n\t * @returns a copy of the object annotated with the proper LD Context.\n\t * @internal\n\t */\n\tprivate static annotateLDContextForFormat(object: IJsonLdNodeObject): IJsonLdNodeObject {\n\t\tconst result = ObjectHelper.clone<IJsonLdNodeObject>(object);\n\n\t\t// This step is needed before compaction as 'dcterms:format' is not defined originally as '@vocab'\n\t\t// but it is in the DSP LD Context\n\t\tconst EXTRA_ANNOTATION = {\n\t\t\t\"dcterms:format\": {\n\t\t\t\t\"@id\": \"dcterms:format\",\n\t\t\t\t\"@type\": \"@vocab\"\n\t\t\t}\n\t\t};\n\t\tconst ldContext = ObjectHelper.propertyGet<IJsonLdContextDefinitionRoot>(result, \"@context\");\n\t\tif (Is.array(ldContext)) {\n\t\t\tldContext.push(EXTRA_ANNOTATION);\n\t\t} else if (Is.object(ldContext)) {\n\t\t\tObjectHelper.propertySet(result, \"@context\", { ...ldContext, ...EXTRA_ANNOTATION });\n\t\t} else if (Is.string(ldContext)) {\n\t\t\tObjectHelper.propertySet(result, \"@context\", [ldContext, EXTRA_ANNOTATION]);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n"]}
1
+ {"version":3,"file":"dataspaceProtocolHelper.js","sourceRoot":"","sources":["../../../src/utils/dataspaceProtocolHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\nimport { GeneralError, Is, ObjectHelper, type IValidationFailure } from \"@twin.org/core\";\nimport { DataTypeHelper, JsonSchemaHelper } from \"@twin.org/data-core\";\nimport {\n\tJsonLdHelper,\n\tJsonLdProcessor,\n\ttype IJsonLdContextDefinitionRoot,\n\ttype IJsonLdNodeObject\n} from \"@twin.org/data-json-ld\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { DcatContexts } from \"@twin.org/standards-w3c-dcat\";\nimport { DataspaceProtocolContexts } from \"../models/dataspaceProtocolContexts.js\";\n\n/**\n * Dataspace protocol helper.\n */\nexport abstract class DataspaceProtocolHelper {\n\t/**\n\t * The class name.\n\t * @internal\n\t */\n\tpublic static readonly CLASS_NAME = nameof<DataspaceProtocolHelper>();\n\n\t/**\n\t * Checks whether the object passed as parameter is conformant to the DS Protocol definitions.\n\t * @param object The object to check\n\t * @param validationFailures the Validation failures obtained during the conformance checking.\n\t * @returns true or false depending whether the object is conformant or not\n\t */\n\tpublic static async checkConformance(\n\t\tobject: IJsonLdNodeObject,\n\t\tvalidationFailures: IValidationFailure[]\n\t): Promise<boolean> {\n\t\tlet result = false;\n\n\t\tconst dcatNamespace = DcatContexts.Namespace;\n\n\t\tconst objectTypes = await JsonLdHelper.getType(object);\n\n\t\tfor (const type of objectTypes) {\n\t\t\tlet dataTypeIdentifier = type;\n\n\t\t\t// If the DCAT3 types are used, convert to the DS Protocol equivalent\n\t\t\t// which have the enhancements and constraints defined by the DS Protocol\n\t\t\tif (type.startsWith(dcatNamespace)) {\n\t\t\t\tconst nonQualifiedType = type.replace(dcatNamespace, \"\");\n\t\t\t\tdataTypeIdentifier = `${DataspaceProtocolContexts.Namespace}${nonQualifiedType}`;\n\t\t\t}\n\n\t\t\tconst schema = await DataTypeHelper.getSchemaForType(dataTypeIdentifier);\n\t\t\tif (!schema) {\n\t\t\t\tthrow new GeneralError(DataspaceProtocolHelper.CLASS_NAME, \"schemaNotRegistered\", {\n\t\t\t\t\tschemaId: dataTypeIdentifier\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst validationResult = await JsonSchemaHelper.validate(\n\t\t\t\tschema,\n\t\t\t\tawait DataspaceProtocolHelper.normalize(object)\n\t\t\t);\n\t\t\tresult = validationResult.result;\n\n\t\t\tif (!result && Is.array(validationResult.error)) {\n\t\t\t\tfor (const aError of validationResult.error) {\n\t\t\t\t\tconst validationFailure: IValidationFailure = {\n\t\t\t\t\t\tproperty: aError.instancePath,\n\t\t\t\t\t\treason: aError.message as string\n\t\t\t\t\t};\n\t\t\t\t\tvalidationFailures.push(validationFailure);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * Normalizes the input object making it compliant with the DS Protocol specifications.\n\t * @param object The input object.\n\t * @returns The input object normalized.\n\t */\n\tpublic static async normalize(object: IJsonLdNodeObject): Promise<IJsonLdNodeObject> {\n\t\tconst annotatedObject = DataspaceProtocolHelper.annotateLDContextForFormat(object);\n\n\t\tconst compactedObject = await JsonLdProcessor.compact(annotatedObject, [\n\t\t\tDataspaceProtocolContexts.JsonLdContext\n\t\t]);\n\n\t\tif (!Is.array(compactedObject[\"@context\"])) {\n\t\t\tObjectHelper.propertySet(compactedObject, \"@context\", [\n\t\t\t\tObjectHelper.propertyGet(compactedObject, \"@context\")\n\t\t\t]);\n\t\t}\n\n\t\treturn compactedObject;\n\t}\n\n\t/**\n\t * Ensures format property has a proper LD Context.\n\t * @param object The object.\n\t * @returns a copy of the object annotated with the proper LD Context.\n\t * @internal\n\t */\n\tprivate static annotateLDContextForFormat(object: IJsonLdNodeObject): IJsonLdNodeObject {\n\t\tconst result = ObjectHelper.clone<IJsonLdNodeObject>(object);\n\n\t\t// This step is needed before compaction as 'dcterms:format' is not defined originally as '@vocab'\n\t\t// but it is in the DSP LD Context\n\t\tconst EXTRA_ANNOTATION = {\n\t\t\t\"dcterms:format\": {\n\t\t\t\t\"@id\": \"dcterms:format\",\n\t\t\t\t\"@type\": \"@vocab\"\n\t\t\t}\n\t\t};\n\t\tconst ldContext = ObjectHelper.propertyGet<IJsonLdContextDefinitionRoot>(result, \"@context\");\n\t\tif (Is.array(ldContext)) {\n\t\t\tldContext.push(EXTRA_ANNOTATION);\n\t\t} else if (Is.object(ldContext)) {\n\t\t\tObjectHelper.propertySet(result, \"@context\", { ...ldContext, ...EXTRA_ANNOTATION });\n\t\t} else if (Is.string(ldContext)) {\n\t\t\tObjectHelper.propertySet(result, \"@context\", [ldContext, EXTRA_ANNOTATION]);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n"]}
package/docs/changelog.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.3-next.14](https://github.com/twinfoundation/standards/compare/standards-dataspace-protocol-v0.0.3-next.13...standards-dataspace-protocol-v0.0.3-next.14) (2026-01-15)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * correct registration type for DS DCAT3 type ([04703df](https://github.com/twinfoundation/standards/commit/04703df048f56f6315bbd0bb73b7b6b62eb858a1))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/standards-w3c-dcat bumped from 0.0.3-next.13 to 0.0.3-next.14
16
+ * @twin.org/standards-w3c-odrl bumped from 0.0.3-next.13 to 0.0.3-next.14
17
+ * devDependencies
18
+ * @twin.org/standards-ld-contexts bumped from 0.0.3-next.13 to 0.0.3-next.14
19
+
20
+ ## [0.0.3-next.13](https://github.com/twinfoundation/standards/compare/standards-dataspace-protocol-v0.0.3-next.12...standards-dataspace-protocol-v0.0.3-next.13) (2026-01-14)
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * adapting regex to fix the bad behavior ([#107](https://github.com/twinfoundation/standards/issues/107)) ([17ba814](https://github.com/twinfoundation/standards/commit/17ba8140b6356a1c4d5923c91a28a996f22af484))
26
+
27
+
28
+ ### Dependencies
29
+
30
+ * The following workspace dependencies were updated
31
+ * dependencies
32
+ * @twin.org/standards-w3c-dcat bumped from 0.0.3-next.12 to 0.0.3-next.13
33
+ * @twin.org/standards-w3c-odrl bumped from 0.0.3-next.12 to 0.0.3-next.13
34
+ * devDependencies
35
+ * @twin.org/standards-ld-contexts bumped from 0.0.3-next.12 to 0.0.3-next.13
36
+
3
37
  ## [0.0.3-next.12](https://github.com/twinfoundation/standards/compare/standards-dataspace-protocol-v0.0.3-next.11...standards-dataspace-protocol-v0.0.3-next.12) (2026-01-14)
4
38
 
5
39
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/standards-dataspace-protocol",
3
- "version": "0.0.3-next.12",
3
+ "version": "0.0.3-next.14",
4
4
  "description": "Models which define the structure of Dataspace Protocol",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,8 +17,8 @@
17
17
  "@twin.org/core": "next",
18
18
  "@twin.org/data-core": "next",
19
19
  "@twin.org/data-json-ld": "next",
20
- "@twin.org/standards-w3c-dcat": "0.0.3-next.12",
21
- "@twin.org/standards-w3c-odrl": "0.0.3-next.12",
20
+ "@twin.org/standards-w3c-dcat": "0.0.3-next.14",
21
+ "@twin.org/standards-w3c-odrl": "0.0.3-next.14",
22
22
  "@twin.org/web": "next"
23
23
  },
24
24
  "main": "./dist/es/index.js",