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

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 (214) hide show
  1. package/dist/es/factories/federatedCatalogueFilterFactory.js +10 -0
  2. package/dist/es/factories/federatedCatalogueFilterFactory.js.map +1 -0
  3. package/dist/es/index.js +7 -40
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/es/models/IFederatedCatalogueComponent.js.map +1 -1
  6. package/dist/es/models/IFederatedCatalogueFilter.js +2 -0
  7. package/dist/es/models/IFederatedCatalogueFilter.js.map +1 -0
  8. package/dist/es/models/api/ICatalogRequestRequest.js +2 -0
  9. package/dist/es/models/api/ICatalogRequestRequest.js.map +1 -0
  10. package/dist/es/models/api/ICatalogRequestResponse.js +2 -0
  11. package/dist/es/models/api/ICatalogRequestResponse.js.map +1 -0
  12. package/dist/es/models/{ICatalogueBase.js → api/IGetDatasetRequest.js} +1 -1
  13. package/dist/es/models/api/IGetDatasetRequest.js.map +1 -0
  14. package/dist/es/models/api/IGetDatasetResponse.js +2 -0
  15. package/dist/es/models/api/IGetDatasetResponse.js.map +1 -0
  16. package/dist/es/models/federatedCatalogueContexts.js +2 -2
  17. package/dist/es/models/federatedCatalogueContexts.js.map +1 -1
  18. package/dist/es/models/filters/IBaseFilter.js +2 -0
  19. package/dist/es/models/filters/IBaseFilter.js.map +1 -0
  20. package/dist/types/factories/federatedCatalogueFilterFactory.d.ts +7 -0
  21. package/dist/types/index.d.ts +7 -40
  22. package/dist/types/models/IFederatedCatalogueComponent.d.ts +27 -76
  23. package/dist/types/models/IFederatedCatalogueFilter.d.ts +29 -0
  24. package/dist/types/models/api/ICatalogRequestRequest.d.ts +10 -0
  25. package/dist/types/models/api/ICatalogRequestResponse.d.ts +10 -0
  26. package/dist/types/models/api/IGetDatasetRequest.d.ts +14 -0
  27. package/dist/types/models/api/IGetDatasetResponse.d.ts +10 -0
  28. package/dist/types/models/federatedCatalogueContexts.d.ts +2 -2
  29. package/dist/types/models/filters/IBaseFilter.d.ts +34 -0
  30. package/docs/changelog.md +3 -159
  31. package/docs/reference/index.md +7 -45
  32. package/docs/reference/interfaces/IBaseFilter.md +55 -0
  33. package/docs/reference/interfaces/ICatalogRequestRequest.md +11 -0
  34. package/docs/reference/interfaces/ICatalogRequestResponse.md +11 -0
  35. package/docs/reference/interfaces/IFederatedCatalogueComponent.md +40 -243
  36. package/docs/reference/interfaces/IFederatedCatalogueFilter.md +56 -0
  37. package/docs/reference/interfaces/IGetDatasetRequest.md +17 -0
  38. package/docs/reference/interfaces/IGetDatasetResponse.md +11 -0
  39. package/docs/reference/type-aliases/FederatedCatalogueContexts.md +1 -1
  40. package/docs/reference/variables/FederatedCatalogueContexts.md +1 -1
  41. package/docs/reference/variables/FederatedCatalogueFilterFactory.md +6 -0
  42. package/package.json +3 -5
  43. package/dist/es/dataTypes/federatedCatalogueDataTypes.js +0 -72
  44. package/dist/es/dataTypes/federatedCatalogueDataTypes.js.map +0 -1
  45. package/dist/es/models/ICatalogueBase.js.map +0 -1
  46. package/dist/es/models/ICatalogueEntry.js +0 -2
  47. package/dist/es/models/ICatalogueEntry.js.map +0 -1
  48. package/dist/es/models/IComplianceCredential.js +0 -2
  49. package/dist/es/models/IComplianceCredential.js.map +0 -1
  50. package/dist/es/models/IComplianceEvidence.js +0 -2
  51. package/dist/es/models/IComplianceEvidence.js.map +0 -1
  52. package/dist/es/models/IComplianceVerificationResult.js +0 -2
  53. package/dist/es/models/IComplianceVerificationResult.js.map +0 -1
  54. package/dist/es/models/ICredential.js +0 -2
  55. package/dist/es/models/ICredential.js.map +0 -1
  56. package/dist/es/models/IVerificationResult.js +0 -4
  57. package/dist/es/models/IVerificationResult.js.map +0 -1
  58. package/dist/es/models/api/ICatalogueEntryGetRequest.js +0 -2
  59. package/dist/es/models/api/ICatalogueEntryGetRequest.js.map +0 -1
  60. package/dist/es/models/api/ICompliancePresentationRequest.js +0 -4
  61. package/dist/es/models/api/ICompliancePresentationRequest.js.map +0 -1
  62. package/dist/es/models/api/IDataResourceGetResponse.js +0 -2
  63. package/dist/es/models/api/IDataResourceGetResponse.js.map +0 -1
  64. package/dist/es/models/api/IDataResourceListRequest.js +0 -2
  65. package/dist/es/models/api/IDataResourceListRequest.js.map +0 -1
  66. package/dist/es/models/api/IDataResourceListResponse.js +0 -2
  67. package/dist/es/models/api/IDataResourceListResponse.js.map +0 -1
  68. package/dist/es/models/api/IDataSpaceConnectorGetResponse.js +0 -2
  69. package/dist/es/models/api/IDataSpaceConnectorGetResponse.js.map +0 -1
  70. package/dist/es/models/api/IDataSpaceConnectorListRequest.js +0 -2
  71. package/dist/es/models/api/IDataSpaceConnectorListRequest.js.map +0 -1
  72. package/dist/es/models/api/IDataSpaceConnectorListResponse.js +0 -2
  73. package/dist/es/models/api/IDataSpaceConnectorListResponse.js.map +0 -1
  74. package/dist/es/models/api/IFederatedCatalogueGetRequest.js +0 -2
  75. package/dist/es/models/api/IFederatedCatalogueGetRequest.js.map +0 -1
  76. package/dist/es/models/api/IParticipantGetResponse.js +0 -2
  77. package/dist/es/models/api/IParticipantGetResponse.js.map +0 -1
  78. package/dist/es/models/api/IParticipantListRequest.js +0 -2
  79. package/dist/es/models/api/IParticipantListRequest.js.map +0 -1
  80. package/dist/es/models/api/IParticipantListResponse.js +0 -2
  81. package/dist/es/models/api/IParticipantListResponse.js.map +0 -1
  82. package/dist/es/models/api/IServiceOfferingGetResponse.js +0 -2
  83. package/dist/es/models/api/IServiceOfferingGetResponse.js.map +0 -1
  84. package/dist/es/models/api/IServiceOfferingListRequest.js +0 -2
  85. package/dist/es/models/api/IServiceOfferingListRequest.js.map +0 -1
  86. package/dist/es/models/api/IServiceOfferingListResponse.js +0 -2
  87. package/dist/es/models/api/IServiceOfferingListResponse.js.map +0 -1
  88. package/dist/es/models/data-resource/IDataResourceCredential.js +0 -2
  89. package/dist/es/models/data-resource/IDataResourceCredential.js.map +0 -1
  90. package/dist/es/models/data-resource/IDataResourceEntry.js +0 -2
  91. package/dist/es/models/data-resource/IDataResourceEntry.js.map +0 -1
  92. package/dist/es/models/data-resource/IDataResourceList.js +0 -2
  93. package/dist/es/models/data-resource/IDataResourceList.js.map +0 -1
  94. package/dist/es/models/data-space-connector/IDataSpaceConnector.js +0 -2
  95. package/dist/es/models/data-space-connector/IDataSpaceConnector.js.map +0 -1
  96. package/dist/es/models/data-space-connector/IDataSpaceConnectorCredential.js +0 -2
  97. package/dist/es/models/data-space-connector/IDataSpaceConnectorCredential.js.map +0 -1
  98. package/dist/es/models/data-space-connector/IDataSpaceConnectorEntry.js +0 -2
  99. package/dist/es/models/data-space-connector/IDataSpaceConnectorEntry.js.map +0 -1
  100. package/dist/es/models/data-space-connector/IDataSpaceConnectorList.js +0 -2
  101. package/dist/es/models/data-space-connector/IDataSpaceConnectorList.js.map +0 -1
  102. package/dist/es/models/federatedCatalogueContextInstances.js +0 -23
  103. package/dist/es/models/federatedCatalogueContextInstances.js.map +0 -1
  104. package/dist/es/models/federatedCatalogueContextType.js +0 -2
  105. package/dist/es/models/federatedCatalogueContextType.js.map +0 -1
  106. package/dist/es/models/federatedCatalogueEntryType.js +0 -2
  107. package/dist/es/models/federatedCatalogueEntryType.js.map +0 -1
  108. package/dist/es/models/federatedCatalogueTypes.js +0 -53
  109. package/dist/es/models/federatedCatalogueTypes.js.map +0 -1
  110. package/dist/es/models/participant/IParticipantCredential.js +0 -2
  111. package/dist/es/models/participant/IParticipantCredential.js.map +0 -1
  112. package/dist/es/models/participant/IParticipantEntry.js +0 -2
  113. package/dist/es/models/participant/IParticipantEntry.js.map +0 -1
  114. package/dist/es/models/participant/IParticipantList.js +0 -2
  115. package/dist/es/models/participant/IParticipantList.js.map +0 -1
  116. package/dist/es/models/service-offering/IServiceOfferingCredential.js +0 -2
  117. package/dist/es/models/service-offering/IServiceOfferingCredential.js.map +0 -1
  118. package/dist/es/models/service-offering/IServiceOfferingEntry.js +0 -2
  119. package/dist/es/models/service-offering/IServiceOfferingEntry.js.map +0 -1
  120. package/dist/es/models/service-offering/IServiceOfferingList.js +0 -2
  121. package/dist/es/models/service-offering/IServiceOfferingList.js.map +0 -1
  122. package/dist/es/models/verificationFailureReasons.js +0 -53
  123. package/dist/es/models/verificationFailureReasons.js.map +0 -1
  124. package/dist/es/schemas/DataResourceEntry.json +0 -180
  125. package/dist/es/schemas/DataResourceList.json +0 -34
  126. package/dist/es/schemas/DataSpaceConnectorEntry.json +0 -201
  127. package/dist/es/schemas/DataSpaceConnectorList.json +0 -34
  128. package/dist/es/schemas/ParticipantEntry.json +0 -394
  129. package/dist/es/schemas/ParticipantList.json +0 -34
  130. package/dist/es/schemas/ServiceOfferingEntry.json +0 -176
  131. package/dist/es/schemas/ServiceOfferingList.json +0 -34
  132. package/dist/types/dataTypes/federatedCatalogueDataTypes.d.ts +0 -9
  133. package/dist/types/models/ICatalogueBase.d.ts +0 -25
  134. package/dist/types/models/ICatalogueEntry.d.ts +0 -8
  135. package/dist/types/models/IComplianceCredential.d.ts +0 -37
  136. package/dist/types/models/IComplianceEvidence.d.ts +0 -26
  137. package/dist/types/models/IComplianceVerificationResult.d.ts +0 -19
  138. package/dist/types/models/ICredential.d.ts +0 -21
  139. package/dist/types/models/IVerificationResult.d.ts +0 -13
  140. package/dist/types/models/api/ICatalogueEntryGetRequest.d.ts +0 -15
  141. package/dist/types/models/api/ICompliancePresentationRequest.d.ts +0 -9
  142. package/dist/types/models/api/IDataResourceGetResponse.d.ts +0 -10
  143. package/dist/types/models/api/IDataResourceListRequest.d.ts +0 -27
  144. package/dist/types/models/api/IDataResourceListResponse.d.ts +0 -10
  145. package/dist/types/models/api/IDataSpaceConnectorGetResponse.d.ts +0 -10
  146. package/dist/types/models/api/IDataSpaceConnectorListRequest.d.ts +0 -27
  147. package/dist/types/models/api/IDataSpaceConnectorListResponse.d.ts +0 -10
  148. package/dist/types/models/api/IFederatedCatalogueGetRequest.d.ts +0 -12
  149. package/dist/types/models/api/IParticipantGetResponse.d.ts +0 -10
  150. package/dist/types/models/api/IParticipantListRequest.d.ts +0 -31
  151. package/dist/types/models/api/IParticipantListResponse.d.ts +0 -10
  152. package/dist/types/models/api/IServiceOfferingGetResponse.d.ts +0 -10
  153. package/dist/types/models/api/IServiceOfferingListRequest.d.ts +0 -27
  154. package/dist/types/models/api/IServiceOfferingListResponse.d.ts +0 -10
  155. package/dist/types/models/data-resource/IDataResourceCredential.d.ts +0 -11
  156. package/dist/types/models/data-resource/IDataResourceEntry.d.ts +0 -29
  157. package/dist/types/models/data-resource/IDataResourceList.d.ts +0 -25
  158. package/dist/types/models/data-space-connector/IDataSpaceConnector.d.ts +0 -77
  159. package/dist/types/models/data-space-connector/IDataSpaceConnectorCredential.d.ts +0 -11
  160. package/dist/types/models/data-space-connector/IDataSpaceConnectorEntry.d.ts +0 -18
  161. package/dist/types/models/data-space-connector/IDataSpaceConnectorList.d.ts +0 -25
  162. package/dist/types/models/federatedCatalogueContextInstances.d.ts +0 -14
  163. package/dist/types/models/federatedCatalogueContextType.d.ts +0 -11
  164. package/dist/types/models/federatedCatalogueEntryType.d.ts +0 -7
  165. package/dist/types/models/federatedCatalogueTypes.d.ts +0 -53
  166. package/dist/types/models/participant/IParticipantCredential.d.ts +0 -11
  167. package/dist/types/models/participant/IParticipantEntry.d.ts +0 -12
  168. package/dist/types/models/participant/IParticipantList.d.ts +0 -25
  169. package/dist/types/models/service-offering/IServiceOfferingCredential.d.ts +0 -11
  170. package/dist/types/models/service-offering/IServiceOfferingEntry.d.ts +0 -25
  171. package/dist/types/models/service-offering/IServiceOfferingList.d.ts +0 -25
  172. package/dist/types/models/verificationFailureReasons.d.ts +0 -53
  173. package/docs/reference/classes/FederatedCatalogueContextInstances.md +0 -29
  174. package/docs/reference/classes/FederatedCatalogueDataTypes.md +0 -25
  175. package/docs/reference/interfaces/ICatalogueEntryGetRequest.md +0 -37
  176. package/docs/reference/interfaces/IComplianceCredential.md +0 -103
  177. package/docs/reference/interfaces/IComplianceEvidence.md +0 -45
  178. package/docs/reference/interfaces/ICompliancePresentationRequest.md +0 -11
  179. package/docs/reference/interfaces/IComplianceVerificationResult.md +0 -55
  180. package/docs/reference/interfaces/ICredential.md +0 -51
  181. package/docs/reference/interfaces/IDataResourceCredential.md +0 -43
  182. package/docs/reference/interfaces/IDataResourceEntry.md +0 -131
  183. package/docs/reference/interfaces/IDataResourceGetResponse.md +0 -11
  184. package/docs/reference/interfaces/IDataResourceList.md +0 -35
  185. package/docs/reference/interfaces/IDataResourceListRequest.md +0 -55
  186. package/docs/reference/interfaces/IDataResourceListResponse.md +0 -11
  187. package/docs/reference/interfaces/IDataSpaceConnector.md +0 -130
  188. package/docs/reference/interfaces/IDataSpaceConnectorCredential.md +0 -43
  189. package/docs/reference/interfaces/IDataSpaceConnectorEntry.md +0 -224
  190. package/docs/reference/interfaces/IDataSpaceConnectorGetResponse.md +0 -11
  191. package/docs/reference/interfaces/IDataSpaceConnectorList.md +0 -35
  192. package/docs/reference/interfaces/IDataSpaceConnectorListRequest.md +0 -55
  193. package/docs/reference/interfaces/IDataSpaceConnectorListResponse.md +0 -11
  194. package/docs/reference/interfaces/IFederatedCatalogueGetRequest.md +0 -23
  195. package/docs/reference/interfaces/IParticipantCredential.md +0 -43
  196. package/docs/reference/interfaces/IParticipantEntry.md +0 -83
  197. package/docs/reference/interfaces/IParticipantGetResponse.md +0 -11
  198. package/docs/reference/interfaces/IParticipantList.md +0 -35
  199. package/docs/reference/interfaces/IParticipantListRequest.md +0 -61
  200. package/docs/reference/interfaces/IParticipantListResponse.md +0 -11
  201. package/docs/reference/interfaces/IServiceOfferingCredential.md +0 -43
  202. package/docs/reference/interfaces/IServiceOfferingEntry.md +0 -119
  203. package/docs/reference/interfaces/IServiceOfferingGetResponse.md +0 -11
  204. package/docs/reference/interfaces/IServiceOfferingList.md +0 -35
  205. package/docs/reference/interfaces/IServiceOfferingListRequest.md +0 -55
  206. package/docs/reference/interfaces/IServiceOfferingListResponse.md +0 -11
  207. package/docs/reference/interfaces/IVerificationResult.md +0 -23
  208. package/docs/reference/type-aliases/FederatedCatalogueContextType.md +0 -5
  209. package/docs/reference/type-aliases/FederatedCatalogueEntryType.md +0 -5
  210. package/docs/reference/type-aliases/FederatedCatalogueTypes.md +0 -5
  211. package/docs/reference/type-aliases/ICatalogueEntry.md +0 -5
  212. package/docs/reference/type-aliases/VerificationFailureReasons.md +0 -5
  213. package/docs/reference/variables/FederatedCatalogueTypes.md +0 -73
  214. package/docs/reference/variables/VerificationFailureReasons.md +0 -73
