@twin.org/federated-catalogue-models 0.0.3-next.2 → 0.0.3-next.21

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 (61) hide show
  1. package/README.md +1 -1
  2. package/dist/es/index.js +8 -6
  3. package/dist/es/index.js.map +1 -1
  4. package/dist/es/models/IFederatedCatalogueComponent.js.map +1 -1
  5. package/dist/es/models/IFederatedCatalogueFilter.js.map +1 -1
  6. package/dist/es/models/api/ICatalogRequestRequest.js.map +1 -1
  7. package/dist/es/models/api/ICatalogRequestResponse.js.map +1 -1
  8. package/dist/es/models/api/IDatasetGetRequest.js +2 -0
  9. package/dist/es/models/api/IDatasetGetRequest.js.map +1 -0
  10. package/dist/es/models/api/IDatasetGetResponse.js +2 -0
  11. package/dist/es/models/api/IDatasetGetResponse.js.map +1 -0
  12. package/dist/es/models/api/IDatasetRemoveRequest.js +2 -0
  13. package/dist/es/models/api/IDatasetRemoveRequest.js.map +1 -0
  14. package/dist/es/models/api/IDatasetRemoveResponse.js +2 -0
  15. package/dist/es/models/api/IDatasetRemoveResponse.js.map +1 -0
  16. package/dist/es/models/api/IDatasetSetRequest.js +2 -0
  17. package/dist/es/models/api/IDatasetSetRequest.js.map +1 -0
  18. package/dist/es/models/api/IDatasetSetResponse.js +2 -0
  19. package/dist/es/models/api/IDatasetSetResponse.js.map +1 -0
  20. package/dist/types/index.d.ts +8 -6
  21. package/dist/types/models/IFederatedCatalogueComponent.d.ts +32 -19
  22. package/dist/types/models/IFederatedCatalogueFilter.d.ts +9 -6
  23. package/dist/types/models/api/ICatalogRequestRequest.d.ts +23 -2
  24. package/dist/types/models/api/ICatalogRequestResponse.d.ts +18 -3
  25. package/dist/types/models/api/IDatasetGetRequest.d.ts +21 -0
  26. package/dist/types/models/api/IDatasetGetResponse.d.ts +16 -0
  27. package/dist/types/models/api/IDatasetRemoveRequest.d.ts +21 -0
  28. package/dist/types/models/api/IDatasetRemoveResponse.d.ts +15 -0
  29. package/dist/types/models/api/IDatasetSetRequest.d.ts +17 -0
  30. package/dist/types/models/api/IDatasetSetResponse.d.ts +21 -0
  31. package/docs/changelog.md +136 -3
  32. package/docs/examples.md +55 -1
  33. package/docs/reference/index.md +6 -8
  34. package/docs/reference/interfaces/ICatalogRequestRequest.md +35 -2
  35. package/docs/reference/interfaces/ICatalogRequestResponse.md +27 -3
  36. package/docs/reference/interfaces/IDatasetGetRequest.md +29 -0
  37. package/docs/reference/interfaces/IDatasetGetResponse.md +19 -0
  38. package/docs/reference/interfaces/IDatasetRemoveRequest.md +29 -0
  39. package/docs/reference/interfaces/IDatasetRemoveResponse.md +19 -0
  40. package/docs/reference/interfaces/IDatasetSetRequest.md +23 -0
  41. package/docs/reference/interfaces/IDatasetSetResponse.md +31 -0
  42. package/docs/reference/interfaces/IFederatedCatalogueComponent.md +65 -33
  43. package/docs/reference/interfaces/IFederatedCatalogueFilter.md +25 -8
  44. package/package.json +7 -5
  45. package/dist/es/models/api/IGetDatasetRequest.js +0 -4
  46. package/dist/es/models/api/IGetDatasetRequest.js.map +0 -1
  47. package/dist/es/models/api/IGetDatasetResponse.js +0 -2
  48. package/dist/es/models/api/IGetDatasetResponse.js.map +0 -1
  49. package/dist/es/models/federatedCatalogueContexts.js +0 -13
  50. package/dist/es/models/federatedCatalogueContexts.js.map +0 -1
  51. package/dist/es/models/filters/IBaseFilter.js +0 -2
  52. package/dist/es/models/filters/IBaseFilter.js.map +0 -1
  53. package/dist/types/models/api/IGetDatasetRequest.d.ts +0 -14
  54. package/dist/types/models/api/IGetDatasetResponse.d.ts +0 -10
  55. package/dist/types/models/federatedCatalogueContexts.d.ts +0 -13
  56. package/dist/types/models/filters/IBaseFilter.d.ts +0 -34
  57. package/docs/reference/interfaces/IBaseFilter.md +0 -55
  58. package/docs/reference/interfaces/IGetDatasetRequest.md +0 -17
  59. package/docs/reference/interfaces/IGetDatasetResponse.md +0 -11
  60. package/docs/reference/type-aliases/FederatedCatalogueContexts.md +0 -5
  61. package/docs/reference/variables/FederatedCatalogueContexts.md +0 -13
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Federated Catalogue Models
2
2
 
3
- Models which define the structure of the Federated Catalogue.
3
+ This package defines shared data contracts for catalogue interactions, including request and response models used by service and client components. It provides a stable schema layer so integrations can exchange catalogue data in a consistent format.
4
4
 
5
5
  ## Installation
6
6
 
package/dist/es/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  export * from "./factories/federatedCatalogueFilterFactory.js";
4
- export * from "./models/federatedCatalogueContexts.js";
5
- export * from "./models/filters/IBaseFilter.js";
6
- export * from "./models/IFederatedCatalogueComponent.js";
7
- export * from "./models/IFederatedCatalogueFilter.js";
8
4
  export * from "./models/api/ICatalogRequestRequest.js";
