@twin.org/dataspace-models 0.0.3-next.26 → 0.0.3-next.28

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 (57) hide show
  1. package/dist/es/entities/dataspaceAppDataset.js +76 -0
  2. package/dist/es/entities/dataspaceAppDataset.js.map +1 -0
  3. package/dist/es/index.js +11 -0
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/es/models/api/controlPlane/IAppDatasetCreateRequest.js +2 -0
  6. package/dist/es/models/api/controlPlane/IAppDatasetCreateRequest.js.map +1 -0
  7. package/dist/es/models/api/controlPlane/IAppDatasetCreateResponse.js +2 -0
  8. package/dist/es/models/api/controlPlane/IAppDatasetCreateResponse.js.map +1 -0
  9. package/dist/es/models/api/controlPlane/IAppDatasetDeleteRequest.js +4 -0
  10. package/dist/es/models/api/controlPlane/IAppDatasetDeleteRequest.js.map +1 -0
  11. package/dist/es/models/api/controlPlane/IAppDatasetGetRequest.js +4 -0
  12. package/dist/es/models/api/controlPlane/IAppDatasetGetRequest.js.map +1 -0
  13. package/dist/es/models/api/controlPlane/IAppDatasetGetResponse.js +2 -0
  14. package/dist/es/models/api/controlPlane/IAppDatasetGetResponse.js.map +1 -0
  15. package/dist/es/models/api/controlPlane/IAppDatasetListRequest.js +4 -0
  16. package/dist/es/models/api/controlPlane/IAppDatasetListRequest.js.map +1 -0
  17. package/dist/es/models/api/controlPlane/IAppDatasetListResponse.js +2 -0
  18. package/dist/es/models/api/controlPlane/IAppDatasetListResponse.js.map +1 -0
  19. package/dist/es/models/api/controlPlane/IAppDatasetUpdateRequest.js +2 -0
  20. package/dist/es/models/api/controlPlane/IAppDatasetUpdateRequest.js.map +1 -0
  21. package/dist/es/models/app/IDataspaceApp.js.map +1 -1
  22. package/dist/es/models/controlPlane/IDataspaceAppDataset.js +2 -0
  23. package/dist/es/models/controlPlane/IDataspaceAppDataset.js.map +1 -0
  24. package/dist/es/models/controlPlane/IDataspaceControlPlaneComponent.js.map +1 -1
  25. package/dist/es/models/dataspaceTransferFormat.js +28 -0
  26. package/dist/es/models/dataspaceTransferFormat.js.map +1 -0
  27. package/dist/types/entities/dataspaceAppDataset.d.ts +42 -0
  28. package/dist/types/index.d.ts +11 -0
  29. package/dist/types/models/api/controlPlane/IAppDatasetCreateRequest.d.ts +31 -0
  30. package/dist/types/models/api/controlPlane/IAppDatasetCreateResponse.d.ts +16 -0
  31. package/dist/types/models/api/controlPlane/IAppDatasetDeleteRequest.d.ts +14 -0
  32. package/dist/types/models/api/controlPlane/IAppDatasetGetRequest.d.ts +14 -0
  33. package/dist/types/models/api/controlPlane/IAppDatasetGetResponse.d.ts +10 -0
  34. package/dist/types/models/api/controlPlane/IAppDatasetListRequest.d.ts +18 -0
  35. package/dist/types/models/api/controlPlane/IAppDatasetListResponse.d.ts +19 -0
  36. package/dist/types/models/api/controlPlane/IAppDatasetUpdateRequest.d.ts +29 -0
  37. package/dist/types/models/app/IDataspaceApp.d.ts +9 -3
  38. package/dist/types/models/controlPlane/IDataspaceAppDataset.d.ts +26 -0
  39. package/dist/types/models/controlPlane/IDataspaceControlPlaneComponent.d.ts +42 -1
  40. package/dist/types/models/dataspaceTransferFormat.d.ts +28 -0
  41. package/docs/changelog.md +88 -68
  42. package/docs/reference/classes/DataspaceAppDataset.md +80 -0
  43. package/docs/reference/index.md +12 -0
  44. package/docs/reference/interfaces/IAppDatasetCreateRequest.md +37 -0
  45. package/docs/reference/interfaces/IAppDatasetCreateResponse.md +23 -0
  46. package/docs/reference/interfaces/IAppDatasetDeleteRequest.md +17 -0
  47. package/docs/reference/interfaces/IAppDatasetGetRequest.md +17 -0
  48. package/docs/reference/interfaces/IAppDatasetGetResponse.md +11 -0
  49. package/docs/reference/interfaces/IAppDatasetListRequest.md +23 -0
  50. package/docs/reference/interfaces/IAppDatasetListResponse.md +23 -0
  51. package/docs/reference/interfaces/IAppDatasetUpdateRequest.md +38 -0
  52. package/docs/reference/interfaces/IDataspaceApp.md +22 -4
  53. package/docs/reference/interfaces/IDataspaceAppDataset.md +43 -0
  54. package/docs/reference/interfaces/IDataspaceControlPlaneComponent.md +142 -0
  55. package/docs/reference/type-aliases/DataspaceTransferFormat.md +5 -0
  56. package/docs/reference/variables/DataspaceTransferFormat.md +32 -0
  57. package/package.json +3 -3
@@ -0,0 +1,76 @@
1
+ // Copyright 2025 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ import { entity, property, SortDirection } from "@twin.org/entity";
4
+ /**
5
+ * Tenant-supplied Dataset shape persisted by the Control Plane.
6
+ */
7
+ let DataspaceAppDataset = class DataspaceAppDataset {
8
+ /**
9
+ * The unique identifier for the dataset.
10
+ */
11
+ id;
12
+ /**
13
+ * The identity of the node that owns this entity (required for sync).
14
+ */
15
+ nodeIdentity;
16
+ /**
17
+ * The tenant that owns this dataset, captured from the request context at
18
+ * write time. Optional — single-tenant nodes (no `TWIN_TENANT_ENABLED`)
19
+ * register datasets without a tenant context, in which case federated catalogue stores
20
+ * the dataset with no `tenantId` and URL-baking is skipped.
21
+ */
22
+ tenantId;
23
+ /**
24
+ * The dataspace app that this dataset belongs to. Matches the app's
25
+ * registered name in `DataspaceAppFactory` (typically the app's URI).
26
+ * Used as the join key when dispatching to an app's optional
27
+ * `datasetsHandled` override.
28
+ */
29
+ appId;
30
+ /**
31
+ * The user-controlled JSON-LD dataset payload. Stored as an
32
+ * opaque object and validated/populated at publish time.
33
+ */
34
+ dataset;
35
+ /**
36
+ * Creation timestamp (ISO string format).
37
+ */
38
+ dateCreated;
39
+ /**
40
+ * Last update timestamp (ISO string format).
41
+ */
42
+ dateModified;
43
+ };
44
+ __decorate([
45
+ property({ type: "string", isPrimary: true }),
46
+ __metadata("design:type", String)
47
+ ], DataspaceAppDataset.prototype, "id", void 0);
48
+ __decorate([
49
+ property({ type: "string", isSecondary: true }),
50
+ __metadata("design:type", String)
51
+ ], DataspaceAppDataset.prototype, "nodeIdentity", void 0);
52
+ __decorate([
53
+ property({ type: "string", optional: true }),
54
+ __metadata("design:type", String)
55
+ ], DataspaceAppDataset.prototype, "tenantId", void 0);
56
+ __decorate([
57
+ property({ type: "string" }),
58
+ __metadata("design:type", String)
59
+ ], DataspaceAppDataset.prototype, "appId", void 0);
60
+ __decorate([
61
+ property({ type: "object", format: "json" }),
62
+ __metadata("design:type", Object)
63
+ ], DataspaceAppDataset.prototype, "dataset", void 0);
64
+ __decorate([
65
+ property({ type: "string", format: "date-time", sortDirection: SortDirection.Descending }),
66
+ __metadata("design:type", String)
67
+ ], DataspaceAppDataset.prototype, "dateCreated", void 0);
68
+ __decorate([
69
+ property({ type: "string", format: "date-time" }),
70
+ __metadata("design:type", String)
71
+ ], DataspaceAppDataset.prototype, "dateModified", void 0);
72
+ DataspaceAppDataset = __decorate([
73
+ entity()
74
+ ], DataspaceAppDataset);
75
+ export { DataspaceAppDataset };
76
+ //# sourceMappingURL=dataspaceAppDataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataspaceAppDataset.js","sourceRoot":"","sources":["../../../src/entities/dataspaceAppDataset.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;GAEG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC/B;;OAEG;IAEI,EAAE,CAAU;IAEnB;;OAEG;IAEI,YAAY,CAAU;IAE7B;;;;;OAKG;IAEI,QAAQ,CAAU;IAEzB;;;;;OAKG;IAEI,KAAK,CAAU;IAEtB;;;OAGG;IAEI,OAAO,CAA8B;IAE5C;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,YAAY,CAAU;CAC7B,CAAA;AA5CO;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;+CAC3B;AAMZ;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;yDACnB;AAStB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AASlB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;kDACP;AAOf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;oDACD;AAMrC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC;;wDAC/D;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;yDACrB;AAhDjB,mBAAmB;IAD/B,MAAM,EAAE;GACI,mBAAmB,CAiD/B","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { entity, property, SortDirection } from \"@twin.org/entity\";\n\n/**\n * Tenant-supplied Dataset shape persisted by the Control Plane.\n */\n@entity()\nexport class DataspaceAppDataset {\n\t/**\n\t * The unique identifier for the dataset.\n\t */\n\t@property({ type: \"string\", isPrimary: true })\n\tpublic id!: string;\n\n\t/**\n\t * The identity of the node that owns this entity (required for sync).\n\t */\n\t@property({ type: \"string\", isSecondary: true })\n\tpublic nodeIdentity!: string;\n\n\t/**\n\t * The tenant that owns this dataset, captured from the request context at\n\t * write time. Optional — single-tenant nodes (no `TWIN_TENANT_ENABLED`)\n\t * register datasets without a tenant context, in which case federated catalogue stores\n\t * the dataset with no `tenantId` and URL-baking is skipped.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic tenantId?: string;\n\n\t/**\n\t * The dataspace app that this dataset belongs to. Matches the app's\n\t * registered name in `DataspaceAppFactory` (typically the app's URI).\n\t * Used as the join key when dispatching to an app's optional\n\t * `datasetsHandled` override.\n\t */\n\t@property({ type: \"string\" })\n\tpublic appId!: string;\n\n\t/**\n\t * The user-controlled JSON-LD dataset payload. Stored as an\n\t * opaque object and validated/populated at publish time.\n\t */\n\t@property({ type: \"object\", format: \"json\" })\n\tpublic dataset!: { [key: string]: unknown };\n\n\t/**\n\t * Creation timestamp (ISO string format).\n\t */\n\t@property({ type: \"string\", format: \"date-time\", sortDirection: SortDirection.Descending })\n\tpublic dateCreated!: string;\n\n\t/**\n\t * Last update timestamp (ISO string format).\n\t */\n\t@property({ type: \"string\", format: \"date-time\" })\n\tpublic dateModified!: string;\n}\n"]}
package/dist/es/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  // Entity exports
4
+ export * from "./entities/dataspaceAppDataset.js";
4
5
  export * from "./entities/transferProcess.js";