@@ -0,0 +1,10 @@
1
+ // Copyright 2025 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ import { Factory } from "@twin.org/core";
4
+ /**
5
+ * Factory for managing filter plugin registration and retrieval.
6
+ * Follows the TWIN Platform factory pattern used by ComponentFactory and EntityStorageConnectorFactory.
7
+ */
8
+ // eslint-disable-next-line @typescript-eslint/naming-convention
9
+ export const FederatedCatalogueFilterFactory = Factory.createFactory("federated-catalogue-filter");
10
+ //# sourceMappingURL=federatedCatalogueFilterFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federatedCatalogueFilterFactory.js","sourceRoot":"","sources":["../../../src/factories/federatedCatalogueFilterFactory.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC;;;GAGG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAC,aAAa,CACnE,4BAA4B,CAC5B,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { Factory } from \"@twin.org/core\";\nimport type { IFederatedCatalogueFilter } from \"../models/IFederatedCatalogueFilter.js\";\n\n/**\n * Factory for managing filter plugin registration and retrieval.\n * Follows the TWIN Platform factory pattern used by ComponentFactory and EntityStorageConnectorFactory.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FederatedCatalogueFilterFactory = Factory.createFactory<IFederatedCatalogueFilter>(\n\t\"federated-catalogue-filter\"\n);\n"]}
package/dist/es/index.js CHANGED
@@ -1,45 +1,12 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
- export * from "./dataTypes/federatedCatalogueDataTypes.js";
4
- export * from "./models/api/ICatalogueEntryGetRequest.js";
5
- export * from "./models/api/ICompliancePresentationRequest.js";
6
- export * from "./models/api/IDataResourceGetResponse.js";
7
- export * from "./models/api/IDataResourceListRequest.js";
8
- export * from "./models/api/IDataResourceListResponse.js";
9
- export * from "./models/api/IDataSpaceConnectorGetResponse.js";
10
- export * from "./models/api/IDataSpaceConnectorListRequest.js";
11
- export * from "./models/api/IDataSpaceConnectorListResponse.js";
12
- export * from "./models/api/IFederatedCatalogueGetRequest.js";
13
- export * from "./models/api/IParticipantGetResponse.js";
14
- export * from "./models/api/IParticipantListRequest.js";
15
- export * from "./models/api/IParticipantListResponse.js";
16
- export * from "./models/api/IServiceOfferingGetResponse.js";
17
- export * from "./models/api/IServiceOfferingListRequest.js";
18
- export * from "./models/api/IServiceOfferingListResponse.js";
19
- export * from "./models/data-resource/IDataResourceCredential.js";
20
- export * from "./models/data-resource/IDataResourceEntry.js";
21
- export * from "./models/data-resource/IDataResourceList.js";
22
- export * from "./models/data-space-connector/IDataSpaceConnector.js";
23
- export * from "./models/data-space-connector/IDataSpaceConnectorCredential.js";
24
- export * from "./models/data-space-connector/IDataSpaceConnectorEntry.js";
25
- export * from "./models/data-space-connector/IDataSpaceConnectorList.js";
26
- export * from "./models/federatedCatalogueContextInstances.js";
3
+ export * from "./factories/federatedCatalogueFilterFactory.js";
27
4
  export * from "./models/federatedCatalogueContexts.js";