9
5
  export * from "./models/api/ICatalogRequestResponse.js";
10
- export * from "./models/api/IGetDatasetRequest.js";
11
- export * from "./models/api/IGetDatasetResponse.js";
6
+ export * from "./models/api/IDatasetGetRequest.js";
7
+ export * from "./models/api/IDatasetGetResponse.js";
8
+ export * from "./models/api/IDatasetRemoveRequest.js";
9
+ export * from "./models/api/IDatasetRemoveResponse.js";
10
+ export * from "./models/api/IDatasetSetRequest.js";
11
+ export * from "./models/api/IDatasetSetResponse.js";
12
+ export * from "./models/IFederatedCatalogueComponent.js";
13
+ export * from "./models/IFederatedCatalogueFilter.js";
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,cAAc,gDAAgD,CAAC;AAE/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./factories/federatedCatalogueFilterFactory.js\";\n\nexport * from \"./models/federatedCatalogueContexts.js\";\nexport * from \"./models/filters/IBaseFilter.js\";\nexport * from \"./models/IFederatedCatalogueComponent.js\";\nexport * from \"./models/IFederatedCatalogueFilter.js\";\n\nexport * from \"./models/api/ICatalogRequestRequest.js\";\nexport * from \"./models/api/ICatalogRequestResponse.js\";\nexport * from \"./models/api/IGetDatasetRequest.js\";\nexport * from \"./models/api/IGetDatasetResponse.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./factories/federatedCatalogueFilterFactory.js\";\nexport * from \"./models/api/ICatalogRequestRequest.js\";\nexport * from \"./models/api/ICatalogRequestResponse.js\";\nexport * from \"./models/api/IDatasetGetRequest.js\";\nexport * from \"./models/api/IDatasetGetResponse.js\";\nexport * from \"./models/api/IDatasetRemoveRequest.js\";\nexport * from \"./models/api/IDatasetRemoveResponse.js\";\nexport * from \"./models/api/IDatasetSetRequest.js\";\nexport * from \"./models/api/IDatasetSetResponse.js\";\nexport * from \"./models/IFederatedCatalogueComponent.js\";\nexport * from \"./models/IFederatedCatalogueFilter.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IFederatedCatalogueComponent.js","sourceRoot":"","sources":["../../../src/models/IFederatedCatalogueComponent.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { ICatalog, IDataset } from \"@twin.org/standards-w3c-dcat\";\n\n/**\n * Interface describing a federated catalogue component.\n * Provides Dataspace Protocol-compliant catalog endpoints for dataset registry and query.\n */\nexport interface IFederatedCatalogueComponent extends IComponent {\n\t/**\n\t * Retrieve a dataset by its unique identifier.\n\t * @param dataSetId The unique identifier of the dataset.\n\t * @returns The dataset if found.\n\t * @throws NotFoundError if the dataset does not exist.\n\t */\n\tget(dataSetId: string): Promise<IDataset>;\n\n\t/**\n\t * Insert or update a dataset in the catalogue.\n\t * This method is internal and should not be exposed via REST endpoints.\n\t * @param dataSet The dataset to store.\n\t * @returns Nothing.\n\t */\n\tset(dataSet: IDataset): Promise<void>;\n\n\t/**\n\t * Execute a query against the catalogue using registered filter plugins.\n\t * Returns a complete DCAT Catalog object with proper JSON-LD context, metadata, and datasets.\n\t * Filter plugins must be registered in FilterFactory before service initialization.\n\t * The filter payload is evaluated by the appropriate filter plugin based on its structure.\n\t * Pagination properties (cursor, limit) and filter type (@type) should be included\n\t * within the filter object per Eclipse Dataspace Protocol JSON-LD extension patterns.\n\t * @param filter The filter criteria containing @type, optional cursor and limit properties.\n\t * @returns Complete ICatalog object with @context, @id, @type, dcat:dataset, and optional cursor.\n\t * @throws NotFoundError if the @type field is missing or if the filter type is not registered.\n\t */\n\tquery(filter?: unknown[]): Promise<ICatalog>;\n\n\t/**\n\t * Remove a dataset from the catalogue by its unique identifier.\n\t * @param dataSetId The unique identifier of the dataset to remove.\n\t * @returns Nothing.\n\t */\n\tremove(dataSetId: string): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"IFederatedCatalogueComponent.js","sourceRoot":"","sources":["../../../src/models/IFederatedCatalogueComponent.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type {\n\tIDataspaceProtocolCatalog,\n\tIDataspaceProtocolCatalogError\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { IDcatDataset } from \"@twin.org/standards-w3c-dcat\";\n\n/**\n * Interface describing a federated catalogue component.\n * Provides Dataspace Protocol-compliant catalog endpoints for dataset registry and query.\n */\nexport interface IFederatedCatalogueComponent extends IComponent {\n\t/**\n\t * Retrieve a dataset by its unique identifier.\n\t * @param datasetId The unique identifier of the dataset.\n\t * @param trustPayload Optional payload for trust evaluation, if applicable.\n\t * @returns The dataset if found, or a CatalogError if not found or an error occurs.\n\t */\n\tget(\n\t\tdatasetId: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDcatDataset | IDataspaceProtocolCatalogError>;\n\n\t/**\n\t * Insert or update a dataset in the catalogue.\n\t * This method is internal and should not be exposed via REST endpoints.\n\t * @param dataset The dataset to store.\n\t * @param trustPayload Optional payload for trust evaluation, if applicable.\n\t * @returns The unique identifier of the stored dataset, or a CatalogError if an error occurs.\n\t */\n\tset(\n\t\tdataset: IDcatDataset,\n\t\ttrustPayload: unknown\n\t): Promise<string | IDataspaceProtocolCatalogError>;\n\n\t/**\n\t * Execute a query against the catalogue using registered filter plugins.\n\t * Returns a DS Protocol compliant Catalog object with participantId.\n\t *\n\t * The root catalog's participantId is the requesting participant (from context).\n\t * Own datasets (matching requestingParticipantId) go directly in root dataset[].\n\t * Other participants' datasets are grouped in nested catalog[] entries.\n\t *\n\t * For anonymous requests (no context), uses the first publisher found as fallback.\n\t * Returns CatalogError 404 when no datasets exist.\n\t *\n\t * @param filter The filter criteria containing @type.\n\t * @param cursor Optional cursor for pagination.\n\t * @param limit Optional limit for pagination.\n\t * @param trustPayload Optional payload for trust evaluation, if applicable.\n\t * @returns Complete IDataspaceProtocolCatalog with @context, @id, @type, participantId, dataset/catalog,\n\t * or IDataspaceProtocolCatalogError if no datasets found.\n\t */\n\tquery(\n\t\tfilter: unknown[] | undefined,\n\t\tcursor: string | undefined,\n\t\tlimit: number | undefined,\n\t\ttrustPayload: unknown\n\t): Promise<{\n\t\tresult: IDataspaceProtocolCatalog | IDataspaceProtocolCatalogError;\n\t\tcursor?: string;\n\t}>;\n\n\t/**\n\t * Remove a dataset from the catalogue by its unique identifier.\n\t * @param datasetId The unique identifier of the dataset to remove.\n\t * @param trustPayload Optional payload for trust evaluation, if applicable.\n\t * @returns Nothing.\n\t */\n\tremove(\n\t\tdatasetId: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolCatalogError | undefined>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IFederatedCatalogueFilter.js","sourceRoot":"","sources":["../../../src/models/IFederatedCatalogueFilter.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IDataset } from \"@twin.org/standards-w3c-dcat\";\n\n/**\n * Interface describing a filter plugin for the federated catalogue.\n * Filter plugins provide extensible query semantics and indexing strategies.\n * Filters are registered by name in the FilterFactory and do not need to self-identify.\n */\nexport interface IFederatedCatalogueFilter extends IComponent {\n\t/**\n\t * Execute a filter-specific query over the catalogue.\n\t * Each filter interprets the payload according to its own semantics.\n\t * Pagination properties (cursor, limit) are extracted from the filter object by the service layer.\n\t * @param filter The filter criteria (structure depends on the filter implementation).\n\t * @returns Object containing datasets matching the filter criteria and optional cursor for next page.\n\t */\n\tquery(filter: unknown): Promise<{ datasets: IDataset[]; cursor?: string }>;\n\n\t/**\n\t * Generate filter indexes for a dataset to optimize future queries.\n\t * Indexes are stored as properties on the dataset entity itself.\n\t * @param dataSet The dataset to index.\n\t * @returns Record mapping filter-specific index keys to values.\n\t */\n\tcreateIndex(dataSet: IDataset): Promise<{ [key: string]: unknown }>;\n}\n"]}
1
+ {"version":3,"file":"IFederatedCatalogueFilter.js","sourceRoot":"","sources":["../../../src/models/IFederatedCatalogueFilter.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IDcatDataset } from \"@twin.org/standards-w3c-dcat\";\nimport type { ITrustVerificationInfo } from \"@twin.org/trust-models\";\n\n/**\n * Interface describing a filter plugin for the federated catalogue.\n * Filter plugins provide extensible query semantics and indexing strategies.\n * Filters are registered by name in the FilterFactory and do not need to self-identify.\n */\nexport interface IFederatedCatalogueFilter extends IComponent {\n\t/**\n\t * Execute a filter-specific query over the catalogue.\n\t * Each filter interprets the payload according to its own semantics.\n\t * @param trustInfo The trust verification information for the current request.\n\t * @param filter The filter criteria (structure depends on the filter implementation).\n\t * @param cursor The pagination cursor from the previous query, if any.\n\t * @param limit The maximum number of results to return.\n\t * @returns Object containing datasets matching the filter criteria and optional cursor for next page.\n\t */\n\tquery(\n\t\ttrustInfo: ITrustVerificationInfo,\n\t\tfilter: unknown,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<{ datasets: IDcatDataset[]; cursor?: string }>;\n\n\t/**\n\t * Generate filter indexes for a dataset to optimize future queries.\n\t * Indexes are stored as properties on the dataset entity itself.\n\t * @param dataset The dataset to index.\n\t * @returns Record mapping filter-specific index keys to values.\n\t */\n\tcreateIndex(dataset: IDcatDataset): Promise<{ [key: string]: unknown }>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ICatalogRequestRequest.js","sourceRoot":"","sources":["../../../../src/models/api/ICatalogRequestRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ICatalogRequestMessage } from \"@twin.org/standards-dataspace-protocol\";\n\n/**\n * The request parameters for the catalog request method.\n */\nexport interface ICatalogRequestRequest {\n\t/**\n\t * The request body containing the catalog query.\n\t */\n\tbody: ICatalogRequestMessage;\n}\n"]}
1
+ {"version":3,"file":"ICatalogRequestRequest.js","sourceRoot":"","sources":["../../../../src/models/api/ICatalogRequestRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolCatalogRequestMessage } from \"@twin.org/standards-dataspace-protocol\";\nimport type { HeaderTypes } from \"@twin.org/web\";\n\n/**\n * The request parameters for the catalog request method.\n */\nexport interface ICatalogRequestRequest {\n\t/**\n\t * The request headers. Authorization header carries the trust token (Bearer scheme).\n\t */\n\theaders?: {\n\t\t[HeaderTypes.Authorization]?: string;\n\t};\n\n\t/**\n\t * The request body containing the catalog query.\n\t */\n\tbody: IDataspaceProtocolCatalogRequestMessage;\n\n\t/**\n\t * Optional query parameters for pagination.\n\t * Used when following Link header URLs per DS Protocol spec.\n\t */\n\tquery?: {\n\t\t/**\n\t\t * Opaque cursor token for pagination.\n\t\t */\n\t\tcursor?: string;\n\n\t\t/**\n\t\t * Limit for pagination.\n\t\t */\n\t\tlimit?: string;\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ICatalogRequestResponse.js","sourceRoot":"","sources":["../../../../src/models/api/ICatalogRequestResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ICatalog } from \"@twin.org/standards-w3c-dcat\";\n\n/**\n * The response payload for the catalog request method.\n */\nexport interface ICatalogRequestResponse {\n\t/**\n\t * The response payload containing the catalog with matching datasets.\n\t */\n\tbody: ICatalog;\n}\n"]}
1
+ {"version":3,"file":"ICatalogRequestResponse.js","sourceRoot":"","sources":["../../../../src/models/api/ICatalogRequestResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tIDataspaceProtocolCatalog,\n\tIDataspaceProtocolCatalogError\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { HeaderTypes, HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * The response payload for the catalog request method.\n * Returns a DS Protocol compliant Catalog with participantId, or CatalogError if no datasets found.\n */\nexport interface ICatalogRequestResponse {\n\t/**\n\t * Optional headers including RFC 8288 Link header for pagination.\n\t */\n\theaders?: {\n\t\t[HeaderTypes.Link]?: string | string[];\n\t};\n\n\t/**\n\t * Response status code.\n\t * Per DS Protocol: Returns appropriate HTTP code (e.g., 404) when returning CatalogError.\n\t */\n\tstatusCode?: HttpStatusCode;\n\n\t/**\n\t * The response payload containing the DS Protocol compliant catalog with participantId,\n\t * or a CatalogError if no datasets are found (404).\n\t * Per DS Protocol: Single participant returns flat catalog, multiple participants return nested catalogs.\n\t */\n\tbody: IDataspaceProtocolCatalog | IDataspaceProtocolCatalogError;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDatasetGetRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDatasetGetRequest.js","sourceRoot":"","sources":["../../../../src/models/api/IDatasetGetRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { HeaderTypes } from \"@twin.org/web\";\n\n/**\n * The request parameters for the get dataset method.\n */\nexport interface IDatasetGetRequest {\n\t/**\n\t * The request headers. Authorization header carries the trust token (Bearer scheme).\n\t */\n\theaders?: {\n\t\t[HeaderTypes.Authorization]?: string;\n\t};\n\n\t/**\n\t * The path parameters.\n\t */\n\tpathParams: {\n\t\t/**\n\t\t * The unique identifier of the dataset.\n\t\t */\n\t\tdatasetId: string;\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDatasetGetResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDatasetGetResponse.js","sourceRoot":"","sources":["../../../../src/models/api/IDatasetGetResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolCatalogError } from \"@twin.org/standards-dataspace-protocol\";\nimport type { IDcatDataset } from \"@twin.org/standards-w3c-dcat\";\nimport type { HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * The response payload for the get dataset method.\n */\nexport interface IDatasetGetResponse {\n\t/**\n\t * Response status code.\n\t */\n\tstatusCode?: HttpStatusCode;\n\n\t/**\n\t * The response payload containing the dataset or error.\n\t */\n\tbody: IDcatDataset | IDataspaceProtocolCatalogError;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDatasetRemoveRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDatasetRemoveRequest.js","sourceRoot":"","sources":["../../../../src/models/api/IDatasetRemoveRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { HeaderTypes } from \"@twin.org/web\";\n\n/**\n * The request parameters for the remove dataset method.\n */\nexport interface IDatasetRemoveRequest {\n\t/**\n\t * The request headers. Authorization header carries the trust token (Bearer scheme).\n\t */\n\theaders?: {\n\t\t[HeaderTypes.Authorization]?: string;\n\t};\n\n\t/**\n\t * The path parameters.\n\t */\n\tpathParams: {\n\t\t/**\n\t\t * The unique identifier of the dataset.\n\t\t */\n\t\tdatasetId: string;\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDatasetRemoveResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDatasetRemoveResponse.js","sourceRoot":"","sources":["../../../../src/models/api/IDatasetRemoveResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolCatalogError } from \"@twin.org/standards-dataspace-protocol\";\nimport type { HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * The response payload for the remove dataset method.\n */\nexport interface IDatasetRemoveResponse {\n\t/**\n\t * Response status code.\n\t */\n\tstatusCode?: HttpStatusCode;\n\n\t/**\n\t * The response payload containing the dataset or error.\n\t */\n\tbody?: IDataspaceProtocolCatalogError;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDatasetSetRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDatasetSetRequest.js","sourceRoot":"","sources":["../../../../src/models/api/IDatasetSetRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDcatDataset } from \"@twin.org/standards-w3c-dcat\";\nimport type { HeaderTypes } from \"@twin.org/web\";\n\n/**\n * The request parameters for the set dataset method.\n */\nexport interface IDatasetSetRequest {\n\t/**\n\t * The request headers. Authorization header carries the trust token (Bearer scheme).\n\t */\n\theaders?: {\n\t\t[HeaderTypes.Authorization]?: string;\n\t};\n\n\t/**\n\t * The response payload containing the dataset or error.\n\t */\n\tbody: IDcatDataset;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDatasetSetResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDatasetSetResponse.js","sourceRoot":"","sources":["../../../../src/models/api/IDatasetSetResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolCatalogError } from \"@twin.org/standards-dataspace-protocol\";\nimport type { HeaderTypes, HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * The response payload for the set dataset method.\n */\nexport interface IDatasetSetResponse {\n\t/**\n\t * Response status code.\n\t */\n\tstatusCode?: HttpStatusCode;\n\n\t/**\n\t * Optional headers.\n\t */\n\theaders?: {\n\t\t[HeaderTypes.Location]?: string;\n\t};\n\n\t/**\n\t * The response payload containing the dataset or error.\n\t */\n\tbody?: IDataspaceProtocolCatalogError;\n}\n"]}
@@ -1,9 +1,11 @@
1
1
  export * from "./factories/federatedCatalogueFilterFactory.js";
2
- export * from "./models/federatedCatalogueContexts.js";
3
- export * from "./models/filters/IBaseFilter.js";
4
- export * from "./models/IFederatedCatalogueComponent.js";
5
- export * from "./models/IFederatedCatalogueFilter.js";
6
2
  export * from "./models/api/ICatalogRequestRequest.js";
7
3
  export * from "./models/api/ICatalogRequestResponse.js";
8
- export * from "./models/api/IGetDatasetRequest.js";
9
- export * from "./models/api/IGetDatasetResponse.js";
4
+ export * from "./models/api/IDatasetGetRequest.js";
5
+ export * from "./models/api/IDatasetGetResponse.js";
6
+ export * from "./models/api/IDatasetRemoveRequest.js";
7
+ export * from "./models/api/IDatasetRemoveResponse.js";
8
+ export * from "./models/api/IDatasetSetRequest.js";
9
+ export * from "./models/api/IDatasetSetResponse.js";
10
+ export * from "./models/IFederatedCatalogueComponent.js";
11
+ export * from "./models/IFederatedCatalogueFilter.js";
@@ -1,5 +1,6 @@
1
1
  import type { IComponent } from "@twin.org/core";
2
- import type { ICatalog, IDataset } from "@twin.org/standards-w3c-dcat";
2
+ import type { IDataspaceProtocolCatalog, IDataspaceProtocolCatalogError } from "@twin.org/standards-dataspace-protocol";
3
+ import type { IDcatDataset } from "@twin.org/standards-w3c-dcat";
3
4
  /**
4
5
  * Interface describing a federated catalogue component.
5
6
  * Provides Dataspace Protocol-compliant catalog endpoints for dataset registry and query.
@@ -7,34 +8,46 @@ import type { ICatalog, IDataset } from "@twin.org/standards-w3c-dcat";
7
8
  export interface IFederatedCatalogueComponent extends IComponent {
8
9
  /**
9
10
  * Retrieve a dataset by its unique identifier.
10
- * @param dataSetId The unique identifier of the dataset.
11
- * @returns The dataset if found.
12
- * @throws NotFoundError if the dataset does not exist.
11
+ * @param datasetId The unique identifier of the dataset.
12
+ * @param trustPayload Optional payload for trust evaluation, if applicable.
13
+ * @returns The dataset if found, or a CatalogError if not found or an error occurs.
13
14
  */
14
- get(dataSetId: string): Promise<IDataset>;
15
+ get(datasetId: string, trustPayload: unknown): Promise<IDcatDataset | IDataspaceProtocolCatalogError>;
15
16
  /**
16
17
  * Insert or update a dataset in the catalogue.
17
18
  * This method is internal and should not be exposed via REST endpoints.
18
- * @param dataSet The dataset to store.
19
- * @returns Nothing.
19
+ * @param dataset The dataset to store.
20
+ * @param trustPayload Optional payload for trust evaluation, if applicable.
21
+ * @returns The unique identifier of the stored dataset, or a CatalogError if an error occurs.
20
22
  */
21
- set(dataSet: IDataset): Promise<void>;
23
+ set(dataset: IDcatDataset, trustPayload: unknown): Promise<string | IDataspaceProtocolCatalogError>;
22
24
  /**
23
25
  * Execute a query against the catalogue using registered filter plugins.
24
- * Returns a complete DCAT Catalog object with proper JSON-LD context, metadata, and datasets.
25
- * Filter plugins must be registered in FilterFactory before service initialization.
26
- * The filter payload is evaluated by the appropriate filter plugin based on its structure.
27
- * Pagination properties (cursor, limit) and filter type (@type) should be included
28
- * within the filter object per Eclipse Dataspace Protocol JSON-LD extension patterns.
29
- * @param filter The filter criteria containing @type, optional cursor and limit properties.
30
- * @returns Complete ICatalog object with @context, @id, @type, dcat:dataset, and optional cursor.
31
- * @throws NotFoundError if the @type field is missing or if the filter type is not registered.
26
+ * Returns a DS Protocol compliant Catalog object with participantId.
27
+ *
28
+ * The root catalog's participantId is the requesting participant (from context).
29
+ * Own datasets (matching requestingParticipantId) go directly in root dataset[].
30
+ * Other participants' datasets are grouped in nested catalog[] entries.
31
+ *
32
+ * For anonymous requests (no context), uses the first publisher found as fallback.
33
+ * Returns CatalogError 404 when no datasets exist.
34
+ *
35
+ * @param filter The filter criteria containing @type.
36
+ * @param cursor Optional cursor for pagination.
37
+ * @param limit Optional limit for pagination.
38
+ * @param trustPayload Optional payload for trust evaluation, if applicable.
39
+ * @returns Complete IDataspaceProtocolCatalog with @context, @id, @type, participantId, dataset/catalog,
40
+ * or IDataspaceProtocolCatalogError if no datasets found.
32
41
  */
33
- query(filter?: unknown[]): Promise<ICatalog>;
42
+ query(filter: unknown[] | undefined, cursor: string | undefined, limit: number | undefined, trustPayload: unknown): Promise<{
43
+ result: IDataspaceProtocolCatalog | IDataspaceProtocolCatalogError;
44
+ cursor?: string;
45
+ }>;
34
46
  /**
35
47
  * Remove a dataset from the catalogue by its unique identifier.
36
- * @param dataSetId The unique identifier of the dataset to remove.
48
+ * @param datasetId The unique identifier of the dataset to remove.
49
+ * @param trustPayload Optional payload for trust evaluation, if applicable.
37
50
  * @returns Nothing.
38
51
  */
39
- remove(dataSetId: string): Promise<void>;
52
+ remove(datasetId: string, trustPayload: unknown): Promise<IDataspaceProtocolCatalogError | undefined>;
40
53
  }
@@ -1,5 +1,6 @@
1
1
  import type { IComponent } from "@twin.org/core";
2
- import type { IDataset } from "@twin.org/standards-w3c-dcat";
2
+ import type { IDcatDataset } from "@twin.org/standards-w3c-dcat";
3
+ import type { ITrustVerificationInfo } from "@twin.org/trust-models";
3
4
  /**
4
5
  * Interface describing a filter plugin for the federated catalogue.
5
6
  * Filter plugins provide extensible query semantics and indexing strategies.
@@ -9,21 +10,23 @@ export interface IFederatedCatalogueFilter extends IComponent {
9
10
  /**
10
11
  * Execute a filter-specific query over the catalogue.
11
12
  * Each filter interprets the payload according to its own semantics.
12
- * Pagination properties (cursor, limit) are extracted from the filter object by the service layer.
13
+ * @param trustInfo The trust verification information for the current request.
13
14
  * @param filter The filter criteria (structure depends on the filter implementation).
15
+ * @param cursor The pagination cursor from the previous query, if any.
16
+ * @param limit The maximum number of results to return.
14
17
  * @returns Object containing datasets matching the filter criteria and optional cursor for next page.
15
18
  */
16
- query(filter: unknown): Promise<{
17
- datasets: IDataset[];
19
+ query(trustInfo: ITrustVerificationInfo, filter: unknown, cursor?: string, limit?: number): Promise<{
20
+ datasets: IDcatDataset[];
18
21
  cursor?: string;
19
22
  }>;
20
23
  /**
21
24
  * Generate filter indexes for a dataset to optimize future queries.
22
25
  * Indexes are stored as properties on the dataset entity itself.
23
- * @param dataSet The dataset to index.
26
+ * @param dataset The dataset to index.
24
27
  * @returns Record mapping filter-specific index keys to values.
25
28
  */
26
- createIndex(dataSet: IDataset): Promise<{
29
+ createIndex(dataset: IDcatDataset): Promise<{
27
30
  [key: string]: unknown;
28
31
  }>;
29
32
  }
@@ -1,10 +1,31 @@
1
- import type { ICatalogRequestMessage } from "@twin.org/standards-dataspace-protocol";
1
+ import type { IDataspaceProtocolCatalogRequestMessage } from "@twin.org/standards-dataspace-protocol";
2
+ import type { HeaderTypes } from "@twin.org/web";
2
3
  /**
3
4
  * The request parameters for the catalog request method.
4
5
  */
5
6
  export interface ICatalogRequestRequest {
7
+ /**
8
+ * The request headers. Authorization header carries the trust token (Bearer scheme).
9
+ */
10
+ headers?: {
11
+ [HeaderTypes.Authorization]?: string;
12
+ };
6
13
  /**
7
14
  * The request body containing the catalog query.
8
15
  */
9
- body: ICatalogRequestMessage;
16
+ body: IDataspaceProtocolCatalogRequestMessage;
17
+ /**
18
+ * Optional query parameters for pagination.
19
+ * Used when following Link header URLs per DS Protocol spec.
20
+ */
21
+ query?: {
22
+ /**
23
+ * Opaque cursor token for pagination.
24
+ */
25
+ cursor?: string;
26
+ /**
27
+ * Limit for pagination.
28
+ */
29
+ limit?: string;
30
+ };
10
31
  }
@@ -1,10 +1,25 @@
1
- import type { ICatalog } from "@twin.org/standards-w3c-dcat";
1
+ import type { IDataspaceProtocolCatalog, IDataspaceProtocolCatalogError } from "@twin.org/standards-dataspace-protocol";
2
+ import type { HeaderTypes, HttpStatusCode } from "@twin.org/web";
2
3
  /**
3
4
  * The response payload for the catalog request method.
5
+ * Returns a DS Protocol compliant Catalog with participantId, or CatalogError if no datasets found.
4
6
  */
5
7
  export interface ICatalogRequestResponse {
6
8
  /**
7
- * The response payload containing the catalog with matching datasets.
9
+ * Optional headers including RFC 8288 Link header for pagination.
8
10
  */
9
- body: ICatalog;
11
+ headers?: {
12
+ [HeaderTypes.Link]?: string | string[];
13
+ };
14
+ /**
15
+ * Response status code.
16
+ * Per DS Protocol: Returns appropriate HTTP code (e.g., 404) when returning CatalogError.
17
+ */
18
+ statusCode?: HttpStatusCode;
19
+ /**
20
+ * The response payload containing the DS Protocol compliant catalog with participantId,
21
+ * or a CatalogError if no datasets are found (404).
22
+ * Per DS Protocol: Single participant returns flat catalog, multiple participants return nested catalogs.
23
+ */
24
+ body: IDataspaceProtocolCatalog | IDataspaceProtocolCatalogError;
10
25
  }
@@ -0,0 +1,21 @@
1
+ import type { HeaderTypes } from "@twin.org/web";
2
+ /**
3
+ * The request parameters for the get dataset method.
4
+ */
5
+ export interface IDatasetGetRequest {
6
+ /**
7
+ * The request headers. Authorization header carries the trust token (Bearer scheme).
8
+ */
9
+ headers?: {
10
+ [HeaderTypes.Authorization]?: string;
11
+ };
12
+ /**
13
+ * The path parameters.
14
+ */
15
+ pathParams: {
16
+ /**
17
+ * The unique identifier of the dataset.
18
+ */
19
+ datasetId: string;
20
+ };
21
+ }
@@ -0,0 +1,16 @@
1
+ import type { IDataspaceProtocolCatalogError } from "@twin.org/standards-dataspace-protocol";
2
+ import type { IDcatDataset } from "@twin.org/standards-w3c-dcat";
3
+ import type { HttpStatusCode } from "@twin.org/web";
4
+ /**
5
+ * The response payload for the get dataset method.
6
+ */
7
+ export interface IDatasetGetResponse {
8
+ /**
9
+ * Response status code.
10
+ */
11
+ statusCode?: HttpStatusCode;
12
+ /**
13
+ * The response payload containing the dataset or error.
14
+ */
15
+ body: IDcatDataset | IDataspaceProtocolCatalogError;
16
+ }
@@ -0,0 +1,21 @@
1
+ import type { HeaderTypes } from "@twin.org/web";
2
+ /**
3
+ * The request parameters for the remove dataset method.
4
+ */
5
+ export interface IDatasetRemoveRequest {
6
+ /**
7
+ * The request headers. Authorization header carries the trust token (Bearer scheme).
8
+ */
9
+ headers?: {
10
+ [HeaderTypes.Authorization]?: string;
11
+ };
12
+ /**
13
+ * The path parameters.
14
+ */
15
+ pathParams: {
16
+ /**
17
+ * The unique identifier of the dataset.
18
+ */
19
+ datasetId: string;
20
+ };
21
+ }
@@ -0,0 +1,15 @@
1
+ import type { IDataspaceProtocolCatalogError } from "@twin.org/standards-dataspace-protocol";
2
+ import type { HttpStatusCode } from "@twin.org/web";
3
+ /**
4
+ * The response payload for the remove dataset method.
5
+ */
6
+ export interface IDatasetRemoveResponse {
7
+ /**
8
+ * Response status code.
9
+ */
10
+ statusCode?: HttpStatusCode;
11
+ /**
12
+ * The response payload containing the dataset or error.
13
+ */
14
+ body?: IDataspaceProtocolCatalogError;
15
+ }
@@ -0,0 +1,17 @@
1
+ import type { IDcatDataset } from "@twin.org/standards-w3c-dcat";
2
+ import type { HeaderTypes } from "@twin.org/web";
3
+ /**
4
+ * The request parameters for the set dataset method.
5
+ */
6
+ export interface IDatasetSetRequest {
7
+ /**
8
+ * The request headers. Authorization header carries the trust token (Bearer scheme).
9
+ */
10
+ headers?: {
11
+ [HeaderTypes.Authorization]?: string;
12
+ };
13
+ /**
14
+ * The response payload containing the dataset or error.
15
+ */
16
+ body: IDcatDataset;
17
+ }
@@ -0,0 +1,21 @@
1
+ import type { IDataspaceProtocolCatalogError } from "@twin.org/standards-dataspace-protocol";
2
+ import type { HeaderTypes, HttpStatusCode } from "@twin.org/web";
3
+ /**
4
+ * The response payload for the set dataset method.
5
+ */
6
+ export interface IDatasetSetResponse {
7
+ /**
8
+ * Response status code.
9
+ */
10
+ statusCode?: HttpStatusCode;
11
+ /**
12
+ * Optional headers.
13
+ */
14
+ headers?: {
15
+ [HeaderTypes.Location]?: string;
16
+ };
17
+ /**
18
+ * The response payload containing the dataset or error.
19
+ */
20
+ body?: IDataspaceProtocolCatalogError;
21
+ }
package/docs/changelog.md CHANGED
@@ -1,11 +1,144 @@
1
- # @twin.org/federated-catalogue-models - Changelog
1
+ # Changelog
2
2
 
3
- ## [0.0.3-next.2](https://github.com/twinfoundation/federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.1...federated-catalogue-models-v0.0.3-next.2) (2025-11-28)
3
+ ## [0.0.3-next.21](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.20...federated-catalogue-models-v0.0.3-next.21) (2026-06-12)
4
+
5
+
6
+ ### Miscellaneous Chores
7
+
8
+ * **federated-catalogue-models:** Synchronize repo versions
9
+
10
+ ## [0.0.3-next.20](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.19...federated-catalogue-models-v0.0.3-next.20) (2026-06-11)
11
+
12
+
13
+ ### Features
14
+
15
+ * organization identifiers ([#84](https://github.com/iotaledger/twin-federated-catalogue/issues/84)) ([1e02971](https://github.com/iotaledger/twin-federated-catalogue/commit/1e02971a12e40bd20a0034ee1de0988a689d3dc8))
16
+
17
+ ## [0.0.3-next.19](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.18...federated-catalogue-models-v0.0.3-next.19) (2026-06-08)
18
+
19
+
20
+ ### Features
21
+
22
+ * replace sync storage with shared DB and trust-token auth ([#79](https://github.com/iotaledger/twin-federated-catalogue/issues/79)) ([3a07f02](https://github.com/iotaledger/twin-federated-catalogue/commit/3a07f02aba8d6f3540a23e5c2cebc7b0e579ef30))
23
+
24
+ ## [0.0.3-next.18](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.17...federated-catalogue-models-v0.0.3-next.18) (2026-06-01)
25
+
26
+
27
+ ### Miscellaneous Chores
28
+
29
+ * **federated-catalogue-models:** Synchronize repo versions
30
+
31
+ ## [0.0.3-next.17](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.16...federated-catalogue-models-v0.0.3-next.17) (2026-05-20)
32
+
33
+
34
+ ### Miscellaneous Chores
35
+
36
+ * **federated-catalogue-models:** Synchronize repo versions
37
+
38
+ ## [0.0.3-next.16](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.15...federated-catalogue-models-v0.0.3-next.16) (2026-05-12)
39
+
40
+
41
+ ### Features
42
+
43
+ * typescript 6 update ([ead042d](https://github.com/iotaledger/twin-federated-catalogue/commit/ead042d09f4e6b03a2db46ace2ea95d197f0f4b0))
44
+
45
+ ## [0.0.3-next.15](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.14...federated-catalogue-models-v0.0.3-next.15) (2026-05-08)
46
+
47
+
48
+ ### Miscellaneous Chores
49
+
50
+ * **federated-catalogue-models:** Synchronize repo versions
51
+
52
+ ## [0.0.3-next.14](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.13...federated-catalogue-models-v0.0.3-next.14) (2026-03-20)
53
+
54
+
55
+ ### Miscellaneous Chores
56
+
57
+ * **federated-catalogue-models:** Synchronize repo versions
58
+
59
+ ## [0.0.3-next.13](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.12...federated-catalogue-models-v0.0.3-next.13) (2026-03-12)
60
+
61
+
62
+ ### Miscellaneous Chores
63
+
64
+ * **federated-catalogue-models:** Synchronize repo versions
65
+
66
+ ## [0.0.3-next.12](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.11...federated-catalogue-models-v0.0.3-next.12) (2026-03-06)
67
+
68
+
69
+ ### Miscellaneous Chores
70
+
71
+ * **federated-catalogue-models:** Synchronize repo versions
72
+
73
+ ## [0.0.3-next.11](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.10...federated-catalogue-models-v0.0.3-next.11) (2026-03-05)
74
+
75
+
76
+ ### Miscellaneous Chores
77
+
78
+ * **federated-catalogue-models:** Synchronize repo versions
79
+
80
+ ## [0.0.3-next.10](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.9...federated-catalogue-models-v0.0.3-next.10) (2026-02-25)
81
+
82
+
83
+ ### Features
84
+
85
+ * update json-ld patterns ([172aff0](https://github.com/iotaledger/twin-federated-catalogue/commit/172aff07d0f0b780f72d1be3a4896bbf12f6173a))
86
+
87
+ ## [0.0.3-next.9](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.8...federated-catalogue-models-v0.0.3-next.9) (2026-02-12)
88
+
89
+
90
+ ### Miscellaneous Chores
91
+
92
+ * **federated-catalogue-models:** Synchronize repo versions
93
+
94
+ ## [0.0.3-next.8](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.7...federated-catalogue-models-v0.0.3-next.8) (2026-01-26)
95
+
96
+
97
+ ### Features
98
+
99
+ * use new hosting url for cursor links ([e42c934](https://github.com/iotaledger/twin-federated-catalogue/commit/e42c934b9c8748ec5bdd4803c1cdc05c82ccace8))
100
+
101
+ ## [0.0.3-next.7](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.6...federated-catalogue-models-v0.0.3-next.7) (2026-01-22)
102
+
103
+
104
+ ### Miscellaneous Chores
105
+
106
+ * **federated-catalogue-models:** Synchronize repo versions
107
+
108
+ ## [0.0.3-next.6](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.5...federated-catalogue-models-v0.0.3-next.6) (2026-01-20)
109
+
110
+
111
+ ### Bug Fixes
112
+
113
+ * transform GuardError to CatalogError for DS Protocol compliance ([#49](https://github.com/iotaledger/twin-federated-catalogue/issues/49)) ([d0f1090](https://github.com/iotaledger/twin-federated-catalogue/commit/d0f10900c251b9abc18e58c90562c393c3265727))
114
+
115
+ ## [0.0.3-next.5](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.4...federated-catalogue-models-v0.0.3-next.5) (2026-01-15)
116
+
117
+
118
+ ### Bug Fixes
119
+
120
+ * pagination and ld context ([#45](https://github.com/iotaledger/twin-federated-catalogue/issues/45)) ([e36f096](https://github.com/iotaledger/twin-federated-catalogue/commit/e36f096aa4fdc61eb5b929a0fc4403247dbd41ce))
121
+
122
+ ## [0.0.3-next.4](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.3...federated-catalogue-models-v0.0.3-next.4) (2026-01-06)
123
+
124
+
125
+ ### Features
126
+
127
+ * updates standards dependencies ([62f5d9c](https://github.com/iotaledger/twin-federated-catalogue/commit/62f5d9c6180bc27497ac43624ffd714e7ce65ce6))
128
+
129
+ ## [0.0.3-next.3](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.2...federated-catalogue-models-v0.0.3-next.3) (2025-11-28)
130
+
131
+
132
+ ### Miscellaneous Chores
133
+
134
+ * **federated-catalogue-models:** Synchronize repo versions
135
+
136
+ ## [0.0.3-next.2](https://github.com/iotaledger/twin-federated-catalogue/compare/federated-catalogue-models-v0.0.3-next.1...federated-catalogue-models-v0.0.3-next.2) (2025-11-28)
4
137
 
5
138
 
6
139
  ### Features
7
140
 
8
- * implement Dataspace Protocol federated catalogue ([#36](https://github.com/twinfoundation/federated-catalogue/issues/36)) ([4765aba](https://github.com/twinfoundation/federated-catalogue/commit/4765aba4485ef8ad61e7ec1affbf0e454d974d36))
141
+ * implement Dataspace Protocol federated catalogue ([#36](https://github.com/iotaledger/twin-federated-catalogue/issues/36)) ([4765aba](https://github.com/iotaledger/twin-federated-catalogue/commit/4765aba4485ef8ad61e7ec1affbf0e454d974d36))
9
142
 
10
143
  ## v0.0.1-next.1
11
144