@tsg-dsp/tsg-sdk 0.0.0-stage → 0.21.0

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 (222) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +362 -2
  3. package/dist/.generated/control-plane.d.ts +7825 -0
  4. package/dist/.generated/sso-bridge.d.ts +3999 -0
  5. package/dist/.generated/wallet.d.ts +6248 -0
  6. package/dist/auth/auth.provider.d.ts +49 -0
  7. package/dist/auth/auth.provider.d.ts.map +1 -0
  8. package/dist/auth/auth.provider.js +166 -0
  9. package/dist/auth/auth.provider.js.map +1 -0
  10. package/dist/auth/auth.types.d.ts +27 -0
  11. package/dist/auth/auth.types.d.ts.map +1 -0
  12. package/dist/auth/auth.types.js +2 -0
  13. package/dist/auth/auth.types.js.map +1 -0
  14. package/dist/auth/index.d.ts +3 -0
  15. package/dist/auth/index.d.ts.map +1 -0
  16. package/dist/auth/index.js +3 -0
  17. package/dist/auth/index.js.map +1 -0
  18. package/dist/browser.d.ts +1245 -0
  19. package/dist/browser.d.ts.map +1 -0
  20. package/dist/browser.js +228 -0
  21. package/dist/browser.js.map +1 -0
  22. package/dist/catalog/catalog.sdk.d.ts +149 -0
  23. package/dist/catalog/catalog.sdk.d.ts.map +1 -0
  24. package/dist/catalog/catalog.sdk.js +155 -0
  25. package/dist/catalog/catalog.sdk.js.map +1 -0
  26. package/dist/catalog/index.d.ts +2 -0
  27. package/dist/catalog/index.d.ts.map +1 -0
  28. package/dist/catalog/index.js +2 -0
  29. package/dist/catalog/index.js.map +1 -0
  30. package/dist/client.d.ts +43 -0
  31. package/dist/client.d.ts.map +1 -0
  32. package/dist/client.js +109 -0
  33. package/dist/client.js.map +1 -0
  34. package/dist/config/index.d.ts +2 -0
  35. package/dist/config/index.d.ts.map +1 -0
  36. package/dist/config/index.js +2 -0
  37. package/dist/config/index.js.map +1 -0
  38. package/dist/config/sdk.config.d.ts +97 -0
  39. package/dist/config/sdk.config.d.ts.map +1 -0
  40. package/dist/config/sdk.config.js +2 -0
  41. package/dist/config/sdk.config.js.map +1 -0
  42. package/dist/index.d.ts +18 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +25 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/metadata/index.d.ts +2 -0
  47. package/dist/metadata/index.d.ts.map +1 -0
  48. package/dist/metadata/index.js +2 -0
  49. package/dist/metadata/index.js.map +1 -0
  50. package/dist/metadata/metadata.sdk.d.ts +114 -0
  51. package/dist/metadata/metadata.sdk.d.ts.map +1 -0
  52. package/dist/metadata/metadata.sdk.js +145 -0
  53. package/dist/metadata/metadata.sdk.js.map +1 -0
  54. package/dist/negotiations/index.d.ts +2 -0
  55. package/dist/negotiations/index.d.ts.map +1 -0
  56. package/dist/negotiations/index.js +2 -0
  57. package/dist/negotiations/index.js.map +1 -0
  58. package/dist/negotiations/negotiations.sdk.d.ts +113 -0
  59. package/dist/negotiations/negotiations.sdk.d.ts.map +1 -0
  60. package/dist/negotiations/negotiations.sdk.js +146 -0
  61. package/dist/negotiations/negotiations.sdk.js.map +1 -0
  62. package/dist/requirements/index.d.ts +2 -0
  63. package/dist/requirements/index.d.ts.map +1 -0
  64. package/dist/requirements/index.js +2 -0
  65. package/dist/requirements/index.js.map +1 -0
  66. package/dist/requirements/requirements.sdk.d.ts +52 -0
  67. package/dist/requirements/requirements.sdk.d.ts.map +1 -0
  68. package/dist/requirements/requirements.sdk.js +123 -0
  69. package/dist/requirements/requirements.sdk.js.map +1 -0
  70. package/dist/sso/index.d.ts +3 -0
  71. package/dist/sso/index.d.ts.map +1 -0
  72. package/dist/sso/index.js +3 -0
  73. package/dist/sso/index.js.map +1 -0
  74. package/dist/sso/sso-management.sdk.d.ts +96 -0
  75. package/dist/sso/sso-management.sdk.d.ts.map +1 -0
  76. package/dist/sso/sso-management.sdk.js +152 -0
  77. package/dist/sso/sso-management.sdk.js.map +1 -0
  78. package/dist/sso/sso.sdk.d.ts +75 -0
  79. package/dist/sso/sso.sdk.d.ts.map +1 -0
  80. package/dist/sso/sso.sdk.js +149 -0
  81. package/dist/sso/sso.sdk.js.map +1 -0
  82. package/dist/tenants/tenant-management.sdk.d.ts +48 -0
  83. package/dist/tenants/tenant-management.sdk.d.ts.map +1 -0
  84. package/dist/tenants/tenant-management.sdk.js +107 -0
  85. package/dist/tenants/tenant-management.sdk.js.map +1 -0
  86. package/dist/transfers/index.d.ts +2 -0
  87. package/dist/transfers/index.d.ts.map +1 -0
  88. package/dist/transfers/index.js +2 -0
  89. package/dist/transfers/index.js.map +1 -0
  90. package/dist/transfers/transfers.sdk.d.ts +174 -0
  91. package/dist/transfers/transfers.sdk.d.ts.map +1 -0
  92. package/dist/transfers/transfers.sdk.js +200 -0
  93. package/dist/transfers/transfers.sdk.js.map +1 -0
  94. package/dist/tsg-sdk.d.ts +68 -0
  95. package/dist/tsg-sdk.d.ts.map +1 -0
  96. package/dist/tsg-sdk.js +145 -0
  97. package/dist/tsg-sdk.js.map +1 -0
  98. package/dist/utils/errors.d.ts +67 -0
  99. package/dist/utils/errors.d.ts.map +1 -0
  100. package/dist/utils/errors.js +79 -0
  101. package/dist/utils/errors.js.map +1 -0
  102. package/dist/utils/index.d.ts +5 -0
  103. package/dist/utils/index.d.ts.map +1 -0
  104. package/dist/utils/index.js +5 -0
  105. package/dist/utils/index.js.map +1 -0
  106. package/dist/utils/polling.d.ts +20 -0
  107. package/dist/utils/polling.d.ts.map +1 -0
  108. package/dist/utils/polling.js +35 -0
  109. package/dist/utils/polling.js.map +1 -0
  110. package/dist/utils/reason.d.ts +16 -0
  111. package/dist/utils/reason.d.ts.map +1 -0
  112. package/dist/utils/reason.js +34 -0
  113. package/dist/utils/reason.js.map +1 -0
  114. package/dist/utils/shape-validation.d.ts +59 -0
  115. package/dist/utils/shape-validation.d.ts.map +1 -0
  116. package/dist/utils/shape-validation.js +85 -0
  117. package/dist/utils/shape-validation.js.map +1 -0
  118. package/dist/utils/validate.d.ts +47 -0
  119. package/dist/utils/validate.d.ts.map +1 -0
  120. package/dist/utils/validate.js +68 -0
  121. package/dist/utils/validate.js.map +1 -0
  122. package/dist/vendor/common-dtos/abac.policy.d.ts +69 -0
  123. package/dist/vendor/common-dtos/abac.policy.js +5 -0
  124. package/dist/vendor/common-dtos/audit.types.d.ts +74 -0
  125. package/dist/vendor/common-dtos/audit.types.js +8 -0
  126. package/dist/vendor/common-dtos/credential-requirements.d.ts +18 -0
  127. package/dist/vendor/common-dtos/credential-requirements.dto.d.ts +46 -0
  128. package/dist/vendor/common-dtos/credential-requirements.dto.js +250 -0
  129. package/dist/vendor/common-dtos/credential-requirements.js +180 -0
  130. package/dist/vendor/common-dtos/dataplane.dto.d.ts +5 -0
  131. package/dist/vendor/common-dtos/dataplane.dto.js +28 -0
  132. package/dist/vendor/common-dtos/dcp.dto.d.ts +89 -0
  133. package/dist/vendor/common-dtos/dcp.dto.js +489 -0
  134. package/dist/vendor/common-dtos/dcql.dto.d.ts +88 -0
  135. package/dist/vendor/common-dtos/dcql.dto.js +449 -0
  136. package/dist/vendor/common-dtos/did.schemas.d.ts +39 -0
  137. package/dist/vendor/common-dtos/did.schemas.js +259 -0
  138. package/dist/vendor/common-dtos/index.d.ts +19 -0
  139. package/dist/vendor/common-dtos/index.js +19 -0
  140. package/dist/vendor/common-dtos/metadata.dto.d.ts +5 -0
  141. package/dist/vendor/common-dtos/metadata.dto.js +29 -0
  142. package/dist/vendor/common-dtos/negotiations.dto.d.ts +28 -0
  143. package/dist/vendor/common-dtos/negotiations.dto.js +204 -0
  144. package/dist/vendor/common-dtos/permission-resources.d.ts +3 -0
  145. package/dist/vendor/common-dtos/permission-resources.js +18 -0
  146. package/dist/vendor/common-dtos/permissions.d.ts +242 -0
  147. package/dist/vendor/common-dtos/permissions.js +409 -0
  148. package/dist/vendor/common-dtos/presentation.request.dto.d.ts +8 -0
  149. package/dist/vendor/common-dtos/presentation.request.dto.js +54 -0
  150. package/dist/vendor/common-dtos/presentation.status.dto.d.ts +12 -0
  151. package/dist/vendor/common-dtos/presentation.status.dto.js +82 -0
  152. package/dist/vendor/common-dtos/presentationdefinition.dto.d.ts +74 -0
  153. package/dist/vendor/common-dtos/presentationdefinition.dto.js +447 -0
  154. package/dist/vendor/common-dtos/signatures.dto.d.ts +31 -0
  155. package/dist/vendor/common-dtos/signatures.dto.js +209 -0
  156. package/dist/vendor/common-dtos/transfer.dto.d.ts +16 -0
  157. package/dist/vendor/common-dtos/transfer.dto.js +101 -0
  158. package/dist/vendor/common-dtos/utils.swagger.d.ts +12 -0
  159. package/dist/vendor/common-dtos/utils.swagger.js +62 -0
  160. package/dist/vendor/control-plane-dtos/index.d.ts +4 -0
  161. package/dist/vendor/control-plane-dtos/index.js +4 -0
  162. package/dist/vendor/control-plane-dtos/registry/registry.dto.d.ts +4 -0
  163. package/dist/vendor/control-plane-dtos/registry/registry.dto.js +25 -0
  164. package/dist/vendor/control-plane-dtos/registry/registry.search.dto.d.ts +28 -0
  165. package/dist/vendor/control-plane-dtos/registry/registry.search.dto.js +126 -0
  166. package/dist/vendor/control-plane-dtos/ssi/verifiablePresentations.dto.d.ts +9 -0
  167. package/dist/vendor/control-plane-dtos/ssi/verifiablePresentations.dto.js +43 -0
  168. package/dist/vendor/control-plane-dtos/status/status.dto.d.ts +37 -0
  169. package/dist/vendor/control-plane-dtos/status/status.dto.js +172 -0
  170. package/dist/vendor/sso-bridge-dtos/clients.dto.d.ts +25 -0
  171. package/dist/vendor/sso-bridge-dtos/clients.dto.js +147 -0
  172. package/dist/vendor/sso-bridge-dtos/grants.d.ts +4 -0
  173. package/dist/vendor/sso-bridge-dtos/grants.js +7 -0
  174. package/dist/vendor/sso-bridge-dtos/index.d.ts +5 -0
  175. package/dist/vendor/sso-bridge-dtos/index.js +5 -0
  176. package/dist/vendor/sso-bridge-dtos/tenant.dto.d.ts +70 -0
  177. package/dist/vendor/sso-bridge-dtos/tenant.dto.js +1 -0
  178. package/dist/vendor/sso-bridge-dtos/users.dto.d.ts +42 -0
  179. package/dist/vendor/sso-bridge-dtos/users.dto.js +173 -0
  180. package/dist/vendor/tenant-dtos/authorization.dto.d.ts +46 -0
  181. package/dist/vendor/tenant-dtos/authorization.dto.js +5 -0
  182. package/dist/vendor/tenant-dtos/consumer.dto.d.ts +29 -0
  183. package/dist/vendor/tenant-dtos/consumer.dto.js +1 -0
  184. package/dist/vendor/tenant-dtos/fixtures.d.ts +15 -0
  185. package/dist/vendor/tenant-dtos/fixtures.js +48 -0
  186. package/dist/vendor/tenant-dtos/index.d.ts +8 -0
  187. package/dist/vendor/tenant-dtos/index.js +8 -0
  188. package/dist/vendor/tenant-dtos/management.dto.d.ts +137 -0
  189. package/dist/vendor/tenant-dtos/management.dto.js +1 -0
  190. package/dist/vendor/tenant-dtos/membership.dto.d.ts +22 -0
  191. package/dist/vendor/tenant-dtos/membership.dto.js +7 -0
  192. package/dist/vendor/tenant-dtos/principal.dto.d.ts +13 -0
  193. package/dist/vendor/tenant-dtos/principal.dto.js +6 -0
  194. package/dist/vendor/tenant-dtos/provisioning.dto.d.ts +47 -0
  195. package/dist/vendor/tenant-dtos/provisioning.dto.js +1 -0
  196. package/dist/vendor/tenant-dtos/service-binding.dto.d.ts +9 -0
  197. package/dist/vendor/tenant-dtos/service-binding.dto.js +1 -0
  198. package/dist/vendor/tenant-dtos/tenant.dto.d.ts +15 -0
  199. package/dist/vendor/tenant-dtos/tenant.dto.js +1 -0
  200. package/dist/vendor/wallet-dtos/clients.dto.d.ts +21 -0
  201. package/dist/vendor/wallet-dtos/clients.dto.js +13 -0
  202. package/dist/vendor/wallet-dtos/credentials.dto.d.ts +31 -0
  203. package/dist/vendor/wallet-dtos/credentials.dto.js +46 -0
  204. package/dist/vendor/wallet-dtos/index.d.ts +6 -0
  205. package/dist/vendor/wallet-dtos/index.js +6 -0
  206. package/dist/vendor/wallet-dtos/issuance.dto.d.ts +237 -0
  207. package/dist/vendor/wallet-dtos/issuance.dto.js +1139 -0
  208. package/dist/vendor/wallet-dtos/scopes.dto.d.ts +24 -0
  209. package/dist/vendor/wallet-dtos/scopes.dto.js +151 -0
  210. package/dist/vendor/wallet-dtos/status.dto.d.ts +35 -0
  211. package/dist/vendor/wallet-dtos/status.dto.js +169 -0
  212. package/dist/vendor/wallet-dtos/utils/schema-converter.d.ts +13 -0
  213. package/dist/vendor/wallet-dtos/utils/schema-converter.js +42 -0
  214. package/dist/wallet/index.d.ts +2 -0
  215. package/dist/wallet/index.d.ts.map +1 -0
  216. package/dist/wallet/index.js +2 -0
  217. package/dist/wallet/index.js.map +1 -0
  218. package/dist/wallet/wallet.sdk.d.ts +285 -0
  219. package/dist/wallet/wallet.sdk.d.ts.map +1 -0
  220. package/dist/wallet/wallet.sdk.js +384 -0
  221. package/dist/wallet/wallet.sdk.js.map +1 -0
  222. package/package.json +79 -3