5
6
  // Control Plane exports
6
7
  export * from "./models/controlPlane/api/ITransferContextResponse.js";
8
+ export * from "./models/controlPlane/IDataspaceAppDataset.js";
7
9
  export * from "./models/controlPlane/IDataspaceControlPlaneComponent.js";
8
10
  export * from "./models/controlPlane/IDataspaceControlPlaneResolverComponent.js";
9
11
  export * from "./models/controlPlane/INegotiationCallback.js";
@@ -13,6 +15,7 @@ export * from "./models/controlPlane/transferProcessRole.js";
13
15
  // Data Plane exports
14
16
  export * from "./models/dataPlane/IDataspaceDataPlaneComponent.js";
15
17
  export * from "./models/dataspaceContexts.js";
18
+ export * from "./models/dataspaceTransferFormat.js";
16
19
  export * from "./models/dataspaceTypes.js";
17
20
  export * from "./models/IDataspaceActivity.js";
18
21
  export * from "./dataTypes/dataspaceDataTypes.js";
@@ -32,6 +35,14 @@ export * from "./models/api/IDataAssetEntitiesResponse.js";
32
35
  export * from "./models/api/IDataAssetGetEntitiesRequest.js";
33
36
  export * from "./models/api/IDataAssetQueryRequest.js";
34
37
  // Control Plane API exports - Transfer Process Protocol
38
+ export * from "./models/api/controlPlane/IAppDatasetCreateRequest.js";
39
+ export * from "./models/api/controlPlane/IAppDatasetCreateResponse.js";
40
+ export * from "./models/api/controlPlane/IAppDatasetDeleteRequest.js";
41
+ export * from "./models/api/controlPlane/IAppDatasetGetRequest.js";
42
+ export * from "./models/api/controlPlane/IAppDatasetGetResponse.js";
43
+ export * from "./models/api/controlPlane/IAppDatasetListRequest.js";
44
+ export * from "./models/api/controlPlane/IAppDatasetListResponse.js";
45
+ export * from "./models/api/controlPlane/IAppDatasetUpdateRequest.js";
35
46
  export * from "./models/api/controlPlane/ICompleteTransferRequest.js";
36
47
  export * from "./models/api/controlPlane/ICompleteTransferResponse.js";