28
- export * from "./models/federatedCatalogueContextType.js";
29
- export * from "./models/federatedCatalogueEntryType.js";
30
- export * from "./models/federatedCatalogueTypes.js";
31
- export * from "./models/ICatalogueEntry.js";
32
- export * from "./models/IComplianceCredential.js";
33
- export * from "./models/IComplianceEvidence.js";
34
- export * from "./models/IComplianceVerificationResult.js";
35
- export * from "./models/ICredential.js";
5
+ export * from "./models/filters/IBaseFilter.js";
36
6
  export * from "./models/IFederatedCatalogueComponent.js";
37
- export * from "./models/IVerificationResult.js";
38
- export * from "./models/participant/IParticipantCredential.js";
39
- export * from "./models/participant/IParticipantEntry.js";
40
- export * from "./models/participant/IParticipantList.js";
41
- export * from "./models/service-offering/IServiceOfferingCredential.js";
42
- export * from "./models/service-offering/IServiceOfferingEntry.js";
43
- export * from "./models/service-offering/IServiceOfferingList.js";
44
- export * from "./models/verificationFailureReasons.js";
7
+ export * from "./models/IFederatedCatalogueFilter.js";
8
+ export * from "./models/api/ICatalogRequestRequest.js";
9
+ export * from "./models/api/ICatalogRequestResponse.js";
10
+ export * from "./models/api/IGetDatasetRequest.js";
11
+ export * from "./models/api/IGetDatasetResponse.js";
45
12
  //# 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,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mDAAmD,CAAC;AAClE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sDAAsD,CAAC;AACrE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,0DAA0D,CAAC;AACzE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yDAAyD,CAAC;AACxE,cAAc,oDAAoD,CAAC;AACnE,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./dataTypes/federatedCatalogueDataTypes.js\";\nexport * from \"./models/api/ICatalogueEntryGetRequest.js\";\nexport * from \"./models/api/ICompliancePresentationRequest.js\";\nexport * from \"./models/api/IDataResourceGetResponse.js\";\nexport * from \"./models/api/IDataResourceListRequest.js\";\nexport * from \"./models/api/IDataResourceListResponse.js\";\nexport * from \"./models/api/IDataSpaceConnectorGetResponse.js\";\nexport * from \"./models/api/IDataSpaceConnectorListRequest.js\";\nexport * from \"./models/api/IDataSpaceConnectorListResponse.js\";\nexport * from \"./models/api/IFederatedCatalogueGetRequest.js\";\nexport * from \"./models/api/IParticipantGetResponse.js\";\nexport * from \"./models/api/IParticipantListRequest.js\";\nexport * from \"./models/api/IParticipantListResponse.js\";\nexport * from \"./models/api/IServiceOfferingGetResponse.js\";\nexport * from \"./models/api/IServiceOfferingListRequest.js\";\nexport * from \"./models/api/IServiceOfferingListResponse.js\";\nexport * from \"./models/data-resource/IDataResourceCredential.js\";\nexport * from \"./models/data-resource/IDataResourceEntry.js\";\nexport * from \"./models/data-resource/IDataResourceList.js\";\nexport * from \"./models/data-space-connector/IDataSpaceConnector.js\";\nexport * from \"./models/data-space-connector/IDataSpaceConnectorCredential.js\";\nexport * from \"./models/data-space-connector/IDataSpaceConnectorEntry.js\";\nexport * from \"./models/data-space-connector/IDataSpaceConnectorList.js\";\nexport * from \"./models/federatedCatalogueContextInstances.js\";\nexport * from \"./models/federatedCatalogueContexts.js\";\nexport * from \"./models/federatedCatalogueContextType.js\";\nexport * from \"./models/federatedCatalogueEntryType.js\";\nexport * from \"./models/federatedCatalogueTypes.js\";\nexport * from \"./models/ICatalogueEntry.js\";\nexport * from \"./models/IComplianceCredential.js\";\nexport * from \"./models/IComplianceEvidence.js\";\nexport * from \"./models/IComplianceVerificationResult.js\";\nexport * from \"./models/ICredential.js\";\nexport * from \"./models/IFederatedCatalogueComponent.js\";\nexport * from \"./models/IVerificationResult.js\";\nexport * from \"./models/participant/IParticipantCredential.js\";\nexport * from \"./models/participant/IParticipantEntry.js\";\nexport * from \"./models/participant/IParticipantList.js\";\nexport * from \"./models/service-offering/IServiceOfferingCredential.js\";\nexport * from \"./models/service-offering/IServiceOfferingEntry.js\";\nexport * from \"./models/service-offering/IServiceOfferingList.js\";\nexport * from \"./models/verificationFailureReasons.js\";\n"]}
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 +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 { IDataResourceList } from \"./data-resource/IDataResourceList.js\";\nimport type { IDataSpaceConnectorList } from \"./data-space-connector/IDataSpaceConnectorList.js\";\nimport type { FederatedCatalogueEntryType } from \"./federatedCatalogueEntryType.js\";\nimport type { ICatalogueEntry } from \"./ICatalogueEntry.js\";\nimport type { IParticipantList } from \"./participant/IParticipantList.js\";\nimport type { IServiceOfferingList } from \"./service-offering/IServiceOfferingList.js\";\n\n/**\n * Interface describing a Federated Catalogue Contract.\n */\nexport interface IFederatedCatalogueComponent extends IComponent {\n\t/**\n\t * Registers a Participant's compliance Credential to the service.\n\t * @param credential The credential as JWT.\n\t * @returns The participant Id (usually a DID).\n\t */\n\tregisterComplianceCredential(credential: string): Promise<string>;\n\n\t/**\n\t * Query the federated catalogue.\n\t * @param participant The identity of the participant.\n\t * @param legalRegistrationNumber The legal registration number.\n\t * @param lrnType The legal registration number type (EORI, VATID, GLEIF, Kenya's PIN, etc.)\n\t * @param cursor The cursor to request the next chunk of entities.\n\t * @param limit Limit the number of entities to return.\n\t * @returns All the entities for the storage matching the conditions,\n\t * and a cursor which can be used to request more entities.\n\t * @throws NotImplementedError if the implementation does not support retrieval.\n\t */\n\tqueryParticipants(\n\t\tparticipant?: string,\n\t\tlegalRegistrationNumber?: string,\n\t\tlrnType?: string,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<IParticipantList>;\n\n\t/**\n\t * Registers a Data Space Connector to the service.\n\t * @param credential The credential as JWT.\n\t * @returns The Data Space Connector Id registered.\n\t */\n\tregisterDataSpaceConnectorCredential(credential: string): Promise<string>;\n\n\t/**\n\t * Query the federated catalogue.\n\t * @param id Data Space Connector Id.\n\t * @param maintainer The identity of the participant maintaining the Data Space Connector.\n\t * @param cursor The cursor to request the next chunk of entities.\n\t * @param limit Limit the number of entities to return.\n\t * @returns All the entities for the storage matching the conditions,\n\t * and a cursor which can be used to request more entities.\n\t * @throws NotImplementedError if the implementation does not support retrieval.\n\t */\n\tqueryDataSpaceConnectors(\n\t\tid?: string,\n\t\tmaintainer?: string,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<IDataSpaceConnectorList>;\n\n\t/**\n\t * Registers a service offering Credential to the service.\n\t * @param credential The credential as JWT.\n\t * @returns The Id of the Service Offerings registered.\n\t */\n\tregisterServiceOfferingCredential(credential: string): Promise<string[]>;\n\n\t/**\n\t * Registers a data resource Credential to the service.\n\t * @param credential The credential as JWT.\n\t * @returns The Id of the Data Resources registered.\n\t */\n\tregisterDataResourceCredential(credential: string): Promise<string[]>;\n\n\t/**\n\t * Query the federated catalogue.\n\t * @param id Service Offering id.\n\t * @param providedBy The identity of the participant providing the Offering.\n\t * @param cursor The cursor to request the next chunk of entities.\n\t * @param limit Limit the number of entities to return.\n\t * @returns All the entities for the storage matching the conditions,\n\t * and a cursor which can be used to request more entities.\n\t * @throws NotImplementedError if the implementation does not support retrieval.\n\t */\n\tqueryServiceOfferings(\n\t\tid?: string,\n\t\tprovidedBy?: string,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<IServiceOfferingList>;\n\n\t/**\n\t * Query the federated catalogue.\n\t * @param id The id of the Data Resource.\n\t * @param producedBy The identity of the participant producing the data behind the data resource.\n\t * @param cursor The cursor to request the next chunk of entities.\n\t * @param limit Limit the number of entities to return.\n\t * @returns All the entities for the storage matching the conditions,\n\t * and a cursor which can be used to request more entities.\n\t * @throws NotImplementedError if the implementation does not support retrieval.\n\t */\n\tqueryDataResources(\n\t\tid?: string,\n\t\tproducedBy?: string,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<IDataResourceList>;\n\n\t/**\n\t * Returns a Federated Catalogue entry.\n\t * @param entryType The type of entry.\n\t * @param entryId The entry's id.\n\t * @returns Catalogue Entry\n\t * @throws NotFoundError if not found.\n\t */\n\tgetEntry(entryType: FederatedCatalogueEntryType, entryId: string): Promise<ICatalogueEntry>;\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 { 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"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFederatedCatalogueFilter.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ICatalogRequestRequest.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ICatalogRequestResponse.js.map
@@ -0,0 +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,4 +1,4 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  export {};
4
- //# sourceMappingURL=ICatalogueBase.js.map
4
+ //# sourceMappingURL=IGetDatasetRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGetDatasetRequest.js","sourceRoot":"","sources":["../../../../src/models/api/IGetDatasetRequest.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * The request parameters for the get dataset method.\n */\nexport interface IGetDatasetRequest {\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=IGetDatasetResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGetDatasetResponse.js","sourceRoot":"","sources":["../../../../src/models/api/IGetDatasetResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataset } from \"@twin.org/standards-w3c-dcat\";\n\n/**\n * The response payload for the get dataset method.\n */\nexport interface IGetDatasetResponse {\n\t/**\n\t * The response payload containing the dataset.\n\t */\n\tbody: IDataset;\n}\n"]}
@@ -1,7 +1,7 @@
1
- // Copyright 2025 IOTA Stiftung.
1
+ // Copyright 2024 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  /**
4
- * The LD context concerning the Federated Catalogue.
4
+ * The contexts of federated catalogue data.
5
5
  */