@@ -0,0 +1,174 @@
1
+ import { DataPlaneAddressDto, TransferDetailDto, TransferProcess, TransferProcessDto } from "@tsg-dsp/common-dsp";
2
+ import type { ControlPlaneClient } from "../client.js";
3
+ import type { PollingOptions } from "../utils/polling.js";
4
+ export interface DataAccessOptions {
5
+ forceRefresh?: boolean;
6
+ }
7
+ /**
8
+ * Request, monitor, and control Dataspace Protocol data transfer processes.
9
+ *
10
+ * A transfer process follows the DSP state machine:
11
+ * `REQUESTED → STARTED → COMPLETED` (or `SUSPENDED` / `TERMINATED`).
12
+ *
13
+ * This module provides methods to:
14
+ * - Initiate transfers under an existing contract agreement.
15
+ * - Start, complete, suspend, or terminate transfers.
16
+ * - Poll for state transitions (e.g. wait until a transfer has started).
17
+ * @example
18
+ * ```ts
19
+ * const transfer = await sdk.transfers.transferAndWaitForStart(
20
+ * agreementId,
21
+ * participantId,
22
+ * remoteAddress,
23
+ * "application/json",
24
+ * );
25
+ * console.log(transfer.state); // "STARTED"
26
+ * ```
27
+ */
28
+ export declare class TransferSdk {
29
+ private readonly client;
30
+ constructor(client: ControlPlaneClient);
31
+ /**
32
+ * Resolve current HTTP credentials, renewing them through the control plane.
33
+ * The caller sends the data request; the SDK never retries it automatically.
34
+ * @param processId - The consumer transfer process ID.
35
+ * @param options - Set forceRefresh after a rejected access token.
36
+ * @returns The endpoint and headers for the next request.
37
+ */
38
+ dataAccess(processId: string, options?: DataAccessOptions): Promise<{
39
+ endpoint: string;
40
+ headers: {
41
+ [x: string]: string;
42
+ };
43
+ }>;
44
+ /**
45
+ * List all transfer processes known to the control plane.
46
+ * @returns Validated transfer details.
47
+ */
48
+ listTransfers(): Promise<TransferDetailDto[]>;
49
+ /**
50
+ * Initiate a new data transfer under an existing contract agreement.
51
+ * @param agreementId - The agreement ID that authorizes this transfer.
52
+ * @param participantId - The remote participant's ID (DID), used as audience.
53
+ * @param remoteAddress - The remote participant's DSP protocol endpoint.
54
+ * @param format - The desired transfer format (e.g. `"application/json"`).
55
+ * @param returnDto - When `true`, returns the raw {@link TransferProcessDto}.
56
+ * @returns The created {@link TransferProcess} (or raw DTO).
57
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.REQUEST_FAILED} if the request is rejected.
58
+ */
59
+ requestTransfer(agreementId: string, participantId: string, remoteAddress: string, format: string, returnDto: true): Promise<TransferProcessDto>;
60
+ requestTransfer(agreementId: string, participantId: string, remoteAddress: string, format: string, returnDto?: false): Promise<TransferProcess>;
61
+ /**
62
+ * List the dataflows tracked for a transfer process.
63
+ *
64
+ * Each dataflow represents the data plane's execution of the transfer, with
65
+ * its own signaling state (`PREPARED`, `STARTED`, …) and pull address.
66
+ * @param processId - The transfer process ID.
67
+ * @returns The dataflows tracked for the transfer.
68
+ */
69
+ getTransferDataflows(processId: string): Promise<{
70
+ id: string;
71
+ transferProcessId: string;
72
+ dataPlaneId: string;
73
+ datasetId?: string;
74
+ state: "INITIALIZED" | "PREPARING" | "PREPARED" | "STARTING" | "STARTED" | "SUSPENDED" | "COMPLETED" | "TERMINATED";
75
+ dataAddress?: {
76
+ "@type": "DataAddress";
77
+ endpointType: string;
78
+ endpoint?: string;
79
+ endpointProperties?: {
80
+ "@type": "EndpointProperty";
81
+ name: string;
82
+ value: string;
83
+ }[] | undefined;
84
+ } | undefined;
85
+ }[]>;
86
+ /**
87
+ * Get the details of a transfer process by its process ID.
88
+ * @param processId - The unique transfer process ID.
89
+ * @returns A validated {@link TransferDetailDto}.
90
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.NOT_FOUND} if the transfer does not exist.
91
+ */
92
+ getTransfer(processId: string): Promise<TransferDetailDto>;
93
+ /**
94
+ * Start a transfer process (provider-side).
95
+ *
96
+ * Transitions the transfer from `REQUESTED` to `STARTED`.
97
+ * @param processId - The transfer process ID.
98
+ * @param dataAddress - Optional data plane address to use for the transfer.
99
+ * @returns The start response.
100
+ */
101
+ startTransfer(processId: string, dataAddress?: DataPlaneAddressDto): Promise<{
102
+ status?: string;
103
+ }>;
104
+ /**
105
+ * Mark a transfer process as completed.
106
+ * @param processId - The transfer process ID.
107
+ * @returns The completion response.
108
+ */
109
+ completeTransfer(processId: string): Promise<{
110
+ status?: string;
111
+ }>;
112
+ /**
113
+ * Terminate a transfer process.
114
+ * @param processId - The transfer process ID.
115
+ * @param code - Optional machine-readable termination reason code.
116
+ * @param reason - Optional human-readable termination reason.
117
+ * @returns The termination response.
118
+ */
119
+ terminateTransfer(processId: string, code?: string, reason?: string): Promise<{}>;
120
+ /**
121
+ * Suspend a transfer process.
122
+ *
123
+ * A suspended transfer can later be resumed or terminated.
124
+ * @param processId - The transfer process ID.
125
+ * @param reason - Optional human-readable suspension reason.
126
+ * @returns The suspension response.
127
+ */
128
+ suspendTransfer(processId: string, reason?: string): Promise<{
129
+ status?: string;
130
+ }>;
131
+ /**
132
+ * Poll until a transfer reaches the given target state.
133
+ * @param processId - The transfer process ID.
134
+ * @param targetState - The desired state (e.g. `"STARTED"`, `"COMPLETED"`).
135
+ * @param options - Polling interval and retry configuration.
136
+ * @returns The {@link TransferDetailDto} once the target state is reached.
137
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the state is not reached within the configured retries.
138
+ */
139
+ waitForState(processId: string, targetState: TransferDetailDto["state"], options?: PollingOptions): Promise<TransferDetailDto>;
140
+ /**
141
+ * Poll until a transfer reaches the `STARTED` state.
142
+ *
143
+ * Shorthand for `waitForState(processId, "STARTED", options)`.
144
+ * @param processId - The transfer process ID.
145
+ * @param options - Polling interval and retry configuration.
146
+ * @returns The {@link TransferDetailDto} with `state === "STARTED"`.
147
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the state is not reached in time.
148
+ */
149
+ waitForStart(processId: string, options?: PollingOptions): Promise<TransferDetailDto>;
150
+ /**
151
+ * Poll until a transfer reaches the `COMPLETED` state.
152
+ *
153
+ * Shorthand for `waitForState(processId, "COMPLETED", options)`.
154
+ * @param processId - The transfer process ID.
155
+ * @param options - Polling interval and retry configuration.
156
+ * @returns The {@link TransferDetailDto} with `state === "COMPLETED"`.
157
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the state is not reached in time.
158
+ */
159
+ waitForCompletion(processId: string, options?: PollingOptions): Promise<TransferDetailDto>;
160
+ /**
161
+ * Initiate a transfer and wait for it to start in one call.
162
+ *
163
+ * Combines {@link requestTransfer} and {@link waitForStart}.
164
+ * @param agreementId - The agreement ID that authorizes this transfer.
165
+ * @param participantId - The remote participant's ID (DID).
166
+ * @param remoteAddress - The remote participant's DSP protocol endpoint.
167
+ * @param format - The desired transfer format.
168
+ * @param pollingOptions - Optional polling configuration.
169
+ * @returns The {@link TransferDetailDto} once the transfer has started.
170
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the transfer does not start in time.
171
+ */
172
+ transferAndWaitForStart(agreementId: string, participantId: string, remoteAddress: string, format: string, pollingOptions?: PollingOptions): Promise<TransferDetailDto>;
173
+ }
174
+ //# sourceMappingURL=transfers.sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfers.sdk.d.ts","sourceRoot":"","sources":["../../src/transfers/transfers.sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,kBAAkB,EAAI;IAE3D;;;;;;OAMG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;;;;;OASlE;IAED;;;OAGG;IACG,aAAa,iCAGlB;IAED;;;;;;;;;OASG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzB,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,KAAK,GAChB,OAAO,CAAC,eAAe,CAAC,CAAC;IAuB5B;;;;;;;OAOG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;SAQ3C;IAED;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,8BAQlC;IAED;;;;;;;OAOG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,mBAAmB;;OASvE;IAED;;;;OAIG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM;;OAQvC;IAED;;;;;;OAMG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,eASxE;IAED;;;;;;;OAOG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;OASvD;IAED;;;;;;;OAOG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EACvC,OAAO,CAAC,EAAE,cAAc,8BAOzB;IAED;;;;;;;;OAQG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,8BAM7D;IAED;;;;;;;;OAQG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,8BAMlE;IAED;;;;;;;;;;;OAWG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,cAAc,8BAShC;CACF"}
@@ -0,0 +1,200 @@
1
+ import { TransferDetailDto } from "@tsg-dsp/common-dsp";
2
+ import { pollUntil } from "../utils/polling.js";
3
+ import { validateJsonLD, validateResponse, validateResponseArray } from "../utils/validate.js";
4
+ /**
5
+ * Request, monitor, and control Dataspace Protocol data transfer processes.
6
+ *
7
+ * A transfer process follows the DSP state machine:
8
+ * `REQUESTED → STARTED → COMPLETED` (or `SUSPENDED` / `TERMINATED`).
9
+ *
10
+ * This module provides methods to:
11
+ * - Initiate transfers under an existing contract agreement.
12
+ * - Start, complete, suspend, or terminate transfers.
13
+ * - Poll for state transitions (e.g. wait until a transfer has started).
14
+ * @example
15
+ * ```ts
16
+ * const transfer = await sdk.transfers.transferAndWaitForStart(
17
+ * agreementId,
18
+ * participantId,
19
+ * remoteAddress,
20
+ * "application/json",
21
+ * );
22
+ * console.log(transfer.state); // "STARTED"
23
+ * ```
24
+ */
25
+ export class TransferSdk {
26
+ client;
27
+ constructor(client) {
28
+ this.client = client;
29
+ }
30
+ /**
31
+ * Resolve current HTTP credentials, renewing them through the control plane.
32
+ * The caller sends the data request; the SDK never retries it automatically.
33
+ * @param processId - The consumer transfer process ID.
34
+ * @param options - Set forceRefresh after a rejected access token.
35
+ * @returns The endpoint and headers for the next request.
36
+ */
37
+ async dataAccess(processId, options = {}) {
38
+ const { data } = await this.client.POST("/management/transfers/{processId}/data-access", {
39
+ params: { path: { processId } },
40
+ body: { forceRefresh: options.forceRefresh ?? false }
41
+ });
42
+ return data;
43
+ }
44
+ /**
45
+ * List all transfer processes known to the control plane.
46
+ * @returns Validated transfer details.
47
+ */
48
+ async listTransfers() {
49
+ const { data } = await this.client.GET("/management/transfers");
50
+ return validateResponseArray(TransferDetailDto, data ?? []);
51
+ }
52
+ async requestTransfer(agreementId, participantId, remoteAddress, format, returnDto = false) {
53
+ // The spec uses a 'default' response (not 200), causing openapi-fetch to type
54
+ // data as never. At runtime the response is parsed correctly — cast to fix.
55
+ const { data } = await this.client.POST("/management/transfers/request", {
56
+ params: {
57
+ query: {
58
+ agreementId,
59
+ audience: participantId,
60
+ address: remoteAddress,
61
+ format
62
+ }
63
+ }
64
+ });
65
+ return validateJsonLD(data, returnDto);
66
+ }
67
+ /**
68
+ * List the dataflows tracked for a transfer process.
69
+ *
70
+ * Each dataflow represents the data plane's execution of the transfer, with
71
+ * its own signaling state (`PREPARED`, `STARTED`, …) and pull address.
72
+ * @param processId - The transfer process ID.
73
+ * @returns The dataflows tracked for the transfer.
74
+ */
75
+ async getTransferDataflows(processId) {
76
+ const { data } = await this.client.GET("/management/transfers/{id}/dataflows", {
77
+ params: { path: { id: processId } }
78
+ });
79
+ return data ?? [];
80
+ }
81
+ /**
82
+ * Get the details of a transfer process by its process ID.
83
+ * @param processId - The unique transfer process ID.
84
+ * @returns A validated {@link TransferDetailDto}.
85
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.NOT_FOUND} if the transfer does not exist.
86
+ */
87
+ async getTransfer(processId) {
88
+ const { data } = await this.client.GET("/management/transfers/{processId}", {
89
+ params: { path: { processId } }
90
+ });
91
+ return validateResponse(TransferDetailDto, data);
92
+ }
93
+ /**
94
+ * Start a transfer process (provider-side).
95
+ *
96
+ * Transitions the transfer from `REQUESTED` to `STARTED`.
97
+ * @param processId - The transfer process ID.
98
+ * @param dataAddress - Optional data plane address to use for the transfer.
99
+ * @returns The start response.
100
+ */
101
+ async startTransfer(processId, dataAddress) {
102
+ const { data } = await this.client.POST("/management/transfers/{processId}/start", {
103
+ params: { path: { processId } },
104
+ body: dataAddress
105
+ });
106
+ return data;
107
+ }
108
+ /**
109
+ * Mark a transfer process as completed.
110
+ * @param processId - The transfer process ID.
111
+ * @returns The completion response.
112
+ */
113
+ async completeTransfer(processId) {
114
+ const { data } = await this.client.POST("/management/transfers/{processId}/completion", {
115
+ params: { path: { processId } }
116
+ });
117
+ return data;
118
+ }
119
+ /**
120
+ * Terminate a transfer process.
121
+ * @param processId - The transfer process ID.
122
+ * @param code - Optional machine-readable termination reason code.
123
+ * @param reason - Optional human-readable termination reason.
124
+ * @returns The termination response.
125
+ */
126
+ async terminateTransfer(processId, code, reason) {
127
+ const { data } = await this.client.POST("/management/transfers/{processId}/termination", {
128
+ params: { path: { processId } },
129
+ body: { code, reason }
130
+ });
131
+ return data;
132
+ }
133
+ /**
134
+ * Suspend a transfer process.
135
+ *
136
+ * A suspended transfer can later be resumed or terminated.
137
+ * @param processId - The transfer process ID.
138
+ * @param reason - Optional human-readable suspension reason.
139
+ * @returns The suspension response.
140
+ */
141
+ async suspendTransfer(processId, reason) {
142
+ const { data } = await this.client.POST("/management/transfers/{processId}/suspension", {
143
+ params: { path: { processId } },
144
+ body: { reason }
145
+ });
146
+ return data;
147
+ }
148
+ /**
149
+ * Poll until a transfer reaches the given target state.
150
+ * @param processId - The transfer process ID.
151
+ * @param targetState - The desired state (e.g. `"STARTED"`, `"COMPLETED"`).
152
+ * @param options - Polling interval and retry configuration.
153
+ * @returns The {@link TransferDetailDto} once the target state is reached.
154
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the state is not reached within the configured retries.
155
+ */
156
+ async waitForState(processId, targetState, options) {
157
+ return pollUntil(() => this.getTransfer(processId), (transfer) => transfer.state === targetState, options);
158
+ }
159
+ /**
160
+ * Poll until a transfer reaches the `STARTED` state.
161
+ *
162
+ * Shorthand for `waitForState(processId, "STARTED", options)`.
163
+ * @param processId - The transfer process ID.
164
+ * @param options - Polling interval and retry configuration.
165
+ * @returns The {@link TransferDetailDto} with `state === "STARTED"`.
166
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the state is not reached in time.
167
+ */
168
+ async waitForStart(processId, options) {
169
+ return pollUntil(() => this.getTransfer(processId), (transfer) => transfer.state === "STARTED", options);
170
+ }
171
+ /**
172
+ * Poll until a transfer reaches the `COMPLETED` state.
173
+ *
174
+ * Shorthand for `waitForState(processId, "COMPLETED", options)`.
175
+ * @param processId - The transfer process ID.
176
+ * @param options - Polling interval and retry configuration.
177
+ * @returns The {@link TransferDetailDto} with `state === "COMPLETED"`.
178
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the state is not reached in time.
179
+ */
180
+ async waitForCompletion(processId, options) {
181
+ return pollUntil(() => this.getTransfer(processId), (transfer) => transfer.state === "COMPLETED", options);
182
+ }
183
+ /**
184
+ * Initiate a transfer and wait for it to start in one call.
185
+ *
186
+ * Combines {@link requestTransfer} and {@link waitForStart}.
187
+ * @param agreementId - The agreement ID that authorizes this transfer.
188
+ * @param participantId - The remote participant's ID (DID).
189
+ * @param remoteAddress - The remote participant's DSP protocol endpoint.
190
+ * @param format - The desired transfer format.
191
+ * @param pollingOptions - Optional polling configuration.
192
+ * @returns The {@link TransferDetailDto} once the transfer has started.
193
+ * @throws Throws an {@link SdkError} with code {@link SdkErrorCode.POLLING_TIMEOUT} if the transfer does not start in time.
194
+ */
195
+ async transferAndWaitForStart(agreementId, participantId, remoteAddress, format, pollingOptions) {
196
+ const transfer = await this.requestTransfer(agreementId, participantId, remoteAddress, format);
197
+ return this.waitForStart(transfer.consumerPid, pollingOptions);
198
+ }
199
+ }
200
+ //# sourceMappingURL=transfers.sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfers.sdk.js","sourceRoot":"","sources":["../../src/transfers/transfers.sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAGlB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAM9B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,WAAW;IACO,MAAM;IAAnC,YAA6B,MAA0B;sBAA1B,MAAM;IAAuB,CAAC;IAE3D;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,OAAO,GAAsB,EAAE;QACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,+CAA+C,EAC/C;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;YAC/B,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK,EAAE;SACtD,CACF,CAAC;QACF,OAAO,IAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAChE,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IA0BD,KAAK,CAAC,eAAe,CACnB,WAAmB,EACnB,aAAqB,EACrB,aAAqB,EACrB,MAAc,EACd,SAAS,GAAY,KAAK;QAE1B,8EAA8E;QAC9E,4EAA4E;QAC5E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YACvE,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,WAAW;oBACX,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,aAAa;oBACtB,MAAM;iBACP;aACF;SACF,CAAC,CAAC;QACH,OAAO,cAAc,CAAkB,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,sCAAsC,EACtC;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;SACpC,CACF,CAAC;QACF,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,mCAAmC,EACnC;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;SAChC,CACF,CAAC;QACF,OAAO,gBAAgB,CAAC,iBAAiB,EAAE,IAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,WAAiC;QACtE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,yCAAyC,EACzC;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;YAC/B,IAAI,EAAE,WAAW;SAClB,CACF,CAAC;QACF,OAAO,IAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,8CAA8C,EAC9C;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;SAChC,CACF,CAAC;QACF,OAAO,IAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,IAAa,EAAE,MAAe;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,+CAA+C,EAC/C;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;YAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CACF,CAAC;QACF,OAAO,IAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,MAAe;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,8CAA8C,EAC9C;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE;YAC/B,IAAI,EAAE,EAAE,MAAM,EAAE;SACjB,CACF,CAAC;QACF,OAAO,IAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,SAAiB,EACjB,WAAuC,EACvC,OAAwB;QAExB,OAAO,SAAS,CACd,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,EAC5C,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,OAAwB;QAC5D,OAAO,SAAS,CACd,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,EAC1C,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,OAAwB;QACjE,OAAO,SAAS,CACd,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,EAC5C,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,uBAAuB,CAC3B,WAAmB,EACnB,aAAqB,EACrB,aAAqB,EACrB,MAAc,EACd,cAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CACzC,WAAW,EACX,aAAa,EACb,aAAa,EACb,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,68 @@
1
+ import { CatalogSdk } from "./catalog/catalog.sdk.js";
2
+ import type { TsgSdkConfig } from "./config/sdk.config.js";
3
+ import { MetadataSdk } from "./metadata/metadata.sdk.js";
4
+ import { NegotiationSdk } from "./negotiations/negotiations.sdk.js";
5
+ import { RequirementsSdk } from "./requirements/requirements.sdk.js";
6
+ import { SsoSdk } from "./sso/sso.sdk.js";
7
+ import { TransferSdk } from "./transfers/transfers.sdk.js";
8
+ import { WalletSdk } from "./wallet/wallet.sdk.js";
9
+ /**
10
+ * Main entry point for the TSG SDK.
11
+ *
12
+ * Provides access to all TSG Dataspace Protocol capabilities through
13
+ * dedicated sub-modules: {@link CatalogSdk | catalog}, {@link NegotiationSdk | negotiations},
14
+ * {@link TransferSdk | transfers}, {@link MetadataSdk | metadata}, {@link WalletSdk | wallet},
15
+ * and {@link SsoSdk | sso}.
16
+ *
17
+ * Use the static {@link TsgSdk.create} factory to instantiate.
18
+ * @example
19
+ * ```ts
20
+ * import { TsgSdk } from "@tsg-dsp/tsg-sdk";
21
+ *
22
+ * const sdk = TsgSdk.create({
23
+ * controlPlaneBaseUrl: "http://localhost:3501",
24
+ * walletBaseUrl: "http://localhost:3500",
25
+ * ssoBridgeBaseUrl: "http://localhost:3700",
26
+ * tenantSlug: "acme",
27
+ * canonicalTenantId: "11111111-1111-4111-8111-111111111111",
28
+ * controlPlaneAudience: "control-plane-api",
29
+ * walletAuth: { method: "access_token", accessToken: walletToken },
30
+ * auth: {
31
+ * method: "client_secret_post",
32
+ * clientId: "my-client",
33
+ * clientSecret: "my-secret",
34
+ * },
35
+ * });
36
+ *
37
+ * const catalog = await sdk.catalog.getOwnCatalog();
38
+ * ```
39
+ */
40
+ export declare class TsgSdk {
41
+ /** Browse and discover datasets from local and remote catalogs. */
42
+ readonly catalog: CatalogSdk;
43
+ /** Manage the full lifecycle of contract negotiations. */
44
+ readonly negotiations: NegotiationSdk;
45
+ /** Request, monitor, and control data transfer processes. */
46
+ readonly transfers: TransferSdk;
47
+ /** Publish and manage datasets (DCAT metadata + private asset configuration). */
48
+ readonly metadata: MetadataSdk;
49
+ /** Create, inspect, lint, and preflight immutable credential requirements. */
50
+ readonly requirements: RequirementsSdk;
51
+ /** Manage keys, credentials, DIDs, and credential issuance. Requires `walletBaseUrl` in config. */
52
+ readonly wallet: WalletSdk;
53
+ /** OpenID Connect integration, token management, and user/client administration. Requires `ssoBridgeBaseUrl` in config. */
54
+ readonly sso: SsoSdk;
55
+ private constructor();
56
+ /**
57
+ * Create a new `TsgSdk` instance from the provided configuration.
58
+ *
59
+ * Only `controlPlaneBaseUrl` is required. The `wallet` and `sso` modules
60
+ * are automatically enabled when their respective base URLs are provided.
61
+ * Calling a method on a module that has not been configured throws a
62
+ * {@link SdkError} with code {@link SdkErrorCode.NOT_CONFIGURED}.
63
+ * @param config - SDK configuration including base URLs and optional auth settings.
64
+ * @returns A fully initialised `TsgSdk` instance.
65
+ */
66
+ static create(config: TsgSdkConfig): TsgSdk;
67
+ }
68
+ //# sourceMappingURL=tsg-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsg-sdk.d.ts","sourceRoot":"","sources":["../src/tsg-sdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,MAAM;IACjB,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,2HAA2H;IAC3H,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,OAAO,eAgBN;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAqF1C;CACF"}
@@ -0,0 +1,145 @@
1
+ import { AuthProvider } from "./auth/auth.provider.js";
2
+ import { CatalogSdk } from "./catalog/catalog.sdk.js";
3
+ import { createControlPlaneClient, createSsoBridgeClient, createWalletClient } from "./client.js";
4
+ import { MetadataSdk } from "./metadata/metadata.sdk.js";
5
+ import { NegotiationSdk } from "./negotiations/negotiations.sdk.js";
6
+ import { RequirementsSdk } from "./requirements/requirements.sdk.js";
7
+ import { SsoSdk } from "./sso/sso.sdk.js";
8
+ import { TransferSdk } from "./transfers/transfers.sdk.js";
9
+ import { SdkError, SdkErrorCode } from "./utils/errors.js";
10
+ import { WalletSdk } from "./wallet/wallet.sdk.js";
11
+ /**
12
+ * Main entry point for the TSG SDK.
13
+ *
14
+ * Provides access to all TSG Dataspace Protocol capabilities through
15
+ * dedicated sub-modules: {@link CatalogSdk | catalog}, {@link NegotiationSdk | negotiations},
16
+ * {@link TransferSdk | transfers}, {@link MetadataSdk | metadata}, {@link WalletSdk | wallet},
17
+ * and {@link SsoSdk | sso}.
18
+ *
19
+ * Use the static {@link TsgSdk.create} factory to instantiate.
20
+ * @example
21
+ * ```ts
22
+ * import { TsgSdk } from "@tsg-dsp/tsg-sdk";
23
+ *
24
+ * const sdk = TsgSdk.create({
25
+ * controlPlaneBaseUrl: "http://localhost:3501",
26
+ * walletBaseUrl: "http://localhost:3500",
27
+ * ssoBridgeBaseUrl: "http://localhost:3700",
28
+ * tenantSlug: "acme",
29
+ * canonicalTenantId: "11111111-1111-4111-8111-111111111111",
30
+ * controlPlaneAudience: "control-plane-api",
31
+ * walletAuth: { method: "access_token", accessToken: walletToken },
32
+ * auth: {
33
+ * method: "client_secret_post",
34
+ * clientId: "my-client",
35
+ * clientSecret: "my-secret",
36
+ * },
37
+ * });
38
+ *
39
+ * const catalog = await sdk.catalog.getOwnCatalog();
40
+ * ```
41
+ */
42
+ export class TsgSdk {
43
+ /** Browse and discover datasets from local and remote catalogs. */
44
+ catalog;
45
+ /** Manage the full lifecycle of contract negotiations. */
46
+ negotiations;
47
+ /** Request, monitor, and control data transfer processes. */
48
+ transfers;
49
+ /** Publish and manage datasets (DCAT metadata + private asset configuration). */
50
+ metadata;
51
+ /** Create, inspect, lint, and preflight immutable credential requirements. */
52
+ requirements;
53
+ /** Manage keys, credentials, DIDs, and credential issuance. Requires `walletBaseUrl` in config. */
54
+ wallet;
55
+ /** OpenID Connect integration, token management, and user/client administration. Requires `ssoBridgeBaseUrl` in config. */
56
+ sso;
57
+ constructor(catalog, negotiations, transfers, metadata, requirements, wallet, sso) {
58
+ this.catalog = catalog;
59
+ this.negotiations = negotiations;
60
+ this.transfers = transfers;
61
+ this.metadata = metadata;
62
+ this.requirements = requirements;
63
+ this.wallet = wallet;
64
+ this.sso = sso;
65
+ }
66
+ /**
67
+ * Create a new `TsgSdk` instance from the provided configuration.
68
+ *
69
+ * Only `controlPlaneBaseUrl` is required. The `wallet` and `sso` modules
70
+ * are automatically enabled when their respective base URLs are provided.
71
+ * Calling a method on a module that has not been configured throws a
72
+ * {@link SdkError} with code {@link SdkErrorCode.NOT_CONFIGURED}.
73
+ * @param config - SDK configuration including base URLs and optional auth settings.
74
+ * @returns A fully initialised `TsgSdk` instance.
75
+ */
76
+ static create(config) {
77
+ if ([config.auth, config.walletAuth].some((auth) => auth && auth.method !== "access_token") &&
78
+ !config.canonicalTenantId?.trim())
79
+ throw new SdkError("Token acquisition requires canonicalTenantId", SdkErrorCode.NOT_CONFIGURED);
80
+ const authProvider = new AuthProvider(config.auth, config.ssoBridgeBaseUrl, {
81
+ tenantId: config.canonicalTenantId,
82
+ audience: config.controlPlaneAudience
83
+ });
84
+ const cpClient = createControlPlaneClient(config.controlPlaneBaseUrl, authProvider, config.controlPlaneTenantSlug ?? config.tenantSlug);
85
+ const catalog = new CatalogSdk(cpClient);
86
+ const negotiations = new NegotiationSdk(cpClient);
87
+ const transfers = new TransferSdk(cpClient);
88
+ const metadata = new MetadataSdk(cpClient);
89
+ const requirements = new RequirementsSdk(cpClient);
90
+ // Wallet: requires walletBaseUrl
91
+ let wallet;
92
+ if (config.walletBaseUrl) {
93
+ if (config.auth && !config.walletAuth)
94
+ throw new SdkError("Provide walletAuth for the Wallet audience", SdkErrorCode.NOT_CONFIGURED);
95
+ const walletAuth = new AuthProvider(config.walletAuth, config.ssoBridgeBaseUrl, {
96
+ tenantId: config.canonicalTenantId,
97
+ audience: config.walletAudience
98
+ });
99
+ const walletClient = createWalletClient(config.walletBaseUrl, walletAuth, config.walletTenantSlug ?? config.tenantSlug);
100
+ wallet = new WalletSdk(walletClient);
101
+ }
102
+ else {
103
+ wallet = createUnconfiguredProxy("wallet", "walletBaseUrl");
104
+ }
105
+ // SSO: requires ssoBridgeBaseUrl
106
+ let sso;
107
+ if (config.ssoBridgeBaseUrl) {
108
+ const ssoBridgeClient = createSsoBridgeClient(config.ssoBridgeBaseUrl, new AuthProvider(config.ssoAuth, config.ssoBridgeBaseUrl, {
109
+ audience: config.ssoAudience
110
+ }));
111
+ sso = new SsoSdk(config.ssoBridgeBaseUrl, config.ssoAuth, ssoBridgeClient, config.ssoAudience);
112
+ }
113
+ else {
114
+ sso = createUnconfiguredProxy("sso", "ssoBridgeBaseUrl");
115
+ }
116
+ return new TsgSdk(catalog, negotiations, transfers, metadata, requirements, wallet, sso);
117
+ }
118
+ }
119
+ /**
120
+ * Creates a proxy that throws a {@link SdkError} with code
121
+ * {@link SdkErrorCode.NOT_CONFIGURED} when any method is called on a
122
+ * module whose required base URL was not provided in the SDK configuration.
123
+ * @param moduleName - Human-readable module name used in the error message.
124
+ * @param requiredConfig - The config property that must be set to enable the module.
125
+ * @returns A proxy object that throws on any method invocation.
126
+ * @internal
127
+ */
128
+ function createUnconfiguredProxy(moduleName, requiredConfig) {
129
+ const createError = () => new SdkError(`${moduleName} module is not configured. Provide '${requiredConfig}' in TsgSdkConfig.`, SdkErrorCode.NOT_CONFIGURED);
130
+ const createNestedProxy = () => new Proxy(function unconfiguredModule() {
131
+ throw createError();
132
+ }, {
133
+ apply() {
134
+ throw createError();
135
+ },
136
+ get(_target, prop) {
137
+ if (typeof prop === "symbol" || prop === "then") {
138
+ return undefined;
139
+ }
140
+ return createNestedProxy();
141
+ }
142
+ });
143
+ return createNestedProxy();
144
+ }
145
+ //# sourceMappingURL=tsg-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsg-sdk.js","sourceRoot":"","sources":["../src/tsg-sdk.ts"],"names":[],"mappings":"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"}