37
48
  export * from "./models/api/controlPlane/IGetTransferProcessRequest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC,iBAAiB;AACjB,cAAc,+BAA+B,CAAC;AAE9C,wBAAwB;AACxB,cAAc,uDAAuD,CAAC;AACtE,cAAc,0DAA0D,CAAC;AACzE,cAAc,kEAAkE,CAAC;AACjF,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAE7D,qBAAqB;AACrB,cAAc,oDAAoD,CAAC;AAEnE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAE/C,cAAc,mCAAmC,CAAC;AAElD,cAAc;AACd,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AAExD,gBAAgB;AAChB,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AAEvD,wDAAwD;AACxD,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AAExE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n// Entity exports\nexport * from \"./entities/transferProcess.js\";\n\n// Control Plane exports\nexport * from \"./models/controlPlane/api/ITransferContextResponse.js\";\nexport * from \"./models/controlPlane/IDataspaceControlPlaneComponent.js\";\nexport * from \"./models/controlPlane/IDataspaceControlPlaneResolverComponent.js\";\nexport * from \"./models/controlPlane/INegotiationCallback.js\";\nexport * from \"./models/controlPlane/ITransferContext.js\";\nexport * from \"./models/controlPlane/ITransferProcess.js\";\nexport * from \"./models/controlPlane/transferProcessRole.js\";\n\n// Data Plane exports\nexport * from \"./models/dataPlane/IDataspaceDataPlaneComponent.js\";\n\nexport * from \"./models/dataspaceContexts.js\";\nexport * from \"./models/dataspaceTypes.js\";\nexport * from \"./models/IDataspaceActivity.js\";\n\nexport * from \"./dataTypes/dataspaceDataTypes.js\";\n\n// App exports\nexport * from \"./factories/dataspaceAppFactory.js\";\nexport * from \"./models/app/IDataspaceApp.js\";\nexport * from \"./models/app/IProcessingGroupOptions.js\";\n\n// Other exports\nexport * from \"./models/activityProcessingStatus.js\";\nexport * from \"./models/api/IActivityLogEntryGetRequest.js\";\nexport * from \"./models/api/IActivityLogEntryGetResponse.js\";\nexport * from \"./models/api/IActivityLogStatusNotificationPayload.js\";\nexport * from \"./models/api/IActivityLogStatusRequest.js\";\nexport * from \"./models/api/IActivityStreamNotifyRequest.js\";\nexport * from \"./models/api/IActivityStreamNotifyResponse.js\";\nexport * from \"./models/api/IDataAssetEntitiesResponse.js\";\nexport * from \"./models/api/IDataAssetGetEntitiesRequest.js\";\nexport * from \"./models/api/IDataAssetQueryRequest.js\";\n\n// Control Plane API exports - Transfer Process Protocol\nexport * from \"./models/api/controlPlane/ICompleteTransferRequest.js\";\nexport * from \"./models/api/controlPlane/ICompleteTransferResponse.js\";\nexport * from \"./models/api/controlPlane/IGetTransferProcessRequest.js\";\nexport * from \"./models/api/controlPlane/IGetTransferProcessResponse.js\";\nexport * from \"./models/api/controlPlane/IRequestTransferRequest.js\";\nexport * from \"./models/api/controlPlane/IRequestTransferResponse.js\";\nexport * from \"./models/api/controlPlane/IStartTransferRequest.js\";\nexport * from \"./models/api/controlPlane/IStartTransferResponse.js\";\nexport * from \"./models/api/controlPlane/ISuspendTransferRequest.js\";\nexport * from \"./models/api/controlPlane/ISuspendTransferResponse.js\";\nexport * from \"./models/api/controlPlane/ITerminateTransferRequest.js\";\nexport * from \"./models/api/controlPlane/ITerminateTransferResponse.js\";\n\nexport * from \"./models/activityTaskStatus.js\";\nexport * from \"./models/app/dataRequestType.js\";\nexport * from \"./models/app/IActivityQuery.js\";\nexport * from \"./models/app/IDataAssetEntitiesRequest.js\";\nexport * from \"./models/app/IDataAssetQuery.js\";\nexport * from \"./models/app/IDataRequest.js\";\nexport * from \"./models/app/IQueryDataAssetRequest.js\";\nexport * from \"./models/IActivityLogDetails.js\";\nexport * from \"./models/IActivityLogEntry.js\";\nexport * from \"./models/IActivityLogStatusNotification.js\";\nexport * from \"./models/IActivityTask.js\";\nexport * from \"./models/IActivityTaskEntry.js\";\nexport * from \"./models/IDataAssetItemList.js\";\nexport * from \"./models/IDataAssetItemListResult.js\";\nexport * from \"./models/IEntitySet.js\";\nexport * from \"./models/IExecutionPayload.js\";\nexport * from \"./models/IFilteringQuery.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC,iBAAiB;AACjB,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAE9C,wBAAwB;AACxB,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0DAA0D,CAAC;AACzE,cAAc,kEAAkE,CAAC;AACjF,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAE7D,qBAAqB;AACrB,cAAc,oDAAoD,CAAC;AAEnE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAE/C,cAAc,mCAAmC,CAAC;AAElD,cAAc;AACd,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AAExD,gBAAgB;AAChB,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AAEvD,wDAAwD;AACxD,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,yDAAyD,CAAC;AAExE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n// Entity exports\nexport * from \"./entities/dataspaceAppDataset.js\";\nexport * from \"./entities/transferProcess.js\";\n\n// Control Plane exports\nexport * from \"./models/controlPlane/api/ITransferContextResponse.js\";\nexport * from \"./models/controlPlane/IDataspaceAppDataset.js\";\nexport * from \"./models/controlPlane/IDataspaceControlPlaneComponent.js\";\nexport * from \"./models/controlPlane/IDataspaceControlPlaneResolverComponent.js\";\nexport * from \"./models/controlPlane/INegotiationCallback.js\";\nexport * from \"./models/controlPlane/ITransferContext.js\";\nexport * from \"./models/controlPlane/ITransferProcess.js\";\nexport * from \"./models/controlPlane/transferProcessRole.js\";\n\n// Data Plane exports\nexport * from \"./models/dataPlane/IDataspaceDataPlaneComponent.js\";\n\nexport * from \"./models/dataspaceContexts.js\";\nexport * from \"./models/dataspaceTransferFormat.js\";\nexport * from \"./models/dataspaceTypes.js\";\nexport * from \"./models/IDataspaceActivity.js\";\n\nexport * from \"./dataTypes/dataspaceDataTypes.js\";\n\n// App exports\nexport * from \"./factories/dataspaceAppFactory.js\";\nexport * from \"./models/app/IDataspaceApp.js\";\nexport * from \"./models/app/IProcessingGroupOptions.js\";\n\n// Other exports\nexport * from \"./models/activityProcessingStatus.js\";\nexport * from \"./models/api/IActivityLogEntryGetRequest.js\";\nexport * from \"./models/api/IActivityLogEntryGetResponse.js\";\nexport * from \"./models/api/IActivityLogStatusNotificationPayload.js\";\nexport * from \"./models/api/IActivityLogStatusRequest.js\";\nexport * from \"./models/api/IActivityStreamNotifyRequest.js\";\nexport * from \"./models/api/IActivityStreamNotifyResponse.js\";\nexport * from \"./models/api/IDataAssetEntitiesResponse.js\";\nexport * from \"./models/api/IDataAssetGetEntitiesRequest.js\";\nexport * from \"./models/api/IDataAssetQueryRequest.js\";\n\n// Control Plane API exports - Transfer Process Protocol\nexport * from \"./models/api/controlPlane/IAppDatasetCreateRequest.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetCreateResponse.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetDeleteRequest.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetGetRequest.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetGetResponse.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetListRequest.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetListResponse.js\";\nexport * from \"./models/api/controlPlane/IAppDatasetUpdateRequest.js\";\nexport * from \"./models/api/controlPlane/ICompleteTransferRequest.js\";\nexport * from \"./models/api/controlPlane/ICompleteTransferResponse.js\";\nexport * from \"./models/api/controlPlane/IGetTransferProcessRequest.js\";\nexport * from \"./models/api/controlPlane/IGetTransferProcessResponse.js\";\nexport * from \"./models/api/controlPlane/IRequestTransferRequest.js\";\nexport * from \"./models/api/controlPlane/IRequestTransferResponse.js\";\nexport * from \"./models/api/controlPlane/IStartTransferRequest.js\";\nexport * from \"./models/api/controlPlane/IStartTransferResponse.js\";\nexport * from \"./models/api/controlPlane/ISuspendTransferRequest.js\";\nexport * from \"./models/api/controlPlane/ISuspendTransferResponse.js\";\nexport * from \"./models/api/controlPlane/ITerminateTransferRequest.js\";\nexport * from \"./models/api/controlPlane/ITerminateTransferResponse.js\";\n\nexport * from \"./models/activityTaskStatus.js\";\nexport * from \"./models/app/dataRequestType.js\";\nexport * from \"./models/app/IActivityQuery.js\";\nexport * from \"./models/app/IDataAssetEntitiesRequest.js\";\nexport * from \"./models/app/IDataAssetQuery.js\";\nexport * from \"./models/app/IDataRequest.js\";\nexport * from \"./models/app/IQueryDataAssetRequest.js\";\nexport * from \"./models/IActivityLogDetails.js\";\nexport * from \"./models/IActivityLogEntry.js\";\nexport * from \"./models/IActivityLogStatusNotification.js\";\nexport * from \"./models/IActivityTask.js\";\nexport * from \"./models/IActivityTaskEntry.js\";\nexport * from \"./models/IDataAssetItemList.js\";\nexport * from \"./models/IDataAssetItemListResult.js\";\nexport * from \"./models/IEntitySet.js\";\nexport * from \"./models/IExecutionPayload.js\";\nexport * from \"./models/IFilteringQuery.js\";\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAppDatasetCreateRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetCreateRequest.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetCreateRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolDataset } from \"@twin.org/standards-dataspace-protocol\";\n\n/**\n * API request to register an app dataset.\n *\n * The owning `tenantId` is captured automatically from the request's tenant\n * context — callers do not supply it.\n */\nexport interface IAppDatasetCreateRequest {\n\t/**\n\t * The body of the request.\n\t */\n\tbody: {\n\t\t/**\n\t\t * Optional explicit id for the stored dataset record. If omitted, the\n\t\t * Control Plane derives the id from `dataset[\"@id\"]` if present, or\n\t\t * generates a UUID otherwise. The resolved id is returned via the\n\t\t * `Location` response header.\n\t\t */\n\t\tid?: string;\n\n\t\t/**\n\t\t * The dataspace app this dataset belongs to. Matches the app's\n\t\t * registered name in `DataspaceAppFactory` (typically the app's URI).\n\t\t */\n\t\tappId: string;\n\n\t\t/**\n\t\t * The dataset payload. System-stamped fields like `dcterms:publisher`\n\t\t * may be omitted — the Control Plane fills them in at publish time.\n\t\t */\n\t\tdataset: IDataspaceProtocolDataset;\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAppDatasetCreateResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetCreateResponse.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetCreateResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { HeaderTypes, HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * API response from registering an app dataset.\n */\nexport interface IAppDatasetCreateResponse {\n\t/**\n\t * The headers of the response, including the location of the new app dataset.\n\t */\n\theaders: {\n\t\t[HeaderTypes.Location]: string;\n\t};\n\n\t/**\n\t * HTTP status code (201 on success).\n\t */\n\tstatusCode: HttpStatusCode;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ // Copyright 2025 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ export {};
