@twin.org/dataspace-models 0.9.1 → 0.9.2-next.1

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 (49) hide show
  1. package/dist/es/entities/dataspaceAppDataset.js +10 -1
  2. package/dist/es/entities/dataspaceAppDataset.js.map +1 -1
  3. package/dist/es/entities/dataspaceAppDatasetV0.js +73 -0
  4. package/dist/es/entities/dataspaceAppDatasetV0.js.map +1 -0
  5. package/dist/es/entities/transferProcess.js +2 -1
  6. package/dist/es/entities/transferProcess.js.map +1 -1
  7. package/dist/es/entities/transferRetrieval.js +38 -0
  8. package/dist/es/entities/transferRetrieval.js.map +1 -0
  9. package/dist/es/index.js +4 -0
  10. package/dist/es/index.js.map +1 -1
  11. package/dist/es/models/api/controlPlane/IAppDatasetCreateRequest.js.map +1 -1
  12. package/dist/es/models/api/controlPlane/IAppDatasetUpdateRequest.js.map +1 -1
  13. package/dist/es/models/controlPlane/IDataspaceAppDataset.js.map +1 -1
  14. package/dist/es/models/controlPlane/IDataspaceControlPlaneComponent.js.map +1 -1
  15. package/dist/es/models/controlPlane/ITransferCallback.js.map +1 -1
  16. package/dist/es/models/controlPlane/ITransferProcess.js.map +1 -1
  17. package/dist/es/models/controlPlane/ITransferQueryResult.js +2 -0
  18. package/dist/es/models/controlPlane/ITransferQueryResult.js.map +1 -0
  19. package/dist/es/models/controlPlane/transferTerminationCode.js +14 -0
  20. package/dist/es/models/controlPlane/transferTerminationCode.js.map +1 -0
  21. package/dist/types/entities/dataspaceAppDataset.d.ts +5 -0
  22. package/dist/types/entities/dataspaceAppDatasetV0.d.ts +39 -0
  23. package/dist/types/entities/transferProcess.d.ts +2 -1
  24. package/dist/types/entities/transferRetrieval.d.ts +18 -0
  25. package/dist/types/index.d.ts +4 -0
  26. package/dist/types/models/api/controlPlane/IAppDatasetCreateRequest.d.ts +5 -0
  27. package/dist/types/models/api/controlPlane/IAppDatasetUpdateRequest.d.ts +5 -0
  28. package/dist/types/models/controlPlane/IDataspaceAppDataset.d.ts +5 -0
  29. package/dist/types/models/controlPlane/IDataspaceControlPlaneComponent.d.ts +33 -3
  30. package/dist/types/models/controlPlane/ITransferCallback.d.ts +3 -3
  31. package/dist/types/models/controlPlane/ITransferProcess.d.ts +2 -4
  32. package/dist/types/models/controlPlane/ITransferQueryResult.d.ts +14 -0
  33. package/dist/types/models/controlPlane/transferTerminationCode.d.ts +14 -0
  34. package/docs/changelog.md +47 -0
  35. package/docs/reference/classes/DataspaceAppDataset.md +9 -0
  36. package/docs/reference/classes/DataspaceAppDatasetV0.md +77 -0
  37. package/docs/reference/classes/TransferProcess.md +2 -1
  38. package/docs/reference/classes/TransferRetrieval.md +38 -0
  39. package/docs/reference/index.md +5 -0
  40. package/docs/reference/interfaces/IAppDatasetCreateRequest.md +7 -0
  41. package/docs/reference/interfaces/IAppDatasetUpdateRequest.md +7 -0
  42. package/docs/reference/interfaces/IDataspaceAppDataset.md +9 -0
  43. package/docs/reference/interfaces/IDataspaceControlPlaneComponent.md +74 -2
  44. package/docs/reference/interfaces/ITransferCallback.md +3 -3
  45. package/docs/reference/interfaces/ITransferProcess.md +2 -4
  46. package/docs/reference/interfaces/ITransferQueryResult.md +19 -0
  47. package/docs/reference/type-aliases/TransferTerminationCode.md +5 -0
  48. package/docs/reference/variables/TransferTerminationCode.md +14 -0
  49. package/package.json +14 -14