6
6
  // eslint-disable-next-line @typescript-eslint/naming-convention
7
7
  export const FederatedCatalogueContexts = {
@@ -1 +1 @@
1
- {"version":3,"file":"federatedCatalogueContexts.js","sourceRoot":"","sources":["../../../src/models/federatedCatalogueContexts.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC;;OAEG;IACH,WAAW,EAAE,iDAAiD;CACrD,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * The LD context concerning the Federated Catalogue.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FederatedCatalogueContexts = {\n\t/**\n\t * The context root for the federated catalogue types.\n\t */\n\tContextRoot: \"https://schema.twindev.org/federated-catalogue/\"\n} as const;\n\n/**\n * The Exported types\n */\nexport type FederatedCatalogueContexts =\n\t(typeof FederatedCatalogueContexts)[keyof typeof FederatedCatalogueContexts];\n"]}
1
+ {"version":3,"file":"federatedCatalogueContexts.js","sourceRoot":"","sources":["../../../src/models/federatedCatalogueContexts.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC;;OAEG;IACH,WAAW,EAAE,iDAAiD;CACrD,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * The contexts of federated catalogue data.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FederatedCatalogueContexts = {\n\t/**\n\t * The context root for the federated catalogue types.\n\t */\n\tContextRoot: \"https://schema.twindev.org/federated-catalogue/\"\n} as const;\n\n/**\n * The contexts of federated catalogue data.\n */\nexport type FederatedCatalogueContexts =\n\t(typeof FederatedCatalogueContexts)[keyof typeof FederatedCatalogueContexts];\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IBaseFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBaseFilter.js","sourceRoot":"","sources":["../../../../src/models/filters/IBaseFilter.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IJsonLdNodeObject } from \"@twin.org/data-json-ld\";\n\n/**\n * Base filter interface with pagination support.\n * All filter objects in the federated catalogue extend this base.\n *\n * Per Eclipse Dataspace Protocol constraints, cursor and limit cannot be\n * top-level properties in CatalogRequestMessage. They must be embedded\n * within the filter object using a custom JSON-LD vocabulary.\n *\n * After JSON-LD compaction, properties use direct names (cursor, limit) rather\n * than prefixed names. Each filter implementation should extend this interface\n * to define its own filter-specific properties.\n */\nexport interface IBaseFilter extends IJsonLdNodeObject {\n\t/**\n\t * Filter type discriminator.\n\t * Used to route filter to appropriate filter implementation.\n\t * Example: \"FilterByExample\", \"FilterByPolicy\", etc.\n\t * Required for filter routing.\n\t */\n\t\"@type\": string;\n\n\t/**\n\t * Optional cursor for pagination.\n\t * When provided, returns results starting after this cursor.\n\t * Namespace: https://schema.twindev.org/federated-catalogue/cursor\n\t */\n\tcursor?: string;\n\n\t/**\n\t * Optional limit for number of results.\n\t * Defaults to implementation-specific value if not provided.\n\t * Namespace: https://schema.twindev.org/federated-catalogue/limit\n\t */\n\tlimit?: number;\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { Factory } from "@twin.org/core";
2
+ import type { IFederatedCatalogueFilter } from "../models/IFederatedCatalogueFilter.js";
3
+ /**
4
+ * Factory for managing filter plugin registration and retrieval.
5
+ * Follows the TWIN Platform factory pattern used by ComponentFactory and EntityStorageConnectorFactory.
6
+ */
7
+ export declare const FederatedCatalogueFilterFactory: Factory<IFederatedCatalogueFilter>;
@@ -1,42 +1,9 @@
1
- export * from "./dataTypes/federatedCatalogueDataTypes.js";
2
- export * from "./models/api/ICatalogueEntryGetRequest.js";
3
- export * from "./models/api/ICompliancePresentationRequest.js";
4
- export * from "./models/api/IDataResourceGetResponse.js";
5
- export * from "./models/api/IDataResourceListRequest.js";
6
- export * from "./models/api/IDataResourceListResponse.js";
7
- export * from "./models/api/IDataSpaceConnectorGetResponse.js";
8
- export * from "./models/api/IDataSpaceConnectorListRequest.js";
9
- export * from "./models/api/IDataSpaceConnectorListResponse.js";
10
- export * from "./models/api/IFederatedCatalogueGetRequest.js";
11
- export * from "./models/api/IParticipantGetResponse.js";
12
- export * from "./models/api/IParticipantListRequest.js";
13
- export * from "./models/api/IParticipantListResponse.js";
14
- export * from "./models/api/IServiceOfferingGetResponse.js";
15
- export * from "./models/api/IServiceOfferingListRequest.js";
16
- export * from "./models/api/IServiceOfferingListResponse.js";
17
- export * from "./models/data-resource/IDataResourceCredential.js";
18
- export * from "./models/data-resource/IDataResourceEntry.js";
19
- export * from "./models/data-resource/IDataResourceList.js";
20
- export * from "./models/data-space-connector/IDataSpaceConnector.js";
21
- export * from "./models/data-space-connector/IDataSpaceConnectorCredential.js";
22
- export * from "./models/data-space-connector/IDataSpaceConnectorEntry.js";
23
- export * from "./models/data-space-connector/IDataSpaceConnectorList.js";
24
- export * from "./models/federatedCatalogueContextInstances.js";
1
+ export * from "./factories/federatedCatalogueFilterFactory.js";
25
2
  export * from "./models/federatedCatalogueContexts.js";
26
- export * from "./models/federatedCatalogueContextType.js";
27
- export * from "./models/federatedCatalogueEntryType.js";
28
- export * from "./models/federatedCatalogueTypes.js";
29
- export * from "./models/ICatalogueEntry.js";
30
- export * from "./models/IComplianceCredential.js";
31
- export * from "./models/IComplianceEvidence.js";
32
- export * from "./models/IComplianceVerificationResult.js";
33
- export * from "./models/ICredential.js";
3
+ export * from "./models/filters/IBaseFilter.js";
34
4
  export * from "./models/IFederatedCatalogueComponent.js";
35
- export * from "./models/IVerificationResult.js";
36
- export * from "./models/participant/IParticipantCredential.js";
37
- export * from "./models/participant/IParticipantEntry.js";
38
- export * from "./models/participant/IParticipantList.js";
39
- export * from "./models/service-offering/IServiceOfferingCredential.js";
40
- export * from "./models/service-offering/IServiceOfferingEntry.js";
41
- export * from "./models/service-offering/IServiceOfferingList.js";
42
- export * from "./models/verificationFailureReasons.js";
5
+ export * from "./models/IFederatedCatalogueFilter.js";
6
+ export * from "./models/api/ICatalogRequestRequest.js";
7
+ export * from "./models/api/ICatalogRequestResponse.js";
8
+ export * from "./models/api/IGetDatasetRequest.js";
9
+ export * from "./models/api/IGetDatasetResponse.js";
@@ -1,89 +1,40 @@
1
1
  import type { IComponent } from "@twin.org/core";
2
- import type { IDataResourceList } from "./data-resource/IDataResourceList.js";
3
- import type { IDataSpaceConnectorList } from "./data-space-connector/IDataSpaceConnectorList.js";
4
- import type { FederatedCatalogueEntryType } from "./federatedCatalogueEntryType.js";
5
- import type { ICatalogueEntry } from "./ICatalogueEntry.js";
6
- import type { IParticipantList } from "./participant/IParticipantList.js";
7
- import type { IServiceOfferingList } from "./service-offering/IServiceOfferingList.js";
2
+ import type { ICatalog, IDataset } from "@twin.org/standards-w3c-dcat";
8
3
  /**
9
- * Interface describing a Federated Catalogue Contract.
4
+ * Interface describing a federated catalogue component.
5
+ * Provides Dataspace Protocol-compliant catalog endpoints for dataset registry and query.
10
6
  */
11
7
  export interface IFederatedCatalogueComponent extends IComponent {
12
8
  /**
13
- * Registers a Participant's compliance Credential to the service.
14
- * @param credential The credential as JWT.
15
- * @returns The participant Id (usually a DID).
9
+ * 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.
16
13
  */
17
- registerComplianceCredential(credential: string): Promise<string>;
14
+ get(dataSetId: string): Promise<IDataset>;
18
15
  /**
19
- * Query the federated catalogue.
20
- * @param participant The identity of the participant.
21
- * @param legalRegistrationNumber The legal registration number.
22
- * @param lrnType The legal registration number type (EORI, VATID, GLEIF, Kenya's PIN, etc.)
23
- * @param cursor The cursor to request the next chunk of entities.
24
- * @param limit Limit the number of entities to return.
25
- * @returns All the entities for the storage matching the conditions,
26
- * and a cursor which can be used to request more entities.
27
- * @throws NotImplementedError if the implementation does not support retrieval.
16
+ * Insert or update a dataset in the catalogue.
17
+ * This method is internal and should not be exposed via REST endpoints.
18
+ * @param dataSet The dataset to store.
19
+ * @returns Nothing.
28
20
  */
29
- queryParticipants(participant?: string, legalRegistrationNumber?: string, lrnType?: string, cursor?: string, limit?: number): Promise<IParticipantList>;
21
+ set(dataSet: IDataset): Promise<void>;
30
22
  /**
31
- * Registers a Data Space Connector to the service.
32
- * @param credential The credential as JWT.
33
- * @returns The Data Space Connector Id registered.
23
+ * 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.
34
32
  */
35
- registerDataSpaceConnectorCredential(credential: string): Promise<string>;
33
+ query(filter?: unknown[]): Promise<ICatalog>;
36
34
  /**
37
- * Query the federated catalogue.
38
- * @param id Data Space Connector Id.
39
- * @param maintainer The identity of the participant maintaining the Data Space Connector.
40
- * @param cursor The cursor to request the next chunk of entities.
41
- * @param limit Limit the number of entities to return.
42
- * @returns All the entities for the storage matching the conditions,
43
- * and a cursor which can be used to request more entities.
44
- * @throws NotImplementedError if the implementation does not support retrieval.
35
+ * Remove a dataset from the catalogue by its unique identifier.
36
+ * @param dataSetId The unique identifier of the dataset to remove.
37
+ * @returns Nothing.
45
38
  */
46
- queryDataSpaceConnectors(id?: string, maintainer?: string, cursor?: string, limit?: number): Promise<IDataSpaceConnectorList>;
47
- /**
48
- * Registers a service offering Credential to the service.
49
- * @param credential The credential as JWT.
50
- * @returns The Id of the Service Offerings registered.
51
- */
52
- registerServiceOfferingCredential(credential: string): Promise<string[]>;
53
- /**
54
- * Registers a data resource Credential to the service.
55
- * @param credential The credential as JWT.
56
- * @returns The Id of the Data Resources registered.
57
- */
58
- registerDataResourceCredential(credential: string): Promise<string[]>;
59
- /**
60
- * Query the federated catalogue.
61
- * @param id Service Offering id.
62
- * @param providedBy The identity of the participant providing the Offering.
63
- * @param cursor The cursor to request the next chunk of entities.
64
- * @param limit Limit the number of entities to return.
65
- * @returns All the entities for the storage matching the conditions,
66
- * and a cursor which can be used to request more entities.
67
- * @throws NotImplementedError if the implementation does not support retrieval.
68
- */
69
- queryServiceOfferings(id?: string, providedBy?: string, cursor?: string, limit?: number): Promise<IServiceOfferingList>;
70
- /**
71
- * Query the federated catalogue.
72
- * @param id The id of the Data Resource.
73
- * @param producedBy The identity of the participant producing the data behind the data resource.
74
- * @param cursor The cursor to request the next chunk of entities.
75
- * @param limit Limit the number of entities to return.
76
- * @returns All the entities for the storage matching the conditions,
77
- * and a cursor which can be used to request more entities.
78
- * @throws NotImplementedError if the implementation does not support retrieval.
79
- */
80
- queryDataResources(id?: string, producedBy?: string, cursor?: string, limit?: number): Promise<IDataResourceList>;
81
- /**
82
- * Returns a Federated Catalogue entry.
83
- * @param entryType The type of entry.
84
- * @param entryId The entry's id.
85
- * @returns Catalogue Entry
86
- * @throws NotFoundError if not found.
87
- */
88
- getEntry(entryType: FederatedCatalogueEntryType, entryId: string): Promise<ICatalogueEntry>;
39
+ remove(dataSetId: string): Promise<void>;
89
40
  }
@@ -0,0 +1,29 @@
1
+ import type { IComponent } from "@twin.org/core";
2
+ import type { IDataset } from "@twin.org/standards-w3c-dcat";
3
+ /**
4
+ * Interface describing a filter plugin for the federated catalogue.
5
+ * Filter plugins provide extensible query semantics and indexing strategies.
6
+ * Filters are registered by name in the FilterFactory and do not need to self-identify.
7
+ */
8
+ export interface IFederatedCatalogueFilter extends IComponent {
9
+ /**
10
+ * Execute a filter-specific query over the catalogue.
11
+ * 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 filter The filter criteria (structure depends on the filter implementation).
14
+ * @returns Object containing datasets matching the filter criteria and optional cursor for next page.
15
+ */
16
+ query(filter: unknown): Promise<{
17
+ datasets: IDataset[];
18
+ cursor?: string;
19
+ }>;
20
+ /**
21
+ * Generate filter indexes for a dataset to optimize future queries.
22
+ * Indexes are stored as properties on the dataset entity itself.
23
+ * @param dataSet The dataset to index.
24
+ * @returns Record mapping filter-specific index keys to values.
25
+ */
26
+ createIndex(dataSet: IDataset): Promise<{
27
+ [key: string]: unknown;
28
+ }>;
29
+ }
@@ -0,0 +1,10 @@
1
+ import type { ICatalogRequestMessage } from "@twin.org/standards-dataspace-protocol";
2
+ /**
3
+ * The request parameters for the catalog request method.
4
+ */
5
+ export interface ICatalogRequestRequest {
6
+ /**
7
+ * The request body containing the catalog query.
8
+ */
9
+ body: ICatalogRequestMessage;
10
+ }
@@ -0,0 +1,10 @@
1
+ import type { ICatalog } from "@twin.org/standards-w3c-dcat";
2
+ /**
3
+ * The response payload for the catalog request method.
4
+ */
5
+ export interface ICatalogRequestResponse {
6
+ /**
7
+ * The response payload containing the catalog with matching datasets.
8
+ */
9
+ body: ICatalog;
10
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The request parameters for the get dataset method.
3
+ */
4
+ export interface IGetDatasetRequest {
5
+ /**
6
+ * The path parameters.
7
+ */
8
+ pathParams: {
9
+ /**
10
+ * The unique identifier of the dataset.
11
+ */
12
+ datasetId: string;
13
+ };
14
+ }
@@ -0,0 +1,10 @@
1
+ import type { IDataset } from "@twin.org/standards-w3c-dcat";
2
+ /**
3
+ * The response payload for the get dataset method.
4
+ */
5
+ export interface IGetDatasetResponse {
6
+ /**
7
+ * The response payload containing the dataset.
8
+ */
9
+ body: IDataset;
10
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The LD context concerning the Federated Catalogue.
2
+ * The contexts of federated catalogue data.
3
3
  */
4
4
  export declare const FederatedCatalogueContexts: {
5
5
  /**
@@ -8,6 +8,6 @@ export declare const FederatedCatalogueContexts: {
8
8
  readonly ContextRoot: "https://schema.twindev.org/federated-catalogue/";
9
9
  };
10
10
  /**
11
- * The Exported types
11
+ * The contexts of federated catalogue data.
12
12
  */
13
13
  export type FederatedCatalogueContexts = (typeof FederatedCatalogueContexts)[keyof typeof FederatedCatalogueContexts];
@@ -0,0 +1,34 @@
1
+ import type { IJsonLdNodeObject } from "@twin.org/data-json-ld";
2
+ /**
3
+ * Base filter interface with pagination support.
4
+ * All filter objects in the federated catalogue extend this base.
5
+ *
6
+ * Per Eclipse Dataspace Protocol constraints, cursor and limit cannot be
7
+ * top-level properties in CatalogRequestMessage. They must be embedded
8
+ * within the filter object using a custom JSON-LD vocabulary.
9
+ *
10
+ * After JSON-LD compaction, properties use direct names (cursor, limit) rather
11
+ * than prefixed names. Each filter implementation should extend this interface
12
+ * to define its own filter-specific properties.
13
+ */
14
+ export interface IBaseFilter extends IJsonLdNodeObject {
15
+ /**
16
+ * Filter type discriminator.
17
+ * Used to route filter to appropriate filter implementation.
18
+ * Example: "FilterByExample", "FilterByPolicy", etc.
19
+ * Required for filter routing.
20
+ */
21
+ "@type": string;
22
+ /**
23
+ * Optional cursor for pagination.
24
+ * When provided, returns results starting after this cursor.
25
+ * Namespace: https://schema.twindev.org/federated-catalogue/cursor
26
+ */
27
+ cursor?: string;
28
+ /**
29
+ * Optional limit for number of results.
30
+ * Defaults to implementation-specific value if not provided.
31
+ * Namespace: https://schema.twindev.org/federated-catalogue/limit
32
+ */
33
+ limit?: number;
34
+ }