4
+ //# sourceMappingURL=IAppDatasetDeleteRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetDeleteRequest.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetDeleteRequest.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * API request to delete a stored app dataset record.\n */\nexport interface IAppDatasetDeleteRequest {\n\t/**\n\t * Path parameters containing the stored dataset id.\n\t */\n\tpathParams: {\n\t\t/**\n\t\t * The stored dataset id.\n\t\t */\n\t\tid: string;\n\t};\n}\n"]}
@@ -0,0 +1,4 @@
1
+ // Copyright 2025 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ export {};
4
+ //# sourceMappingURL=IAppDatasetGetRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetGetRequest.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetGetRequest.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * API request to fetch a single app dataset record.\n */\nexport interface IAppDatasetGetRequest {\n\t/**\n\t * Path parameters containing the stored app dataset id.\n\t */\n\tpathParams: {\n\t\t/**\n\t\t * The stored app dataset id (entity primary key).\n\t\t */\n\t\tid: string;\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAppDatasetGetResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetGetResponse.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetGetResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceAppDataset } from \"../../controlPlane/IDataspaceAppDataset.js\";\n\n/**\n * API response for a single stored app dataset record.\n */\nexport interface IAppDatasetGetResponse {\n\t/**\n\t * The body of the response.\n\t */\n\tbody: IDataspaceAppDataset;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ // Copyright 2025 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ export {};
4
+ //# sourceMappingURL=IAppDatasetListRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetListRequest.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetListRequest.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * API request to list the app datasets owned by the calling tenant.\n */\nexport interface IAppDatasetListRequest {\n\t/**\n\t * Query parameters for paging. Always strings on the wire.\n\t */\n\tquery?: {\n\t\t/**\n\t\t * Cursor returned from a previous list call to fetch the next page.\n\t\t */\n\t\tcursor?: string;\n\n\t\t/**\n\t\t * Maximum number of entries to return (string-encoded; parsed on the server).\n\t\t */\n\t\tlimit?: string;\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAppDatasetListResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetListResponse.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetListResponse.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceAppDataset } from \"../../controlPlane/IDataspaceAppDataset.js\";\n\n/**\n * API response listing the app datasets owned by the calling tenant.\n */\nexport interface IAppDatasetListResponse {\n\t/**\n\t * The body of the response.\n\t */\n\tbody: {\n\t\t/**\n\t\t * The stored datasets.\n\t\t */\n\t\tentities: IDataspaceAppDataset[];\n\n\t\t/**\n\t\t * Cursor to fetch the next page if more entries exist.\n\t\t */\n\t\tcursor?: string;\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAppDatasetUpdateRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppDatasetUpdateRequest.js","sourceRoot":"","sources":["../../../../../src/models/api/controlPlane/IAppDatasetUpdateRequest.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolDataset } from \"@twin.org/standards-dataspace-protocol\";\n\n/**\n * API request to update an existing app dataset record.\n */\nexport interface IAppDatasetUpdateRequest {\n\t/**\n\t * Path parameters containing the stored app dataset id.\n\t */\n\tpathParams: {\n\t\t/**\n\t\t * The stored app dataset id.\n\t\t */\n\t\tid: string;\n\t};\n\n\t/**\n\t * The body of the request.\n\t */\n\tbody: {\n\t\t/**\n\t\t * The dataspace app this dataset belongs to. May change appId on\n\t\t * update if the tenant wants to retarget the dataset.\n\t\t */\n\t\tappId: string;\n\n\t\t/**\n\t\t * The dataset payload.\n\t\t */\n\t\tdataset: IDataspaceProtocolDataset;\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IDataspaceApp.js","sourceRoot":"","sources":["../../../../src/models/app/IDataspaceApp.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IJsonLdDocument } from \"@twin.org/data-json-ld\";\nimport type { IDataspaceProtocolDataset } from \"@twin.org/standards-dataspace-protocol\";\nimport type { IActivityQuery } from \"./IActivityQuery.js\";\nimport type { IDataRequest } from \"./IDataRequest.js\";\nimport type { IDataspaceActivity } from \"../IDataspaceActivity.js\";\nimport type { IProcessingGroupOptions } from \"./IProcessingGroupOptions.js\";\n\n/**\n * Interface describes a Dataspace App.\n */\nexport interface IDataspaceApp extends IComponent {\n\t/**\n\t * The settings for the processing groups for tasks.\n\t * @returns The options for each process group.\n\t */\n\tprocessingGroups?(): { [id: string]: IProcessingGroupOptions };\n\n\t/**\n\t * The activities handled by the App.\n\t * @returns A query that describes the set of activities handled by the App.\n\t */\n\tactivitiesHandled(): IActivityQuery[];\n\n\t/**\n\t * The datasets handled by the App.\n\t * @returns The Dataspace Protocol compliant datasets handled by the App.\n\t */\n\tdatasetsHandled(): Promise<IDataspaceProtocolDataset[]>;\n\n\t/**\n\t * The types of queries supported.\n\t * @returns The types of queries supported by the Dataspace App to retrieve data.\n\t */\n\tsupportedQueryTypes(): string[];\n\n\t/**\n\t * Handles an Activity and report about results through the Dataspace Data Plane Callback\n\t * @param activity The Activity to be handled\n\t * @returns The result of executing the Activity.\n\t */\n\thandleActivity?<T>(activity: IDataspaceActivity): Promise<T>;\n\n\t/**\n\t * Handles a Data Request.\n\t * @param dataRequest The data request.\n\t * @param cursor Cursor that points to the next item in the result set.\n\t * @param limit Maximum number of entries retrieved or to be retrieved.\n\t * @returns Data as JSON-Ld.\n\t */\n\thandleDataRequest?(\n\t\tdataRequest: IDataRequest,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<{ data: IJsonLdDocument; cursor?: string }>;\n}\n"]}
1
+ {"version":3,"file":"IDataspaceApp.js","sourceRoot":"","sources":["../../../../src/models/app/IDataspaceApp.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IJsonLdDocument } from \"@twin.org/data-json-ld\";\nimport type { IDataspaceProtocolDataset } from \"@twin.org/standards-dataspace-protocol\";\nimport type { IActivityQuery } from \"./IActivityQuery.js\";\nimport type { IDataRequest } from \"./IDataRequest.js\";\nimport type { IDataspaceActivity } from \"../IDataspaceActivity.js\";\nimport type { IProcessingGroupOptions } from \"./IProcessingGroupOptions.js\";\n\n/**\n * Interface describes a Dataspace App.\n */\nexport interface IDataspaceApp extends IComponent {\n\t/**\n\t * The settings for the processing groups for tasks.\n\t * @returns The options for each process group.\n\t */\n\tprocessingGroups?(): { [id: string]: IProcessingGroupOptions };\n\n\t/**\n\t * The activities handled by the App.\n\t * @returns A query that describes the set of activities handled by the App.\n\t */\n\tactivitiesHandled(): IActivityQuery[];\n\n\t/**\n\t * Optional override called by the Control Plane when publishing a stored dataset for this app.\n\t * The Control Plane always calls `populateDefaults` (e.g. `dcterms:publisher`)\n\t * on every dataset returned here, so apps don't need to populate publisher themselves.\n\t * @param payload The user-stored dataset payload.\n\t * @param tenantId The owning tenant for this dataset. Empty string on\n\t * single-tenant nodes (no `TWIN_TENANT_ENABLED`).\n\t * @returns One or more datasets to publish to the catalogue. System-stamped\n\t * fields like `dcterms:publisher` may be omitted — the Control Plane fills them in.\n\t */\n\tdatasetsHandled?(\n\t\tpayload: IDataspaceProtocolDataset,\n\t\ttenantId: string\n\t): Promise<IDataspaceProtocolDataset[]>;\n\n\t/**\n\t * The types of queries supported.\n\t * @returns The types of queries supported by the Dataspace App to retrieve data.\n\t */\n\tsupportedQueryTypes(): string[];\n\n\t/**\n\t * Handles an Activity and report about results through the Dataspace Data Plane Callback\n\t * @param activity The Activity to be handled\n\t * @returns The result of executing the Activity.\n\t */\n\thandleActivity?<T>(activity: IDataspaceActivity): Promise<T>;\n\n\t/**\n\t * Handles a Data Request.\n\t * @param dataRequest The data request.\n\t * @param cursor Cursor that points to the next item in the result set.\n\t * @param limit Maximum number of entries retrieved or to be retrieved.\n\t * @returns Data as JSON-Ld.\n\t */\n\thandleDataRequest?(\n\t\tdataRequest: IDataRequest,\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<{ data: IJsonLdDocument; cursor?: string }>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IDataspaceAppDataset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDataspaceAppDataset.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/IDataspaceAppDataset.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDataspaceProtocolDataset } from \"@twin.org/standards-dataspace-protocol\";\n\n/**\n * Stored dataset record returned by the Control Plane's dataset CRUD surface.\n */\nexport interface IDataspaceAppDataset {\n\t/**\n\t * The stored dataset id (matches the dataset's JSON-LD `@id`).\n\t */\n\tid: string;\n\n\t/**\n\t * The dataspace app this dataset belongs to.\n\t */\n\tappId: string;\n\n\t/**\n\t * The dataset payload.\n\t */\n\tdataset: IDataspaceProtocolDataset;\n\n\t/**\n\t * Creation timestamp (ISO string).\n\t */\n\tdateCreated: string;\n\n\t/**\n\t * Last-modified timestamp (ISO string).\n\t */\n\tdateModified: string;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IDataspaceControlPlaneComponent.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/IDataspaceControlPlaneComponent.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\tIDataspaceProtocolContractNegotiation,\n\tIDataspaceProtocolContractNegotiationError,\n\tIDataspaceProtocolTransferCompletionMessage,\n\tIDataspaceProtocolTransferError,\n\tIDataspaceProtocolTransferProcess,\n\tIDataspaceProtocolTransferRequestMessage,\n\tIDataspaceProtocolTransferStartMessage,\n\tIDataspaceProtocolTransferSuspensionMessage,\n\tIDataspaceProtocolTransferTerminationMessage\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { INegotiationCallback } from \"./INegotiationCallback.js\";\n\n/**\n * Dataspace Control Plane Component interface.\n * Implements Eclipse Dataspace Protocol (DSP) specifications:\n * - Contract Negotiation Protocol\n * - Transfer Process Protocol\n *\n * This component acts as the Control Plane for contract negotiation and\n * data transfers between nodes in a dataspace.\n *\n * DSP 2025-1 Specification: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/\n */\nexport interface IDataspaceControlPlaneComponent extends IComponent {\n\t// ============================================================================\n\t// CONTRACT NEGOTIATION PROTOCOL (DSP)\n\t// Methods for negotiating agreements before transfers\n\t// ============================================================================\n\n\t/**\n\t * Register a callback to receive negotiation state change notifications.\n\t * Upstream modules (e.g. supply-chain) register their callback here\n\t * to be notified when negotiations complete, fail, or change state.\n\t * @param key A unique key identifying this callback registration.\n\t * @param callback The callback interface to register.\n\t */\n\tregisterNegotiationCallback(key: string, callback: INegotiationCallback): void;\n\n\t/**\n\t * Unregister a previously registered negotiation callback.\n\t * @param key The key used when registering the callback.\n\t */\n\tunregisterNegotiationCallback(key: string): void;\n\n\t/**\n\t * Negotiate a contract agreement with a provider.\n\t * Implements DSP Contract Negotiation Protocol.\n\t *\n\t * Returns immediately with a negotiationId. The caller is notified\n\t * via the registered INegotiationCallback when the negotiation completes.\n\t * The negotiation follows DSP state machine: REQUESTED → OFFERED → AGREED → VERIFIED → FINALIZED.\n\t *\n\t * This method has NO REST client implementation — it is only accessible via ComponentFactory.get().\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiation-protocol\n\t *\n\t * @param datasetId The dataset ID from the provider's catalog.\n\t * @param offerId The offer ID from the provider's catalog.\n\t * @param providerEndpoint The provider's contract negotiation endpoint URL.\n\t * @param publicOrigin The public origin URL of this control plane (for callbacks).\n\t * @param trustPayload Trust payload for authentication (JWT or Verifiable Credential).\n\t * @returns The negotiation ID for tracking. Use registered callback for completion.\n\t */\n\tnegotiateAgreement(\n\t\tdatasetId: string,\n\t\tofferId: string,\n\t\tproviderEndpoint: string,\n\t\tpublicOrigin: string,\n\t\ttrustPayload: unknown\n\t): Promise<{ negotiationId: string }>;\n\n\t/**\n\t * Get the current state of a contract negotiation.\n\t * Implements DSP Contract Negotiation Protocol.\n\t *\n\t * Queries the current state of an ongoing or completed negotiation.\n\t * Use this to monitor negotiation progress.\n\t * Returns the DSP-compliant negotiation state or error.\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiation-protocol\n\t *\n\t * @param negotiationId The unique identifier of the negotiation.\n\t * @param trustPayload Trust payload for authentication.\n\t * @returns DSP ContractNegotiation with current state, or error.\n\t */\n\tgetNegotiation(\n\t\tnegotiationId: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolContractNegotiation | IDataspaceProtocolContractNegotiationError>;\n\n\t/**\n\t * Get negotiation history.\n\t * Queries past contract negotiations for audit trails and debugging.\n\t *\n\t * Returns a list of past negotiations with their states and metadata.\n\t * Supports optional filtering by state and pagination via cursor.\n\t *\n\t * @param state Optional filter by negotiation state (e.g., \"FINALIZED\", \"TERMINATED\").\n\t * @param cursor Optional pagination cursor for fetching next page.\n\t * @param trustPayload Trust payload for authentication.\n\t * @returns List of negotiation history entries with pagination cursor.\n\t */\n\tgetNegotiationHistory(\n\t\tstate: string | undefined,\n\t\tcursor: string | undefined,\n\t\ttrustPayload: unknown\n\t): Promise<{\n\t\tnegotiations: {\n\t\t\tnegotiation:\n\t\t\t\t| IDataspaceProtocolContractNegotiation\n\t\t\t\t| IDataspaceProtocolContractNegotiationError;\n\t\t\tcreatedAt: string;\n\t\t\tofferId?: string;\n\t\t\tagreementId?: string;\n\t\t}[];\n\t\tcursor?: string;\n\t\tcount: number;\n\t}>;\n\n\t// ============================================================================\n\t// TRANSFER PROCESS PROTOCOL (DSP)\n\t// Methods for managing data transfers after agreements are established\n\t// ============================================================================\n\n\t// ----------------------------------------------------------------------------\n\t// CONSUMER SIDE OPERATIONS\n\t// Methods called by the Data Consumer to initiate transfers\n\t// ----------------------------------------------------------------------------\n\n\t/**\n\t * Request a Transfer Process.\n\t * Creates a new Transfer Process in REQUESTED state.\n\t *\n\t * Role Performed: Provider\n\t * Called by: Consumer when it wants to request a new Transfer Process\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-request-message\n\t *\n\t * @param request Transfer request message (DSP compliant) containing agreementId,\n\t * consumerPid, callbackAddress, and format.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * The consumer must prove their identity by providing a valid trust payload.\n\t * @returns Transfer Process (DSP compliant) with state REQUESTED, including\n\t * both consumerPid and providerPid, or TransferError if the operation fails.\n\t */\n\trequestTransfer(\n\t\trequest: IDataspaceProtocolTransferRequestMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t// ============================================================================\n\t// PROVIDER SIDE OPERATIONS\n\t// Methods called by the Data Provider to respond to transfer requests\n\t// ============================================================================\n\n\t/**\n\t * Start a Transfer Process.\n\t * Transitions Transfer Process from REQUESTED to STARTED state, or resumes from SUSPENDED state.\n\t *\n\t * Role Performed: Provider / Consumer\n\t * Called by: Provider when a Transfer Process starts, or Consumer to attempt to start a Transfer Process after it has been suspended\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-start-message\n\t *\n\t * @param message Transfer start message (DSP compliant).\n\t * @param publicOrigin The public origin URL of this service (used to construct data plane endpoint for PULL transfers).\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Start Message (DSP compliant) with dataAddress for PULL transfers, or TransferError if the operation fails.\n\t */\n\tstartTransfer(\n\t\tmessage: IDataspaceProtocolTransferStartMessage,\n\t\tpublicOrigin: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferStartMessage | IDataspaceProtocolTransferError>;\n\n\t// ============================================================================\n\t// SHARED STATE MANAGEMENT OPERATIONS\n\t// Methods that can be called by either Consumer or Provider\n\t// ============================================================================\n\n\t/**\n\t * Complete a Transfer Process.\n\t * Transitions Transfer Process to COMPLETED state.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when a Transfer process is completed on their side\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-completion-message\n\t *\n\t * @param message Transfer completion message (DSP compliant).\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with state COMPLETED, or TransferError if the operation fails.\n\t */\n\tcompleteTransfer(\n\t\tmessage: IDataspaceProtocolTransferCompletionMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Suspend a Transfer Process.\n\t * Transitions Transfer Process to SUSPENDED state.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when a Transfer process needs to be temporarily suspended on their side\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-suspension-message\n\t *\n\t * @param message Transfer suspension message (DSP compliant) with optional reason.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with state SUSPENDED, or TransferError if the operation fails.\n\t */\n\tsuspendTransfer(\n\t\tmessage: IDataspaceProtocolTransferSuspensionMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Terminate a Transfer Process.\n\t * Transitions Transfer Process to TERMINATED state.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when a Transfer process needs to be terminated on their side (e.g., due to error)\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-termination-message\n\t *\n\t * @param message Transfer termination message (DSP compliant) with optional reason.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with state TERMINATED, or TransferError if the operation fails.\n\t */\n\tterminateTransfer(\n\t\tmessage: IDataspaceProtocolTransferTerminationMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Get Transfer Process State.\n\t * Query the current state of a Transfer Process.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when they need to check the status of a Transfer process on their side\n\t *\n\t * Supports role-agnostic lookup using either consumerPid or providerPid.\n\t * The service will automatically detect which role the caller is acting as\n\t * (Consumer or Provider) based on the PID provided.\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#ack-transfer-process\n\t *\n\t * @param pid The Process ID (consumerPid or providerPid) used to identify the transfer.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with current state, or TransferError if the operation fails.\n\t */\n\tgetTransferProcess(\n\t\tpid: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n}\n"]}
1
+ {"version":3,"file":"IDataspaceControlPlaneComponent.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/IDataspaceControlPlaneComponent.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\tIDataspaceProtocolContractNegotiation,\n\tIDataspaceProtocolContractNegotiationError,\n\tIDataspaceProtocolDataset,\n\tIDataspaceProtocolTransferCompletionMessage,\n\tIDataspaceProtocolTransferError,\n\tIDataspaceProtocolTransferProcess,\n\tIDataspaceProtocolTransferRequestMessage,\n\tIDataspaceProtocolTransferStartMessage,\n\tIDataspaceProtocolTransferSuspensionMessage,\n\tIDataspaceProtocolTransferTerminationMessage\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { IDataspaceAppDataset } from \"./IDataspaceAppDataset.js\";\nimport type { INegotiationCallback } from \"./INegotiationCallback.js\";\n\n/**\n * Dataspace Control Plane Component interface.\n * Implements Eclipse Dataspace Protocol (DSP) specifications:\n * - Contract Negotiation Protocol\n * - Transfer Process Protocol\n *\n * This component acts as the Control Plane for contract negotiation and\n * data transfers between nodes in a dataspace.\n *\n * DSP 2025-1 Specification: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/\n */\nexport interface IDataspaceControlPlaneComponent extends IComponent {\n\t// ============================================================================\n\t// CONTRACT NEGOTIATION PROTOCOL (DSP)\n\t// Methods for negotiating agreements before transfers\n\t// ============================================================================\n\n\t/**\n\t * Register a callback to receive negotiation state change notifications.\n\t * Upstream modules (e.g. supply-chain) register their callback here\n\t * to be notified when negotiations complete, fail, or change state.\n\t * @param key A unique key identifying this callback registration.\n\t * @param callback The callback interface to register.\n\t */\n\tregisterNegotiationCallback(key: string, callback: INegotiationCallback): void;\n\n\t/**\n\t * Unregister a previously registered negotiation callback.\n\t * @param key The key used when registering the callback.\n\t */\n\tunregisterNegotiationCallback(key: string): void;\n\n\t/**\n\t * Negotiate a contract agreement with a provider.\n\t * Implements DSP Contract Negotiation Protocol.\n\t *\n\t * Returns immediately with a negotiationId. The caller is notified\n\t * via the registered INegotiationCallback when the negotiation completes.\n\t * The negotiation follows DSP state machine: REQUESTED → OFFERED → AGREED → VERIFIED → FINALIZED.\n\t *\n\t * This method has NO REST client implementation — it is only accessible via ComponentFactory.get().\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiation-protocol\n\t *\n\t * @param datasetId The dataset ID from the provider's catalog.\n\t * @param offerId The offer ID from the provider's catalog.\n\t * @param providerEndpoint The provider's contract negotiation endpoint URL.\n\t * @param publicOrigin The public origin URL of this control plane (for callbacks).\n\t * @param trustPayload Trust payload for authentication (JWT or Verifiable Credential).\n\t * @returns The negotiation ID for tracking. Use registered callback for completion.\n\t */\n\tnegotiateAgreement(\n\t\tdatasetId: string,\n\t\tofferId: string,\n\t\tproviderEndpoint: string,\n\t\tpublicOrigin: string,\n\t\ttrustPayload: unknown\n\t): Promise<{ negotiationId: string }>;\n\n\t/**\n\t * Get the current state of a contract negotiation.\n\t * Implements DSP Contract Negotiation Protocol.\n\t *\n\t * Queries the current state of an ongoing or completed negotiation.\n\t * Use this to monitor negotiation progress.\n\t * Returns the DSP-compliant negotiation state or error.\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiation-protocol\n\t *\n\t * @param negotiationId The unique identifier of the negotiation.\n\t * @param trustPayload Trust payload for authentication.\n\t * @returns DSP ContractNegotiation with current state, or error.\n\t */\n\tgetNegotiation(\n\t\tnegotiationId: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolContractNegotiation | IDataspaceProtocolContractNegotiationError>;\n\n\t/**\n\t * Get negotiation history.\n\t * Queries past contract negotiations for audit trails and debugging.\n\t *\n\t * Returns a list of past negotiations with their states and metadata.\n\t * Supports optional filtering by state and pagination via cursor.\n\t *\n\t * @param state Optional filter by negotiation state (e.g., \"FINALIZED\", \"TERMINATED\").\n\t * @param cursor Optional pagination cursor for fetching next page.\n\t * @param trustPayload Trust payload for authentication.\n\t * @returns List of negotiation history entries with pagination cursor.\n\t */\n\tgetNegotiationHistory(\n\t\tstate: string | undefined,\n\t\tcursor: string | undefined,\n\t\ttrustPayload: unknown\n\t): Promise<{\n\t\tnegotiations: {\n\t\t\tnegotiation:\n\t\t\t\t| IDataspaceProtocolContractNegotiation\n\t\t\t\t| IDataspaceProtocolContractNegotiationError;\n\t\t\tcreatedAt: string;\n\t\t\tofferId?: string;\n\t\t\tagreementId?: string;\n\t\t}[];\n\t\tcursor?: string;\n\t\tcount: number;\n\t}>;\n\n\t// ============================================================================\n\t// TRANSFER PROCESS PROTOCOL (DSP)\n\t// Methods for managing data transfers after agreements are established\n\t// ============================================================================\n\n\t// ----------------------------------------------------------------------------\n\t// CONSUMER SIDE OPERATIONS\n\t// Methods called by the Data Consumer to initiate transfers\n\t// ----------------------------------------------------------------------------\n\n\t/**\n\t * Request a Transfer Process.\n\t * Creates a new Transfer Process in REQUESTED state.\n\t *\n\t * Role Performed: Provider\n\t * Called by: Consumer when it wants to request a new Transfer Process\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-request-message\n\t *\n\t * @param request Transfer request message (DSP compliant) containing agreementId,\n\t * consumerPid, callbackAddress, and format.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * The consumer must prove their identity by providing a valid trust payload.\n\t * @returns Transfer Process (DSP compliant) with state REQUESTED, including\n\t * both consumerPid and providerPid, or TransferError if the operation fails.\n\t */\n\trequestTransfer(\n\t\trequest: IDataspaceProtocolTransferRequestMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t// ============================================================================\n\t// PROVIDER SIDE OPERATIONS\n\t// Methods called by the Data Provider to respond to transfer requests\n\t// ============================================================================\n\n\t/**\n\t * Start a Transfer Process.\n\t * Transitions Transfer Process from REQUESTED to STARTED state, or resumes from SUSPENDED state.\n\t *\n\t * Role Performed: Provider / Consumer\n\t * Called by: Provider when a Transfer Process starts, or Consumer to attempt to start a Transfer Process after it has been suspended\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-start-message\n\t *\n\t * @param message Transfer start message (DSP compliant).\n\t * @param publicOrigin The public origin URL of this service (used to construct data plane endpoint for PULL transfers).\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Start Message (DSP compliant) with dataAddress for PULL transfers, or TransferError if the operation fails.\n\t */\n\tstartTransfer(\n\t\tmessage: IDataspaceProtocolTransferStartMessage,\n\t\tpublicOrigin: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferStartMessage | IDataspaceProtocolTransferError>;\n\n\t// ============================================================================\n\t// SHARED STATE MANAGEMENT OPERATIONS\n\t// Methods that can be called by either Consumer or Provider\n\t// ============================================================================\n\n\t/**\n\t * Complete a Transfer Process.\n\t * Transitions Transfer Process to COMPLETED state.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when a Transfer process is completed on their side\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-completion-message\n\t *\n\t * @param message Transfer completion message (DSP compliant).\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with state COMPLETED, or TransferError if the operation fails.\n\t */\n\tcompleteTransfer(\n\t\tmessage: IDataspaceProtocolTransferCompletionMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Suspend a Transfer Process.\n\t * Transitions Transfer Process to SUSPENDED state.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when a Transfer process needs to be temporarily suspended on their side\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-suspension-message\n\t *\n\t * @param message Transfer suspension message (DSP compliant) with optional reason.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with state SUSPENDED, or TransferError if the operation fails.\n\t */\n\tsuspendTransfer(\n\t\tmessage: IDataspaceProtocolTransferSuspensionMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Terminate a Transfer Process.\n\t * Transitions Transfer Process to TERMINATED state.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when a Transfer process needs to be terminated on their side (e.g., due to error)\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-termination-message\n\t *\n\t * @param message Transfer termination message (DSP compliant) with optional reason.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with state TERMINATED, or TransferError if the operation fails.\n\t */\n\tterminateTransfer(\n\t\tmessage: IDataspaceProtocolTransferTerminationMessage,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Get Transfer Process State.\n\t * Query the current state of a Transfer Process.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Provider or Consumer when they need to check the status of a Transfer process on their side\n\t *\n\t * Supports role-agnostic lookup using either consumerPid or providerPid.\n\t * The service will automatically detect which role the caller is acting as\n\t * (Consumer or Provider) based on the PID provided.\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#ack-transfer-process\n\t *\n\t * @param pid The Process ID (consumerPid or providerPid) used to identify the transfer.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns Transfer Process (DSP compliant) with current state, or TransferError if the operation fails.\n\t */\n\tgetTransferProcess(\n\t\tpid: string,\n\t\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferProcess | IDataspaceProtocolTransferError>;\n\n\t// ============================================================================\n\t// DATASET MANAGEMENT\n\t// CRUD over the tenant-scoped dataset records the Control Plane reads at\n\t// start time to populate the federated catalogue.\n\t// ============================================================================\n\n\t/**\n\t * Register an app dataset for a dataspace app, owned by the calling tenant.\n\t * @param id Optional explicit id. If omitted, derived from `dataset[\"@id\"]`\n\t * or generated.\n\t * @param appId The dataspace app this dataset belongs to (matches\n\t * `DataspaceAppFactory` registration name).\n\t * @param dataset The dataset payload (may omit system-stamped fields).\n\t * @returns The resolved dataset id.\n\t */\n\tcreateAppDataset(\n\t\tid: string | undefined,\n\t\tappId: string,\n\t\tdataset: IDataspaceProtocolDataset\n\t): Promise<string>;\n\n\t/**\n\t * Get an app dataset record owned by the calling tenant.\n\t * @param id The stored app dataset id.\n\t * @returns The stored app dataset record.\n\t */\n\tgetAppDataset(id: string): Promise<IDataspaceAppDataset>;\n\n\t/**\n\t * List the app datasets owned by the calling tenant.\n\t * @param cursor Optional pagination cursor.\n\t * @param limit Optional maximum number of entries to return.\n\t * @returns The stored app datasets and the next-page cursor if more exist.\n\t */\n\tlistAppDatasets(\n\t\tcursor?: string,\n\t\tlimit?: number\n\t): Promise<{\n\t\tentities: IDataspaceAppDataset[];\n\t\tcursor?: string;\n\t}>;\n\n\t/**\n\t * Update an app dataset record owned by the calling tenant.\n\t * @param id The stored app dataset id.\n\t * @param appId The dataspace app this dataset belongs to.\n\t * @param dataset The dataset payload.\n\t * @returns Nothing.\n\t */\n\tupdateAppDataset(id: string, appId: string, dataset: IDataspaceProtocolDataset): Promise<void>;\n\n\t/**\n\t * Delete an app dataset record owned by the calling tenant.\n\t * @param id The stored app dataset id.\n\t * @returns Nothing.\n\t */\n\tdeleteAppDataset(id: string): Promise<void>;\n}\n"]}
@@ -0,0 +1,28 @@
1
+ // Copyright 2025 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ /**
4
+ * TWIN transfer format identifiers used in TransferRequestMessage.format.
5
+ * Follows the Eclipse EDC canonical pattern: DestinationType-FlowType.
6
+ * See RFC-007 Data Transfer Profile.
7
+ */
8
+ // eslint-disable-next-line @typescript-eslint/naming-convention
9
+ export const DataspaceTransferFormat = {
10
+ /**
11
+ * PULL mode: consumer queries data via a bearer-token-protected endpoint.
12
+ * Data flows: Consumer GET provider endpoint (with token).
13
+ */
14
+ HttpProxyPull: "HttpProxy-PULL",
15
+ /**
16
+ * Consumer-initiated PUSH mode: consumer supplies their /inbox endpoint in the
17
+ * TransferRequestMessage. Provider pushes ActivityStreams objects to that endpoint.
18
+ * Data flows: Provider POST to consumer's /inbox.
19
+ */
20
+ HttpProxyPush: "HttpProxy-PUSH",
21
+ /**
22
+ * Provider-initiated PUSH mode (inverted flow): consumer supplies no dataAddress.
23
+ * Provider returns its own /inbox URL + signed JWT. Consumer then posts data there.
24
+ * Data flows: Consumer POST to provider's /inbox.
25
+ */
26
+ HttpProxyPost: "HttpProxy-POST"
27
+ };
28
+ //# sourceMappingURL=dataspaceTransferFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataspaceTransferFormat.js","sourceRoot":"","sources":["../../../src/models/dataspaceTransferFormat.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;;;GAIG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC;;;OAGG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;;;OAIG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;;;OAIG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * TWIN transfer format identifiers used in TransferRequestMessage.format.\n * Follows the Eclipse EDC canonical pattern: DestinationType-FlowType.\n * See RFC-007 Data Transfer Profile.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const DataspaceTransferFormat = {\n\t/**\n\t * PULL mode: consumer queries data via a bearer-token-protected endpoint.\n\t * Data flows: Consumer GET provider endpoint (with token).\n\t */\n\tHttpProxyPull: \"HttpProxy-PULL\",\n\n\t/**\n\t * Consumer-initiated PUSH mode: consumer supplies their /inbox endpoint in the\n\t * TransferRequestMessage. Provider pushes ActivityStreams objects to that endpoint.\n\t * Data flows: Provider POST to consumer's /inbox.\n\t */\n\tHttpProxyPush: \"HttpProxy-PUSH\",\n\n\t/**\n\t * Provider-initiated PUSH mode (inverted flow): consumer supplies no dataAddress.\n\t * Provider returns its own /inbox URL + signed JWT. Consumer then posts data there.\n\t * Data flows: Consumer POST to provider's /inbox.\n\t */\n\tHttpProxyPost: \"HttpProxy-POST\"\n} as const;\n\n/**\n * Type for the DataspaceTransferFormat const values.\n */\nexport type DataspaceTransferFormat =\n\t(typeof DataspaceTransferFormat)[keyof typeof DataspaceTransferFormat];\n"]}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Tenant-supplied Dataset shape persisted by the Control Plane.
3
+ */
4
+ export declare class DataspaceAppDataset {
5
+ /**
6
+ * The unique identifier for the dataset.
7
+ */
8
+ id: string;
9
+ /**
10
+ * The identity of the node that owns this entity (required for sync).
11
+ */
12
+ nodeIdentity: string;
13
+ /**
14
+ * The tenant that owns this dataset, captured from the request context at
15
+ * write time. Optional — single-tenant nodes (no `TWIN_TENANT_ENABLED`)
16
+ * register datasets without a tenant context, in which case federated catalogue stores
17
+ * the dataset with no `tenantId` and URL-baking is skipped.
18
+ */
19
+ tenantId?: string;
20
+ /**
21
+ * The dataspace app that this dataset belongs to. Matches the app's
22
+ * registered name in `DataspaceAppFactory` (typically the app's URI).
23
+ * Used as the join key when dispatching to an app's optional
24
+ * `datasetsHandled` override.
25
+ */
26
+ appId: string;
27
+ /**
28
+ * The user-controlled JSON-LD dataset payload. Stored as an
29
+ * opaque object and validated/populated at publish time.
30
+ */
31
+ dataset: {
32
+ [key: string]: unknown;
33
+ };
34
+ /**
35
+ * Creation timestamp (ISO string format).
36
+ */
37
+ dateCreated: string;
38
+ /**
39
+ * Last update timestamp (ISO string format).
40
+ */
41
+ dateModified: string;
42
+ }
@@ -1,5 +1,7 @@
1
+ export * from "./entities/dataspaceAppDataset.js";
1
2
  export * from "./entities/transferProcess.js";