@@ -29,6 +29,11 @@ let DataspaceAppDataset = class DataspaceAppDataset {
29
29
  * opaque object and validated/populated at publish time.
30
30
  */
31
31
  dataset;
32
+ /**
33
+ * Idle window (ms) for this dataset's PULL transfers, overriding the node-level
34
+ * providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.
35
+ */
36
+ transferIdleTimeoutMs;
32
37
  /**
33
38
  * Creation timestamp (ISO string format).
34
39
  */
@@ -58,6 +63,10 @@ __decorate([
58
63
  property({ type: "object", format: "json" }),
59
64
  __metadata("design:type", Object)
60
65
  ], DataspaceAppDataset.prototype, "dataset", void 0);
66
+ __decorate([
67
+ property({ type: "number", optional: true }),
68
+ __metadata("design:type", Number)
69
+ ], DataspaceAppDataset.prototype, "transferIdleTimeoutMs", void 0);
61
70
  __decorate([
62
71
  property({ type: "string", format: "date-time", sortDirection: SortDirection.Descending }),
63
72
  __metadata("design:type", String)
@@ -67,7 +76,7 @@ __decorate([
67
76
  __metadata("design:type", String)
68
77
  ], DataspaceAppDataset.prototype, "dateModified", void 0);
69
78
  DataspaceAppDataset = __decorate([
70
- entity()
79
+ entity({ version: 1 })
71
80
  ], DataspaceAppDataset);
72
81
  export { DataspaceAppDataset };
73
82
  //# sourceMappingURL=dataspaceAppDataset.js.map
@@ -1 +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,oBAAoB,CAAU;IAErC;;;;OAIG;IAEI,QAAQ,CAAU;IAEzB;;;OAGG;IAEI,KAAK,CAAU;IAEtB;;;OAGG;IAEI,OAAO,CAA8B;IAE5C;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,YAAY,CAAU;CAC7B,CAAA;AAzCO;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;;iEACX;AAQ9B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AAOlB;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;AA7CjB,mBAAmB;IAD/B,MAAM,EAAE;GACI,mBAAmB,CA8C/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 organization that owns this entity.\n\t */\n\t@property({ type: \"string\", isSecondary: true })\n\tpublic organizationIdentity!: 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.\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 */\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"]}
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,oBAAoB,CAAU;IAErC;;;;OAIG;IAEI,QAAQ,CAAU;IAEzB;;;OAGG;IAEI,KAAK,CAAU;IAEtB;;;OAGG;IAEI,OAAO,CAA8B;IAE5C;;;OAGG;IAEI,qBAAqB,CAAU;IAEtC;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,YAAY,CAAU;CAC7B,CAAA;AAhDO;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;;iEACX;AAQ9B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACpB;AAOlB;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;AAOrC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEACP;AAM/B;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;AApDjB,mBAAmB;IAD/B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;GACV,mBAAmB,CAqD/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({ version: 1 })\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 organization that owns this entity.\n\t */\n\t@property({ type: \"string\", isSecondary: true })\n\tpublic organizationIdentity!: 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.\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 */\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 * Idle window (ms) for this dataset's PULL transfers, overriding the node-level\n\t * providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.\n\t */\n\t@property({ type: \"number\", optional: true })\n\tpublic transferIdleTimeoutMs?: number;\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"]}
@@ -0,0 +1,73 @@
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, version 0.
6
+ */
7
+ let DataspaceAppDatasetV0 = class DataspaceAppDatasetV0 {
8
+ /**
9
+ * The unique identifier for the dataset.
10
+ */
11
+ id;
12
+ /**
13
+ * The identity of the organization that owns this entity.
14
+ */
15
+ organizationIdentity;
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.
20
+ */
21
+ tenantId;
22
+ /**
23
+ * The dataspace app that this dataset belongs to. Matches the app's
24
+ * registered name in `DataspaceAppFactory` (typically the app's URI).
25
+ */
26
+ appId;
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
+ /**
33
+ * Creation timestamp (ISO string format).
34
+ */
35
+ dateCreated;
36
+ /**
37
+ * Last update timestamp (ISO string format).
38
+ */
39
+ dateModified;
40
+ };
41
+ __decorate([
42
+ property({ type: "string", isPrimary: true }),
43
+ __metadata("design:type", String)
44
+ ], DataspaceAppDatasetV0.prototype, "id", void 0);
45
+ __decorate([
46
+ property({ type: "string", isSecondary: true }),
47
+ __metadata("design:type", String)
48
+ ], DataspaceAppDatasetV0.prototype, "organizationIdentity", void 0);
49
+ __decorate([
50
+ property({ type: "string", optional: true }),
51
+ __metadata("design:type", String)
52
+ ], DataspaceAppDatasetV0.prototype, "tenantId", void 0);
53
+ __decorate([
54
+ property({ type: "string" }),
55
+ __metadata("design:type", String)
56
+ ], DataspaceAppDatasetV0.prototype, "appId", void 0);
57
+ __decorate([
58
+ property({ type: "object", format: "json" }),
59
+ __metadata("design:type", Object)
60
+ ], DataspaceAppDatasetV0.prototype, "dataset", void 0);
61
+ __decorate([
62
+ property({ type: "string", format: "date-time", sortDirection: SortDirection.Descending }),
63
+ __metadata("design:type", String)
64
+ ], DataspaceAppDatasetV0.prototype, "dateCreated", void 0);
65
+ __decorate([
66
+ property({ type: "string", format: "date-time" }),
67
+ __metadata("design:type", String)
68
+ ], DataspaceAppDatasetV0.prototype, "dateModified", void 0);
69
+ DataspaceAppDatasetV0 = __decorate([
70
+ entity({ version: 0 })
71
+ ], DataspaceAppDatasetV0);
72
+ export { DataspaceAppDatasetV0 };
73
+ //# sourceMappingURL=dataspaceAppDatasetV0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataspaceAppDatasetV0.js","sourceRoot":"","sources":["../../../src/entities/dataspaceAppDatasetV0.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACjC;;OAEG;IAEI,EAAE,CAAU;IAEnB;;OAEG;IAEI,oBAAoB,CAAU;IAErC;;;;OAIG;IAEI,QAAQ,CAAU;IAEzB;;;OAGG;IAEI,KAAK,CAAU;IAEtB;;;OAGG;IAEI,OAAO,CAA8B;IAE5C;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,YAAY,CAAU;CAC7B,CAAA;AAzCO;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;iDAC3B;AAMZ;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;mEACX;AAQ9B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACpB;AAOlB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oDACP;AAOf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;sDACD;AAMrC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC;;0DAC/D;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;2DACrB;AA7CjB,qBAAqB;IADjC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;GACV,qBAAqB,CA8CjC","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, version 0.\n */\n@entity({ version: 0 })\nexport class DataspaceAppDatasetV0 {\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 organization that owns this entity.\n\t */\n\t@property({ type: \"string\", isSecondary: true })\n\tpublic organizationIdentity!: 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.\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 */\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"]}
@@ -76,7 +76,8 @@ let TransferProcess = class TransferProcess {
76
76
  */
77
77
  policies;
78
78
  /**
79
- * Data address for push mode transfers (stored as JSON).
79
+ * Data address for the transfer (stored as JSON): the consumer's inbox for PUSH, or the
80
+ * provider-built address persisted at start for PULL/POST; may expire while STARTED.
80
81
  */
81
82
  dataAddress;
82
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transferProcess.js","sourceRoot":"","sources":["../../../src/entities/transferProcess.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQnE;;;GAGG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B;;;OAGG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,EAAE,CAAU;IAEnB;;;OAGG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,WAAW,CAAU;IAE5B;;;OAGG;IAEI,KAAK,CAA6C;IAEzD;;OAEG;IAEI,SAAS,CAAU;IAE1B;;OAEG;IAEI,OAAO,CAAU;IAExB;;OAEG;IAEI,gBAAgB,CAAU;IAEjC;;OAEG;IAEI,gBAAgB,CAAU;IAEjC;;;;OAIG;IAEI,SAAS,CAAuB;IAEvC;;OAEG;IAEI,MAAM,CAAU;IAEvB;;OAEG;IAEI,eAAe,CAAU;IAEhC;;OAEG;IAEI,oBAAoB,CAAU;IAErC;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,YAAY,CAAU;IAE7B;;OAEG;IAEI,QAAQ,CAA6B;IAE5C;;OAEG;IAEI,WAAW,CAAiC;CACnD,CAAA;AArGO;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;oDAClB;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;2CACV;AAOZ;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;oDACpB;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oDACD;AAOrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;8CAC4B;AAMlD;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;kDACH;AAMnB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;gDACL;AAMjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;AAM1B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;AAQ1B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAMhC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACtB;AAMhB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACb;AAMzB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;6DACQ;AAM9B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC;;oDAC/D;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;qDACrB;AAMtB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChB;AAMrC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AA1GvC,eAAe;IAD3B,MAAM,EAAE;GACI,eAAe,CA2G3B","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { entity, property, SortDirection } from \"@twin.org/entity\";\nimport type { IRightsManagementPolicy } from \"@twin.org/rights-management-models\";\nimport type {\n\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolDataAddress\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { TransferProcessRole } from \"../models/controlPlane/transferProcessRole.js\";\n\n/**\n * Transfer Process for shared storage between Control Plane and Data Plane.\n * This entity is the persistent representation of ITransferProcess.\n */\n@entity()\nexport class TransferProcess {\n\t/**\n\t * The consumer PID is the primary key.\n\t * Used for direct lookup by consumerPid.\n\t */\n\t@property({ type: \"string\", isPrimary: true })\n\tpublic consumerPid!: string;\n\n\t/**\n\t * Internal UUID for storage (secondary key for providerPid lookup).\n\t */\n\t@property({ type: \"string\" })\n\tpublic id!: string;\n\n\t/**\n\t * Provider Process ID from the DSP protocol.\n\t * Indexed for lookup by providerPid.\n\t */\n\t@property({ type: \"string\", isSecondary: true })\n\tpublic providerPid!: string;\n\n\t/**\n\t * Agreement ID linking to the rights-management Agreement.\n\t */\n\t@property({ type: \"string\" })\n\tpublic agreementId!: string;\n\n\t/**\n\t * Transfer Process state from the DSP protocol.\n\t * One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.\n\t */\n\t@property({ type: \"string\" })\n\tpublic state!: DataspaceProtocolTransferProcessStateType;\n\n\t/**\n\t * Dataset ID for DSC resolution.\n\t */\n\t@property({ type: \"string\" })\n\tpublic datasetId!: string;\n\n\t/**\n\t * Offer ID from the original Catalog offer.\n\t */\n\t@property({ type: \"string\" })\n\tpublic offerId!: string;\n\n\t/**\n\t * Consumer identity (DID or URI).\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic consumerIdentity?: string;\n\n\t/**\n\t * Provider identity (DID or URI).\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic providerIdentity?: string;\n\n\t/**\n\t * This node's role in the transfer, captured at write time so state transitions and async delivery\n\t * can tell which party we are without inferring it from the matched PID (consumerPid is the primary\n\t * key on both nodes). Optional for back-compat with records written before this field existed.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic localRole?: TransferProcessRole;\n\n\t/**\n\t * Data format from the Dataset Distribution.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic format?: string;\n\n\t/**\n\t * Callback address for Consumer notifications.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic callbackAddress?: string;\n\n\t/**\n\t * The organization that owns this transfer process, captured from the request context at write time.\n\t */\n\t@property({ type: \"string\" })\n\tpublic organizationIdentity!: string;\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\t/**\n\t * Policies from the Agreement (stored as JSON).\n\t */\n\t@property({ type: \"array\", format: \"json\", optional: true })\n\tpublic policies?: IRightsManagementPolicy[];\n\n\t/**\n\t * Data address for push mode transfers (stored as JSON).\n\t */\n\t@property({ type: \"object\", format: \"json\", optional: true })\n\tpublic dataAddress?: IDataspaceProtocolDataAddress;\n}\n"]}
1
+ {"version":3,"file":"transferProcess.js","sourceRoot":"","sources":["../../../src/entities/transferProcess.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQnE;;;GAGG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B;;;OAGG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,EAAE,CAAU;IAEnB;;;OAGG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,WAAW,CAAU;IAE5B;;;OAGG;IAEI,KAAK,CAA6C;IAEzD;;OAEG;IAEI,SAAS,CAAU;IAE1B;;OAEG;IAEI,OAAO,CAAU;IAExB;;OAEG;IAEI,gBAAgB,CAAU;IAEjC;;OAEG;IAEI,gBAAgB,CAAU;IAEjC;;;;OAIG;IAEI,SAAS,CAAuB;IAEvC;;OAEG;IAEI,MAAM,CAAU;IAEvB;;OAEG;IAEI,eAAe,CAAU;IAEhC;;OAEG;IAEI,oBAAoB,CAAU;IAErC;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,YAAY,CAAU;IAE7B;;OAEG;IAEI,QAAQ,CAA6B;IAE5C;;;OAGG;IAEI,WAAW,CAAiC;CACnD,CAAA;AAtGO;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;oDAClB;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;2CACV;AAOZ;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;oDACpB;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oDACD;AAOrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;8CAC4B;AAMlD;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;kDACH;AAMnB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;gDACL;AAMjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;AAM1B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACZ;AAQ1B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAMhC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACtB;AAMhB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACb;AAMzB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;6DACQ;AAM9B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC;;oDAC/D;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;qDACrB;AAMtB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChB;AAOrC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AA3GvC,eAAe;IAD3B,MAAM,EAAE;GACI,eAAe,CA4G3B","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { entity, property, SortDirection } from \"@twin.org/entity\";\nimport type { IRightsManagementPolicy } from \"@twin.org/rights-management-models\";\nimport type {\n\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolDataAddress\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { TransferProcessRole } from \"../models/controlPlane/transferProcessRole.js\";\n\n/**\n * Transfer Process for shared storage between Control Plane and Data Plane.\n * This entity is the persistent representation of ITransferProcess.\n */\n@entity()\nexport class TransferProcess {\n\t/**\n\t * The consumer PID is the primary key.\n\t * Used for direct lookup by consumerPid.\n\t */\n\t@property({ type: \"string\", isPrimary: true })\n\tpublic consumerPid!: string;\n\n\t/**\n\t * Internal UUID for storage (secondary key for providerPid lookup).\n\t */\n\t@property({ type: \"string\" })\n\tpublic id!: string;\n\n\t/**\n\t * Provider Process ID from the DSP protocol.\n\t * Indexed for lookup by providerPid.\n\t */\n\t@property({ type: \"string\", isSecondary: true })\n\tpublic providerPid!: string;\n\n\t/**\n\t * Agreement ID linking to the rights-management Agreement.\n\t */\n\t@property({ type: \"string\" })\n\tpublic agreementId!: string;\n\n\t/**\n\t * Transfer Process state from the DSP protocol.\n\t * One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.\n\t */\n\t@property({ type: \"string\" })\n\tpublic state!: DataspaceProtocolTransferProcessStateType;\n\n\t/**\n\t * Dataset ID for DSC resolution.\n\t */\n\t@property({ type: \"string\" })\n\tpublic datasetId!: string;\n\n\t/**\n\t * Offer ID from the original Catalog offer.\n\t */\n\t@property({ type: \"string\" })\n\tpublic offerId!: string;\n\n\t/**\n\t * Consumer identity (DID or URI).\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic consumerIdentity?: string;\n\n\t/**\n\t * Provider identity (DID or URI).\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic providerIdentity?: string;\n\n\t/**\n\t * This node's role in the transfer, captured at write time so state transitions and async delivery\n\t * can tell which party we are without inferring it from the matched PID (consumerPid is the primary\n\t * key on both nodes). Optional for back-compat with records written before this field existed.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic localRole?: TransferProcessRole;\n\n\t/**\n\t * Data format from the Dataset Distribution.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic format?: string;\n\n\t/**\n\t * Callback address for Consumer notifications.\n\t */\n\t@property({ type: \"string\", optional: true })\n\tpublic callbackAddress?: string;\n\n\t/**\n\t * The organization that owns this transfer process, captured from the request context at write time.\n\t */\n\t@property({ type: \"string\" })\n\tpublic organizationIdentity!: string;\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\t/**\n\t * Policies from the Agreement (stored as JSON).\n\t */\n\t@property({ type: \"array\", format: \"json\", optional: true })\n\tpublic policies?: IRightsManagementPolicy[];\n\n\t/**\n\t * Data address for the transfer (stored as JSON): the consumer's inbox for PUSH, or the\n\t * provider-built address persisted at start for PULL/POST; may expire while STARTED.\n\t */\n\t@property({ type: \"object\", format: \"json\", optional: true })\n\tpublic dataAddress?: IDataspaceProtocolDataAddress;\n}\n"]}
@@ -0,0 +1,38 @@
1
+ // Copyright 2026 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ import { entity, property } from "@twin.org/entity";
4
+ /**
5
+ * Records the consumer's first successful retrieval for a transfer.
6
+ * Written by the Data Plane, read by the Control Plane's one-shot policy sweep.
7
+ */
8
+ let TransferRetrieval = class TransferRetrieval {
9
+ /**
10
+ * The consumer PID of the transfer, primary key.
11
+ */
12
+ consumerPid;
13
+ /**
14
+ * When the first successful retrieval happened (ISO string format).
15
+ */
16
+ dateFirstRetrieved;
17
+ /**
18
+ * When the most recent successful retrieval happened (ISO string format).
19
+ */
20
+ dateLastRetrieved;
21
+ };
22
+ __decorate([
23
+ property({ type: "string", isPrimary: true }),
24
+ __metadata("design:type", String)
25
+ ], TransferRetrieval.prototype, "consumerPid", void 0);
26
+ __decorate([
27
+ property({ type: "string", format: "date-time" }),
28
+ __metadata("design:type", String)
29
+ ], TransferRetrieval.prototype, "dateFirstRetrieved", void 0);
30
+ __decorate([
31
+ property({ type: "string", format: "date-time" }),
32
+ __metadata("design:type", String)
33
+ ], TransferRetrieval.prototype, "dateLastRetrieved", void 0);
34
+ TransferRetrieval = __decorate([
35
+ entity()
36
+ ], TransferRetrieval);
37
+ export { TransferRetrieval };
38
+ //# sourceMappingURL=transferRetrieval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferRetrieval.js","sourceRoot":"","sources":["../../../src/entities/transferRetrieval.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;GAGG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC7B;;OAEG;IAEI,WAAW,CAAU;IAE5B;;OAEG;IAEI,kBAAkB,CAAU;IAEnC;;OAEG;IAEI,iBAAiB,CAAU;CAClC,CAAA;AAbO;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;sDAClB;AAMrB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;6DACf;AAM5B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;;4DAChB;AAjBtB,iBAAiB;IAD7B,MAAM,EAAE;GACI,iBAAiB,CAkB7B","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { entity, property } from \"@twin.org/entity\";\n\n/**\n * Records the consumer's first successful retrieval for a transfer.\n * Written by the Data Plane, read by the Control Plane's one-shot policy sweep.\n */\n@entity()\nexport class TransferRetrieval {\n\t/**\n\t * The consumer PID of the transfer, primary key.\n\t */\n\t@property({ type: \"string\", isPrimary: true })\n\tpublic consumerPid!: string;\n\n\t/**\n\t * When the first successful retrieval happened (ISO string format).\n\t */\n\t@property({ type: \"string\", format: \"date-time\" })\n\tpublic dateFirstRetrieved!: string;\n\n\t/**\n\t * When the most recent successful retrieval happened (ISO string format).\n\t */\n\t@property({ type: \"string\", format: \"date-time\" })\n\tpublic dateLastRetrieved!: string;\n}\n"]}
package/dist/es/index.js CHANGED
@@ -2,7 +2,9 @@
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  // Entity exports
4
4
  export * from "./entities/dataspaceAppDataset.js";
5
+ export * from "./entities/dataspaceAppDatasetV0.js";
5
6
  export * from "./entities/transferProcess.js";
7
+ export * from "./entities/transferRetrieval.js";
6
8
  // Control Plane exports
7
9
  export * from "./models/controlPlane/api/ITransferContextResponse.js";
8
10
  export * from "./models/controlPlane/dataspaceControlPlaneMetricIds.js";
@@ -14,7 +16,9 @@ export * from "./models/controlPlane/INegotiationCallback.js";
14
16
  export * from "./models/controlPlane/ITransferCallback.js";
15
17
  export * from "./models/controlPlane/ITransferContext.js";
16
18
  export * from "./models/controlPlane/ITransferProcess.js";
19
+ export * from "./models/controlPlane/ITransferQueryResult.js";
17
20
  export * from "./models/controlPlane/transferProcessRole.js";
21
+ export * from "./models/controlPlane/transferTerminationCode.js";
18
22
  // Data Plane exports
19
23
  export * from "./models/dataPlane/dataspaceDataPlaneMetricIds.js";
20
24
  export * from "./models/dataPlane/dataspaceDataPlaneMetrics.js";
@@ -1 +1 @@
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,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0DAA0D,CAAC;AACzE,cAAc,kEAAkE,CAAC;AACjF,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAE7D,qBAAqB;AACrB,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,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,iCAAiC,CAAC;AAChD,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,2DAA2D,CAAC;AAC1E,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;AAC5C,cAAc,kCAAkC,CAAC;AAEjD,kBAAkB;AAClB,cAAc,wBAAwB,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/dataspaceControlPlaneMetricIds.js\";\nexport * from \"./models/controlPlane/dataspaceControlPlaneMetrics.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/ITransferCallback.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/dataspaceDataPlaneMetricIds.js\";\nexport * from \"./models/dataPlane/dataspaceDataPlaneMetrics.js\";\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/IFollowActivity.js\";\nexport * from \"./models/app/IUndoActivity.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/IGetProtocolVersionsResponse.js\";\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\";\nexport * from \"./models/IPushDeliveryPayload.js\";\n\n// Utility exports\nexport * from \"./utils/jsonLdUtils.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,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAEhD,wBAAwB;AACxB,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0DAA0D,CAAC;AACzE,cAAc,kEAAkE,CAAC;AACjF,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AAEjE,qBAAqB;AACrB,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,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,iCAAiC,CAAC;AAChD,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,2DAA2D,CAAC;AAC1E,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;AAC5C,cAAc,kCAAkC,CAAC;AAEjD,kBAAkB;AAClB,cAAc,wBAAwB,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/dataspaceAppDatasetV0.js\";\nexport * from \"./entities/transferProcess.js\";\nexport * from \"./entities/transferRetrieval.js\";\n\n// Control Plane exports\nexport * from \"./models/controlPlane/api/ITransferContextResponse.js\";\nexport * from \"./models/controlPlane/dataspaceControlPlaneMetricIds.js\";\nexport * from \"./models/controlPlane/dataspaceControlPlaneMetrics.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/ITransferCallback.js\";\nexport * from \"./models/controlPlane/ITransferContext.js\";\nexport * from \"./models/controlPlane/ITransferProcess.js\";\nexport * from \"./models/controlPlane/ITransferQueryResult.js\";\nexport * from \"./models/controlPlane/transferProcessRole.js\";\nexport * from \"./models/controlPlane/transferTerminationCode.js\";\n\n// Data Plane exports\nexport * from \"./models/dataPlane/dataspaceDataPlaneMetricIds.js\";\nexport * from \"./models/dataPlane/dataspaceDataPlaneMetrics.js\";\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/IFollowActivity.js\";\nexport * from \"./models/app/IUndoActivity.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/IGetProtocolVersionsResponse.js\";\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\";\nexport * from \"./models/IPushDeliveryPayload.js\";\n\n// Utility exports\nexport * from \"./utils/jsonLdUtils.js\";\n"]}
@@ -1 +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"]}
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\n\t\t/**\n\t\t * Optional idle window (ms) overriding the node-level idle policy for this\n\t\t * dataset's PULL transfers; 0 disables it for this dataset.\n\t\t */\n\t\ttransferIdleTimeoutMs?: number;\n\t};\n}\n"]}
@@ -1 +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
+ {"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\n\t\t/**\n\t\t * Optional idle window (ms) overriding the node-level idle policy for this\n\t\t * dataset's PULL transfers; 0 disables it for this dataset.\n\t\t */\n\t\ttransferIdleTimeoutMs?: number;\n\t};\n}\n"]}
@@ -1 +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
+ {"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 * Idle window (ms) for this dataset's PULL transfers, overriding the node-level\n\t * providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.\n\t */\n\ttransferIdleTimeoutMs?: number;\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\tIDataspaceProtocolDataset,\n\tIDataspaceProtocolTransferCompletionMessage,\n\tIDataspaceProtocolTransferError,\n\tIDataspaceProtocolTransferProcess,\n\tIDataspaceProtocolTransferRequestMessage,\n\tIDataspaceProtocolTransferStartMessage,\n\tIDataspaceProtocolTransferSuspensionMessage,\n\tIDataspaceProtocolTransferTerminationMessage,\n\tIDataspaceProtocolVersionResponse\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { IDataspaceAppDataset } from \"./IDataspaceAppDataset.js\";\nimport type { INegotiationCallback } from \"./INegotiationCallback.js\";\nimport type { ITransferCallback } from \"./ITransferCallback.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 * When the caller's identity matches the local organization ID (implicit trust), an\n\t * agreement with full access is created and stored immediately, registered callbacks\n\t * are fired synchronously, and only `agreementId` is returned (no `negotiationId`).\n\t *\n\t * Otherwise the method returns immediately with a `negotiationId`. The caller is\n\t * notified 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 * The REST client does not support this method and throws a not supported error —\n\t * use ComponentFactory.get() for the in-process service.\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 trustPayload Trust payload for authentication (JWT or Verifiable Credential).\n\t * @returns For implicit trust: `{ agreementId }`. For external negotiation: `{ negotiationId }`.\n\t */\n\tnegotiateAgreement(\n\t\tdatasetId: string,\n\t\tofferId: string,\n\t\tproviderEndpoint: string,\n\t\ttrustPayload: unknown\n\t): Promise<{ negotiationId?: string; agreementId?: 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\tIDataspaceProtocolContractNegotiation | 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 * Register a callback to receive transfer process state change notifications.\n\t * Upstream modules register their callback here to be notified when a\n\t * consumer-initiated transfer changes state (STARTED, COMPLETED, SUSPENDED,\n\t * TERMINATED).\n\t *\n\t * The REST client does not support this method and throws a not supported error —\n\t * use ComponentFactory.get() for the in-process service.\n\t * @param key A unique key identifying this callback registration.\n\t * @param callback The callback interface to register.\n\t */\n\tregisterTransferCallback(key: string, callback: ITransferCallback): void;\n\n\t/**\n\t * Unregister a previously registered transfer callback.\n\t * @param key The key used when registering the callback.\n\t */\n\tunregisterTransferCallback(key: string): void;\n\n\t/**\n\t * Prepare a data transfer as a Consumer.\n\t * High-level convenience wrapper around the DSP Transfer Request protocol.\n\t *\n\t * This method:\n\t * 1. Generates a consumerPid.\n\t * 2. POSTs a TransferRequestMessage to the provider's DSP endpoint.\n\t * 3. Persists a local TransferProcess in REQUESTED state (only if provider accepts).\n\t * 4. Returns the consumerPid immediately.\n\t *\n\t * The caller is notified of subsequent state changes (STARTED, COMPLETED, etc.)\n\t * via the registered ITransferCallback. The transfer moves to STARTED when the\n\t * provider POSTs a TransferStartMessage back to this node's callback address.\n\t *\n\t * The REST client does not support this method and throws a not supported error —\n\t * use ComponentFactory.get() for the in-process service.\n\t *\n\t * @param agreementId The finalized agreement ID (from contract negotiation).\n\t * @param providerEndpoint The provider's DSP control plane base URL.\n\t * @param format The transfer format (e.g. \"HttpData-PULL\", \"HttpData-PUSH\").\n\t * @param trustPayload Trust payload for authentication.\n\t * @returns The consumerPid of the newly created TransferProcess.\n\t */\n\tprepareTransfer(\n\t\tagreementId: string,\n\t\tproviderEndpoint: string,\n\t\tformat: string,\n\t\ttrustPayload: unknown\n\t): Promise<{ consumerPid: string }>;\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 * @remarks Whether the transfer auto-starts is a provider-side decision (service config), not\n\t * something the consumer can request.\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 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\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferStartMessage | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Start a Transfer Process as the Provider.\n\t * Implements DSP Transfer Process Protocol.\n\t *\n\t * Builds a DSP TransferStartMessage for a transfer this node already accepted (created in\n\t * REQUESTED state by requestTransfer, or in SUSPENDED state to resume), transitions it to\n\t * STARTED, and POSTs the message to the consumer's callback address. Use this when the\n\t * provider did not auto-start the transfer (the autoStartTransfers config is off) and now\n\t * wants to start (or resume) it explicitly.\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-start-message\n\t *\n\t * @param pid The Process ID (consumerPid or providerPid) identifying the transfer to start.\n\t * @param trustPayload Trust payload proving the caller is the provider (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\ttransferStarted(\n\t\tpid: 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 A promise that resolves when the dataset has been updated in storage and the catalogue.\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 A promise that resolves when the dataset has been removed from storage and the catalogue.\n\t */\n\tdeleteAppDataset(id: string): Promise<void>;\n\n\t// ============================================================================\n\t// DSP VERSION DISCOVERY\n\t// ============================================================================\n\n\t/**\n\t * Return the Dataspace Protocol versions supported by this connector.\n\t * Used by the GET /.well-known/dspace-version discovery endpoint.\n\t * The path for each entry is derived from the connector's configured base route.\n\t * @returns The protocol version response listing all supported DSP versions.\n\t */\n\tgetProtocolVersions(): Promise<IDataspaceProtocolVersionResponse>;\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\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolContractNegotiation,\n\tIDataspaceProtocolContractNegotiationError,\n\tIDataspaceProtocolDataset,\n\tIDataspaceProtocolTransferCompletionMessage,\n\tIDataspaceProtocolTransferError,\n\tIDataspaceProtocolTransferProcess,\n\tIDataspaceProtocolTransferRequestMessage,\n\tIDataspaceProtocolTransferStartMessage,\n\tIDataspaceProtocolTransferSuspensionMessage,\n\tIDataspaceProtocolTransferTerminationMessage,\n\tIDataspaceProtocolVersionResponse\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { IDataspaceAppDataset } from \"./IDataspaceAppDataset.js\";\nimport type { INegotiationCallback } from \"./INegotiationCallback.js\";\nimport type { ITransferCallback } from \"./ITransferCallback.js\";\nimport type { ITransferQueryResult } from \"./ITransferQueryResult.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 * When the caller's identity matches the local organization ID (implicit trust), an\n\t * agreement with full access is created and stored immediately, registered callbacks\n\t * are fired synchronously, and only `agreementId` is returned (no `negotiationId`).\n\t *\n\t * Otherwise the method returns immediately with a `negotiationId`. The caller is\n\t * notified 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 * The REST client does not support this method and throws a not supported error —\n\t * use ComponentFactory.get() for the in-process service.\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 trustPayload Trust payload for authentication (JWT or Verifiable Credential).\n\t * @returns For implicit trust: `{ agreementId }`. For external negotiation: `{ negotiationId }`.\n\t */\n\tnegotiateAgreement(\n\t\tdatasetId: string,\n\t\tofferId: string,\n\t\tproviderEndpoint: string,\n\t\ttrustPayload: unknown\n\t): Promise<{ negotiationId?: string; agreementId?: 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\tIDataspaceProtocolContractNegotiation | 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 * Register a callback to receive transfer process state change notifications.\n\t * Upstream modules register their callback here to be notified when a\n\t * consumer-initiated transfer changes state (STARTED, COMPLETED, SUSPENDED,\n\t * TERMINATED).\n\t *\n\t * The REST client does not support this method and throws a not supported error —\n\t * use ComponentFactory.get() for the in-process service.\n\t * @param key A unique key identifying this callback registration.\n\t * @param callback The callback interface to register.\n\t */\n\tregisterTransferCallback(key: string, callback: ITransferCallback): void;\n\n\t/**\n\t * Unregister a previously registered transfer callback.\n\t * @param key The key used when registering the callback.\n\t */\n\tunregisterTransferCallback(key: string): void;\n\n\t/**\n\t * Prepare a data transfer as a Consumer.\n\t * High-level convenience wrapper around the DSP Transfer Request protocol.\n\t *\n\t * This method:\n\t * 1. Generates a consumerPid.\n\t * 2. POSTs a TransferRequestMessage to the provider's DSP endpoint.\n\t * 3. Persists a local TransferProcess in REQUESTED state (only if provider accepts).\n\t * 4. Returns the consumerPid immediately.\n\t *\n\t * The caller is notified of subsequent state changes (STARTED, COMPLETED, etc.)\n\t * via the registered ITransferCallback. The transfer moves to STARTED when the\n\t * provider POSTs a TransferStartMessage back to this node's callback address.\n\t *\n\t * The REST client does not support this method and throws a not supported error —\n\t * use ComponentFactory.get() for the in-process service.\n\t *\n\t * @param agreementId The finalized agreement ID (from contract negotiation).\n\t * @param providerEndpoint The provider's DSP control plane base URL.\n\t * @param format The transfer format (e.g. \"HttpData-PULL\", \"HttpData-PUSH\").\n\t * @param trustPayload Trust payload for authentication.\n\t * @returns The consumerPid of the newly created TransferProcess.\n\t */\n\tprepareTransfer(\n\t\tagreementId: string,\n\t\tproviderEndpoint: string,\n\t\tformat: string,\n\t\ttrustPayload: unknown\n\t): Promise<{ consumerPid: string }>;\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 * @remarks Whether the transfer auto-starts is a provider-side decision (service config), not\n\t * something the consumer can request.\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 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\ttrustPayload: unknown\n\t): Promise<IDataspaceProtocolTransferStartMessage | IDataspaceProtocolTransferError>;\n\n\t/**\n\t * Start a Transfer Process as the Provider.\n\t * Implements DSP Transfer Process Protocol.\n\t *\n\t * Builds a DSP TransferStartMessage for a transfer this node already accepted (created in\n\t * REQUESTED state by requestTransfer, or in SUSPENDED state to resume), transitions it to\n\t * STARTED, and POSTs the message to the consumer's callback address. Use this when the\n\t * provider did not auto-start the transfer (the autoStartTransfers config is off) and now\n\t * wants to start (or resume) it explicitly.\n\t *\n\t * DSP Spec: https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/#transfer-start-message\n\t *\n\t * @param pid The Process ID (consumerPid or providerPid) identifying the transfer to start.\n\t * @param trustPayload Trust payload proving the caller is the provider (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\ttransferStarted(\n\t\tpid: 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, except\n\t// completeTransfer which is consumer-initiated only\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 * Query Transfer Processes by agreement id.\n\t * Lets a caller check whether transfers already exist for an agreement\n\t * (e.g. before initiating a new one) without knowing any process ids.\n\t *\n\t * Role Performed: Consumer / Provider\n\t * Called by: Consumer orchestration before requesting a new transfer, or either\n\t * party inspecting the transfers attached to an agreement on their side.\n\t *\n\t * Results are limited to transfers where the authenticated caller is a party\n\t * (consumer or provider identity). A returned dataAddress is a point-in-time copy;\n\t * if its token has expired the data plane rejects it and a new start is required.\n\t * @param agreementId The agreement id to look up transfer processes for.\n\t * @param state Optional filter to a single transfer process state.\n\t * @param cursor Optional pagination cursor from a previous result page.\n\t * @param trustPayload Trust payload containing authorization information (JWT, VC, etc.).\n\t * @returns The matching transfer processes and a pagination cursor when more pages exist, empty when none match.\n\t */\n\tqueryDataTransfer(\n\t\tagreementId: string,\n\t\tstate: DataspaceProtocolTransferProcessStateType | undefined,\n\t\tcursor: string | undefined,\n\t\ttrustPayload: unknown\n\t): Promise<ITransferQueryResult>;\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 * @param options Optional dataset settings.\n\t * @param options.transferIdleTimeoutMs Optional idle window (ms) overriding the node-level idle\n\t * policy for this dataset's PULL transfers; 0 disables it for this dataset.\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\toptions?: { transferIdleTimeoutMs?: number }\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 * @param options Optional dataset settings.\n\t * @param options.transferIdleTimeoutMs Optional idle window (ms) overriding the node-level idle\n\t * policy for this dataset's PULL transfers; 0 disables it for this dataset.\n\t * @returns A promise that resolves when the dataset has been updated in storage and the catalogue.\n\t */\n\tupdateAppDataset(\n\t\tid: string,\n\t\tappId: string,\n\t\tdataset: IDataspaceProtocolDataset,\n\t\toptions?: { transferIdleTimeoutMs?: number }\n\t): 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 A promise that resolves when the dataset has been removed from storage and the catalogue.\n\t */\n\tdeleteAppDataset(id: string): Promise<void>;\n\n\t// ============================================================================\n\t// DSP VERSION DISCOVERY\n\t// ============================================================================\n\n\t/**\n\t * Return the Dataspace Protocol versions supported by this connector.\n\t * Used by the GET /.well-known/dspace-version discovery endpoint.\n\t * The path for each entry is derived from the connector's configured base route.\n\t * @returns The protocol version response listing all supported DSP versions.\n\t */\n\tgetProtocolVersions(): Promise<IDataspaceProtocolVersionResponse>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ITransferCallback.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/ITransferCallback.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolTransferStartMessage\n} from \"@twin.org/standards-dataspace-protocol\";\n\n/**\n * Callback interface for transfer process state change notifications.\n * Upstream modules register an implementation via\n * IDataspaceControlPlaneComponent.registerTransferCallback() to be\n * notified when a consumer-initiated transfer changes state.\n */\nexport interface ITransferCallback {\n\t/**\n\t * Called on every DSP-level state transition for the transfer process.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param state The new DSP state.\n\t * @returns Nothing.\n\t */\n\tonStateChanged(\n\t\tconsumerPid: string,\n\t\tstate: DataspaceProtocolTransferProcessStateType\n\t): Promise<void>;\n\n\t/**\n\t * Called when the provider sends a TransferStartMessage to the consumer.\n\t * The transfer is now STARTED and data can be accessed.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param message The full DSP TransferStartMessage (contains dataAddress for PULL transfers).\n\t * @returns Nothing.\n\t */\n\tonStarted(consumerPid: string, message: IDataspaceProtocolTransferStartMessage): Promise<void>;\n\n\t/**\n\t * Called when the transfer reaches COMPLETED state.\n\t * @param consumerPid The consumer-side process ID.\n\t * @returns Nothing.\n\t */\n\tonCompleted(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer is SUSPENDED.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param reason Optional suspension reason from the DSP message.\n\t * @returns Nothing.\n\t */\n\tonSuspended(consumerPid: string, reason?: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer is TERMINATED.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param reason Optional termination reason from the DSP message.\n\t * @returns Nothing.\n\t */\n\tonTerminated(consumerPid: string, reason?: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer fails. Optional, for parity with INegotiationCallback.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param reason The failure reason.\n\t * @returns Nothing.\n\t */\n\tonFailed?(consumerPid: string, reason: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer times out, i.e. the provider did not progress it (it sat in REQUESTED)\n\t * within the configured window. Optional: implement it to be notified specifically of a non-response\n\t * (otherwise the control plane falls back to `onFailed(consumerPid, \"transferStalled\")`).\n\t * @param consumerPid The consumer-side process ID.\n\t * @returns Nothing.\n\t */\n\tonTimeout?(consumerPid: string): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"ITransferCallback.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/ITransferCallback.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolTransferStartMessage\n} from \"@twin.org/standards-dataspace-protocol\";\n\n/**\n * Callback interface for transfer process state change notifications.\n * Upstream modules register an implementation via\n * IDataspaceControlPlaneComponent.registerTransferCallback() to be\n * notified when a consumer-initiated transfer changes state.\n */\nexport interface ITransferCallback {\n\t/**\n\t * Called on every DSP-level state transition for the transfer process.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param state The new DSP state.\n\t * @returns Nothing.\n\t */\n\tonStateChanged(\n\t\tconsumerPid: string,\n\t\tstate: DataspaceProtocolTransferProcessStateType\n\t): Promise<void>;\n\n\t/**\n\t * Called when the provider sends a TransferStartMessage to the consumer.\n\t * The transfer is now STARTED and data can be accessed.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param message The full DSP TransferStartMessage (contains dataAddress for PULL transfers).\n\t * @returns Nothing.\n\t */\n\tonStarted(consumerPid: string, message: IDataspaceProtocolTransferStartMessage): Promise<void>;\n\n\t/**\n\t * Called when the transfer reaches COMPLETED state.\n\t * @param consumerPid The consumer-side process ID.\n\t * @returns Nothing.\n\t */\n\tonCompleted(consumerPid: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer is SUSPENDED.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param reason Optional suspension reason from the DSP message.\n\t * @returns Nothing.\n\t */\n\tonSuspended(consumerPid: string, reason?: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer is TERMINATED.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param reason Optional termination reason from the DSP message.\n\t * @returns Nothing.\n\t */\n\tonTerminated(consumerPid: string, reason?: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer fails. Optional, for parity with INegotiationCallback.\n\t * @param consumerPid The consumer-side process ID.\n\t * @param reason The failure reason.\n\t * @returns Nothing.\n\t */\n\tonFailed?(consumerPid: string, reason: string): Promise<void>;\n\n\t/**\n\t * Called when the transfer times out: a consumer-side REQUESTED transfer the provider never\n\t * progressed, or a provider-side STARTED transfer idle beyond the configured window. Optional:\n\t * otherwise the control plane falls back to `onFailed` with the timeout reason.\n\t * @param consumerPid The consumer-side process ID.\n\t * @returns Nothing.\n\t */\n\tonTimeout?(consumerPid: string): Promise<void>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ITransferProcess.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/ITransferProcess.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IRightsManagementPolicy } from \"@twin.org/rights-management-models\";\nimport type {\n\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolDataAddress\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { TransferProcessRole } from \"./transferProcessRole.js\";\n\n/**\n * Transfer Process for internal storage.\n * Combines DSP protocol fields with internal TWIN fields.\n * This is NOT the DSP wire format (use ITransferProcess from standards for that).\n */\nexport interface ITransferProcess {\n\t/**\n\t * Internal UUID (primary key for entity storage).\n\t */\n\tid: string;\n\n\t// === DSP Protocol fields (public) ===\n\n\t/**\n\t * Consumer Process ID from the DSP protocol.\n\t * Refers to the transfer identifier on the Consumer side.\n\t */\n\tconsumerPid: string;\n\n\t/**\n\t * Provider Process ID from the DSP protocol.\n\t * Refers to the transfer identifier on the Provider side.\n\t */\n\tproviderPid: string;\n\n\t/**\n\t * Transfer Process state from the DSP protocol.\n\t * One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.\n\t */\n\tstate: DataspaceProtocolTransferProcessStateType;\n\n\t// === Internal TWIN fields (NOT in DSP protocol) ===\n\n\t/**\n\t * Agreement ID linking to the rights-management Agreement.\n\t * Used to resolve policies and permissions.\n\t */\n\tagreementId: string;\n\n\t/**\n\t * Dataset ID for DSC resolution.\n\t * Identifies the dataset being transferred.\n\t */\n\tdatasetId: string;\n\n\t/**\n\t * Offer ID from the original Catalog offer.\n\t */\n\tofferId: string;\n\n\t/**\n\t * Policies from the Agreement.\n\t * Used by DSC for runtime policy enforcement.\n\t */\n\tpolicies?: IRightsManagementPolicy[];\n\n\t/**\n\t * Consumer identity (DID or URI).\n\t * Used for auditing and access control.\n\t */\n\tconsumerIdentity?: string;\n\n\t/**\n\t * Provider identity (DID or URI).\n\t * Used for auditing.\n\t */\n\tproviderIdentity?: string;\n\n\t/**\n\t * This node's role in the transfer, captured at write time so state transitions and async delivery\n\t * can tell which party we are without inferring it from the matched PID. Optional for back-compat.\n\t */\n\tlocalRole?: TransferProcessRole;\n\n\t/**\n\t * Callback address for Consumer notifications.\n\t * URI where messages to the Consumer should be sent.\n\t */\n\tcallbackAddress?: string;\n\n\t/**\n\t * The organization that owns this transfer process, captured at write time so async\n\t * delivery tasks and delayed state transitions can re-enter the right organization context.\n\t */\n\torganizationIdentity: string;\n\n\t/**\n\t * Data format from the Dataset Distribution.\n\t * Specified by a Distribution for the Dataset associated with the Agreement.\n\t */\n\tformat?: string;\n\n\t/**\n\t * Data address for consumer-initiated push transfers (HttpData-PUSH).\n\t * Contains the consumer's /inbox endpoint as supplied in the TransferRequestMessage.\n\t * Absent for PULL (HttpData-PULL) and provider-initiated push (HttpData-POST),\n\t * where the consumer deliberately omits a dataAddress.\n\t */\n\tdataAddress?: IDataspaceProtocolDataAddress;\n\n\t/**\n\t * Creation timestamp.\n\t */\n\tdateCreated: Date;\n\n\t/**\n\t * Last update timestamp.\n\t */\n\tdateModified: Date;\n}\n"]}
1
+ {"version":3,"file":"ITransferProcess.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/ITransferProcess.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IRightsManagementPolicy } from \"@twin.org/rights-management-models\";\nimport type {\n\tDataspaceProtocolTransferProcessStateType,\n\tIDataspaceProtocolDataAddress\n} from \"@twin.org/standards-dataspace-protocol\";\nimport type { TransferProcessRole } from \"./transferProcessRole.js\";\n\n/**\n * Transfer Process for internal storage.\n * Combines DSP protocol fields with internal TWIN fields.\n * This is NOT the DSP wire format (use ITransferProcess from standards for that).\n */\nexport interface ITransferProcess {\n\t/**\n\t * Internal UUID (primary key for entity storage).\n\t */\n\tid: string;\n\n\t// === DSP Protocol fields (public) ===\n\n\t/**\n\t * Consumer Process ID from the DSP protocol.\n\t * Refers to the transfer identifier on the Consumer side.\n\t */\n\tconsumerPid: string;\n\n\t/**\n\t * Provider Process ID from the DSP protocol.\n\t * Refers to the transfer identifier on the Provider side.\n\t */\n\tproviderPid: string;\n\n\t/**\n\t * Transfer Process state from the DSP protocol.\n\t * One of: REQUESTED, STARTED, COMPLETED, SUSPENDED, TERMINATED.\n\t */\n\tstate: DataspaceProtocolTransferProcessStateType;\n\n\t// === Internal TWIN fields (NOT in DSP protocol) ===\n\n\t/**\n\t * Agreement ID linking to the rights-management Agreement.\n\t * Used to resolve policies and permissions.\n\t */\n\tagreementId: string;\n\n\t/**\n\t * Dataset ID for DSC resolution.\n\t * Identifies the dataset being transferred.\n\t */\n\tdatasetId: string;\n\n\t/**\n\t * Offer ID from the original Catalog offer.\n\t */\n\tofferId: string;\n\n\t/**\n\t * Policies from the Agreement.\n\t * Used by DSC for runtime policy enforcement.\n\t */\n\tpolicies?: IRightsManagementPolicy[];\n\n\t/**\n\t * Consumer identity (DID or URI).\n\t * Used for auditing and access control.\n\t */\n\tconsumerIdentity?: string;\n\n\t/**\n\t * Provider identity (DID or URI).\n\t * Used for auditing.\n\t */\n\tproviderIdentity?: string;\n\n\t/**\n\t * This node's role in the transfer, captured at write time so state transitions and async delivery\n\t * can tell which party we are without inferring it from the matched PID. Optional for back-compat.\n\t */\n\tlocalRole?: TransferProcessRole;\n\n\t/**\n\t * Callback address for Consumer notifications.\n\t * URI where messages to the Consumer should be sent.\n\t */\n\tcallbackAddress?: string;\n\n\t/**\n\t * The organization that owns this transfer process, captured at write time so async\n\t * delivery tasks and delayed state transitions can re-enter the right organization context.\n\t */\n\torganizationIdentity: string;\n\n\t/**\n\t * Data format from the Dataset Distribution.\n\t * Specified by a Distribution for the Dataset associated with the Agreement.\n\t */\n\tformat?: string;\n\n\t/**\n\t * Data address for the transfer: the consumer's inbox for PUSH, or the\n\t * provider-built address persisted at start for PULL/POST; may expire while STARTED.\n\t */\n\tdataAddress?: IDataspaceProtocolDataAddress;\n\n\t/**\n\t * Creation timestamp.\n\t */\n\tdateCreated: Date;\n\n\t/**\n\t * Last update timestamp.\n\t */\n\tdateModified: Date;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ITransferQueryResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITransferQueryResult.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/ITransferQueryResult.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ITransferProcess } from \"./ITransferProcess.js\";\n\n/**\n * Result of querying Transfer Processes by agreement.\n */\nexport interface ITransferQueryResult {\n\t/**\n\t * The transfer processes matching the query, empty when none match.\n\t */\n\ttransfers: ITransferProcess[];\n\n\t/**\n\t * Pagination cursor for retrieving the next page, omitted when no more results exist.\n\t */\n\tcursor?: string;\n}\n"]}
@@ -0,0 +1,14 @@
1
+ // Copyright 2026 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ /**
4
+ * Machine-readable codes set on provider-initiated TransferTerminationMessages
5
+ * by the control plane's transfer lifecycle policies.
6
+ */
7
+ // eslint-disable-next-line @typescript-eslint/naming-convention
8
+ export const TransferTerminationCode = {
9
+ /**
10
+ * A Provider-side STARTED transfer had no data-plane activity within the configured idle window.
11
+ */
12
+ IdleTimeout: "idleTimeout"
13
+ };
14
+ //# sourceMappingURL=transferTerminationCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferTerminationCode.js","sourceRoot":"","sources":["../../../../src/models/controlPlane/transferTerminationCode.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;;GAGG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC;;OAEG;IACH,WAAW,EAAE,aAAa;CACjB,CAAC","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Machine-readable codes set on provider-initiated TransferTerminationMessages\n * by the control plane's transfer lifecycle policies.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const TransferTerminationCode = {\n\t/**\n\t * A Provider-side STARTED transfer had no data-plane activity within the configured idle window.\n\t */\n\tIdleTimeout: \"idleTimeout\"\n} as const;\n\n/**\n * Type for TransferTerminationCode values.\n */\nexport type TransferTerminationCode =\n\t(typeof TransferTerminationCode)[keyof typeof TransferTerminationCode];\n"]}
@@ -28,6 +28,11 @@ export declare class DataspaceAppDataset {
28
28
  dataset: {
29
29
  [key: string]: unknown;
30
30
  };
31
+ /**
32
+ * Idle window (ms) for this dataset's PULL transfers, overriding the node-level
33
+ * providerTransferIdleTimeoutMs; 0 disables the idle policy for this dataset.
34
+ */
35
+ transferIdleTimeoutMs?: number;
31
36
  /**
32
37
  * Creation timestamp (ISO string format).
33
38
  */
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Tenant-supplied Dataset shape persisted by the Control Plane, version 0.
3
+ */
4
+ export declare class DataspaceAppDatasetV0 {
5
+ /**
6
+ * The unique identifier for the dataset.
7
+ */
8
+ id: string;
9
+ /**
10
+ * The identity of the organization that owns this entity.
11
+ */
12
+ organizationIdentity: 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.
17
+ */
18
+ tenantId?: string;
19
+ /**
20
+ * The dataspace app that this dataset belongs to. Matches the app's
21
+ * registered name in `DataspaceAppFactory` (typically the app's URI).
22
+ */
23
+ appId: string;
24
+ /**
25
+ * The user-controlled JSON-LD dataset payload. Stored as an
26
+ * opaque object and validated/populated at publish time.
27
+ */
28
+ dataset: {
29
+ [key: string]: unknown;
30
+ };
31
+ /**
32
+ * Creation timestamp (ISO string format).
33
+ */
34
+ dateCreated: string;
35
+ /**
36
+ * Last update timestamp (ISO string format).
37
+ */
38
+ dateModified: string;
39
+ }
@@ -76,7 +76,8 @@ export declare class TransferProcess {
76
76
  */
77
77
  policies?: IRightsManagementPolicy[];
78
78
  /**
79
- * Data address for push mode transfers (stored as JSON).
79
+ * Data address for the transfer (stored as JSON): the consumer's inbox for PUSH, or the
80
+ * provider-built address persisted at start for PULL/POST; may expire while STARTED.
80
81
  */
81
82
  dataAddress?: IDataspaceProtocolDataAddress;
82
83
  }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Records the consumer's first successful retrieval for a transfer.
3
+ * Written by the Data Plane, read by the Control Plane's one-shot policy sweep.
4
+ */
5
+ export declare class TransferRetrieval {
6
+ /**
7
+ * The consumer PID of the transfer, primary key.
8
+ */
9
+ consumerPid: string;
10
+ /**
11
+ * When the first successful retrieval happened (ISO string format).
12
+ */
13
+ dateFirstRetrieved: string;
14
+ /**
15
+ * When the most recent successful retrieval happened (ISO string format).
16
+ */
17
+ dateLastRetrieved: string;
18
+ }
@@ -1,5 +1,7 @@
1
1
  export * from "./entities/dataspaceAppDataset.js";
2
+ export * from "./entities/dataspaceAppDatasetV0.js";
2
3
  export * from "./entities/transferProcess.js";
4
+ export * from "./entities/transferRetrieval.js";
3
5
  export * from "./models/controlPlane/api/ITransferContextResponse.js";
4
6
  export * from "./models/controlPlane/dataspaceControlPlaneMetricIds.js";
5
7
  export * from "./models/controlPlane/dataspaceControlPlaneMetrics.js";
@@ -10,7 +12,9 @@ export * from "./models/controlPlane/INegotiationCallback.js";
10
12
  export * from "./models/controlPlane/ITransferCallback.js";
11
13
  export * from "./models/controlPlane/ITransferContext.js";
12
14
  export * from "./models/controlPlane/ITransferProcess.js";
15
+ export * from "./models/controlPlane/ITransferQueryResult.js";
13
16
  export * from "./models/controlPlane/transferProcessRole.js";
17
+ export * from "./models/controlPlane/transferTerminationCode.js";
14
18
  export * from "./models/dataPlane/dataspaceDataPlaneMetricIds.js";
15
19
  export * from "./models/dataPlane/dataspaceDataPlaneMetrics.js";
16
20
  export * from "./models/dataPlane/IDataspaceDataPlaneComponent.js";
@@ -27,5 +27,10 @@ export interface IAppDatasetCreateRequest {
27
27
  * may be omitted — the Control Plane fills them in at publish time.
28
28
  */
29
29
  dataset: IDataspaceProtocolDataset;
30
+ /**
31
+ * Optional idle window (ms) overriding the node-level idle policy for this
32
+ * dataset's PULL transfers; 0 disables it for this dataset.
33
+ */
34
+ transferIdleTimeoutMs?: number;
30
35
  };
31
36
  }