2
3
  export * from "./models/controlPlane/api/ITransferContextResponse.js";
4
+ export * from "./models/controlPlane/IDataspaceAppDataset.js";
3
5
  export * from "./models/controlPlane/IDataspaceControlPlaneComponent.js";
4
6
  export * from "./models/controlPlane/IDataspaceControlPlaneResolverComponent.js";
5
7
  export * from "./models/controlPlane/INegotiationCallback.js";
@@ -8,6 +10,7 @@ export * from "./models/controlPlane/ITransferProcess.js";
8
10
  export * from "./models/controlPlane/transferProcessRole.js";
9
11
  export * from "./models/dataPlane/IDataspaceDataPlaneComponent.js";
10
12
  export * from "./models/dataspaceContexts.js";
13
+ export * from "./models/dataspaceTransferFormat.js";
11
14
  export * from "./models/dataspaceTypes.js";
12
15
  export * from "./models/IDataspaceActivity.js";
13
16
  export * from "./dataTypes/dataspaceDataTypes.js";
@@ -24,6 +27,14 @@ export * from "./models/api/IActivityStreamNotifyResponse.js";
24
27
  export * from "./models/api/IDataAssetEntitiesResponse.js";
25
28
  export * from "./models/api/IDataAssetGetEntitiesRequest.js";
26
29
  export * from "./models/api/IDataAssetQueryRequest.js";
30
+ export * from "./models/api/controlPlane/IAppDatasetCreateRequest.js";
31
+ export * from "./models/api/controlPlane/IAppDatasetCreateResponse.js";
32
+ export * from "./models/api/controlPlane/IAppDatasetDeleteRequest.js";
33
+ export * from "./models/api/controlPlane/IAppDatasetGetRequest.js";
34
+ export * from "./models/api/controlPlane/IAppDatasetGetResponse.js";
35
+ export * from "./models/api/controlPlane/IAppDatasetListRequest.js";
36
+ export * from "./models/api/controlPlane/IAppDatasetListResponse.js";
37
+ export * from "./models/api/controlPlane/IAppDatasetUpdateRequest.js";
27
38
  export * from "./models/api/controlPlane/ICompleteTransferRequest.js";
28
39
  export * from "./models/api/controlPlane/ICompleteTransferResponse.js";
29
40
  export * from "./models/api/controlPlane/IGetTransferProcessRequest.js";
@@ -0,0 +1,31 @@
1
+ import type { IDataspaceProtocolDataset } from "@twin.org/standards-dataspace-protocol";
2
+ /**
3
+ * API request to register an app dataset.
4
+ *
5
+ * The owning `tenantId` is captured automatically from the request's tenant
6
+ * context — callers do not supply it.
7
+ */
8
+ export interface IAppDatasetCreateRequest {
9
+ /**
10
+ * The body of the request.
11
+ */
12
+ body: {
13
+ /**
14
+ * Optional explicit id for the stored dataset record. If omitted, the
15
+ * Control Plane derives the id from `dataset["@id"]` if present, or
16
+ * generates a UUID otherwise. The resolved id is returned via the
17
+ * `Location` response header.
18
+ */
19
+ id?: string;
20
+ /**
21
+ * The dataspace app this dataset belongs to. Matches the app's
22
+ * registered name in `DataspaceAppFactory` (typically the app's URI).
23
+ */
24
+ appId: string;
25
+ /**
26
+ * The dataset payload. System-stamped fields like `dcterms:publisher`
27
+ * may be omitted — the Control Plane fills them in at publish time.
28
+ */
29
+ dataset: IDataspaceProtocolDataset;
30
+ };
31
+ }
@@ -0,0 +1,16 @@
1
+ import type { HeaderTypes, HttpStatusCode } from "@twin.org/web";
2
+ /**
3
+ * API response from registering an app dataset.
4
+ */
5
+ export interface IAppDatasetCreateResponse {
6
+ /**
7
+ * The headers of the response, including the location of the new app dataset.
8
+ */
9
+ headers: {
10
+ [HeaderTypes.Location]: string;
11
+ };
12
+ /**
13
+ * HTTP status code (201 on success).
14
+ */
15
+ statusCode: HttpStatusCode;
16
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * API request to delete a stored app dataset record.
3
+ */
4
+ export interface IAppDatasetDeleteRequest {
5
+ /**
6
+ * Path parameters containing the stored dataset id.
7
+ */
8
+ pathParams: {
9
+ /**
10
+ * The stored dataset id.
11
+ */
12
+ id: string;
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * API request to fetch a single app dataset record.
3
+ */
4
+ export interface IAppDatasetGetRequest {
5
+ /**
6
+ * Path parameters containing the stored app dataset id.
7
+ */
8
+ pathParams: {
9
+ /**
10
+ * The stored app dataset id (entity primary key).
11
+ */
12
+ id: string;
13
+ };
14
+ }
@@ -0,0 +1,10 @@
1
+ import type { IDataspaceAppDataset } from "../../controlPlane/IDataspaceAppDataset.js";
2
+ /**
3
+ * API response for a single stored app dataset record.
4
+ */
5
+ export interface IAppDatasetGetResponse {
6
+ /**
7
+ * The body of the response.
8
+ */
9
+ body: IDataspaceAppDataset;
10
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * API request to list the app datasets owned by the calling tenant.
3
+ */
4
+ export interface IAppDatasetListRequest {
5
+ /**
6
+ * Query parameters for paging. Always strings on the wire.
7
+ */
8
+ query?: {
9
+ /**
10
+ * Cursor returned from a previous list call to fetch the next page.
11
+ */
12
+ cursor?: string;
13
+ /**
14
+ * Maximum number of entries to return (string-encoded; parsed on the server).
15
+ */
16
+ limit?: string;
17
+ };
18
+ }
@@ -0,0 +1,19 @@
1
+ import type { IDataspaceAppDataset } from "../../controlPlane/IDataspaceAppDataset.js";
2
+ /**
3
+ * API response listing the app datasets owned by the calling tenant.
4
+ */
5
+ export interface IAppDatasetListResponse {
6
+ /**
7
+ * The body of the response.
8
+ */
9
+ body: {
10
+ /**
11
+ * The stored datasets.
12
+ */
13
+ entities: IDataspaceAppDataset[];
14
+ /**
15
+ * Cursor to fetch the next page if more entries exist.
16
+ */
17
+ cursor?: string;
18
+ };
19
+ }
@@ -0,0 +1,29 @@
1
+ import type { IDataspaceProtocolDataset } from "@twin.org/standards-dataspace-protocol";
2
+ /**
3
+ * API request to update an existing app dataset record.
4
+ */
5
+ export interface IAppDatasetUpdateRequest {
6
+ /**
7
+ * Path parameters containing the stored app dataset id.
8
+ */
9
+ pathParams: {
10
+ /**
11
+ * The stored app dataset id.
12
+ */
13
+ id: string;
14
+ };
15
+ /**
16
+ * The body of the request.
17
+ */
18
+ body: {
19
+ /**
20
+ * The dataspace app this dataset belongs to. May change appId on
21
+ * update if the tenant wants to retarget the dataset.
22
+ */
23
+ appId: string;
24
+ /**
25
+ * The dataset payload.
26
+ */
27
+ dataset: IDataspaceProtocolDataset;
28
+ };
29
+ }