@stackshift-cloud/sdk 1.0.0 → 1.1.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.
@@ -1,5 +1,5 @@
1
- export type AssetOperationId = 'uploadAsset' | 'createUploadSession' | 'getUploadSession' | 'completeUploadSession' | 'cancelUploadSession' | 'createSignedUploadUrl' | 'createBucket' | 'listBuckets' | 'updateBucket' | 'deleteBucket' | 'getContentPolicy' | 'updateContentPolicy' | 'upsertTransformation' | 'listTransformations' | 'deleteTransformation' | 'createLifecycleRule' | 'listLifecycleRules' | 'deleteLifecycleRule' | 'createDomain' | 'listDomains' | 'verifyDomain' | 'deleteDomain' | 'getAnalytics' | 'getUsageSummary' | 'listEvents' | 'createWebhook' | 'listWebhooks' | 'deleteWebhook' | 'listWebhookDeliveries' | 'retryWebhookDelivery' | 'bulkAssets' | 'listCollections' | 'createCollection' | 'updateCollection' | 'deleteCollection' | 'listSavedSearches' | 'createSavedSearch' | 'updateSavedSearch' | 'deleteSavedSearch' | 'getAIConfig' | 'updateAIConfig' | 'getJob' | 'cancelJob' | 'listAssets' | 'getAsset' | 'patchAsset' | 'getAssetAI' | 'analyzeAsset' | 'moderateAsset' | 'getTranscript' | 'transcribeAsset' | 'smartCropAsset' | 'removeAssetBackground' | 'listAssetVersions' | 'createAssetBranch' | 'restoreAssetVersion' | 'promoteAssetBranch' | 'deleteAsset' | 'replaceAsset' | 'createSignedAssetUrl' | 'createSignedTransformUrl' | 'setAssetTags' | 'patchAssetMetadata' | 'purgeAsset';
2
- export type AssetAPIScope = 'assets:read' | 'assets:write' | 'assets:process' | 'assets:admin';
1
+ export type AssetOperationId = 'uploadAsset' | 'createUploadSession' | 'getUploadSession' | 'completeUploadSession' | 'cancelUploadSession' | 'createSignedUploadUrl' | 'createBucket' | 'listBuckets' | 'updateBucket' | 'deleteBucket' | 'configureBucketStorage' | 'startBucketRelocation' | 'createAssetConnection' | 'listAssetConnections' | 'getAssetConnection' | 'updateAssetConnection' | 'verifyAssetConnection' | 'deleteAssetConnection' | 'listOwnedS2Buckets' | 'createOwnedS2Bucket' | 'startAssetMigration' | 'listAssetMigrations' | 'getAssetMigration' | 'cancelAssetMigration' | 'retryAssetMigrationItem' | 'downloadAssetMigrationReport' | 'createAssetUploadCapability' | 'getContentPolicy' | 'updateContentPolicy' | 'upsertTransformation' | 'listTransformations' | 'materializeAssetTransform' | 'listAssetDerivatives' | 'generateAsset' | 'getAssetAutomation' | 'assetMCP' | 'getAssetWorkflowCatalog' | 'listAssetWorkflows' | 'createAssetWorkflow' | 'getAssetWorkflow' | 'updateAssetWorkflowDraft' | 'validateAssetWorkflow' | 'publishAssetWorkflow' | 'activateAssetWorkflow' | 'startAssetWorkflowRun' | 'listAssetWorkflowVersions' | 'listAssetWorkflowRuns' | 'getAssetWorkflowRun' | 'cancelAssetWorkflowRun' | 'retryAssetWorkflowRun' | 'listAssetWorkflowApprovals' | 'approveAssetWorkflow' | 'rejectAssetWorkflow' | 'listAssetWorkflowConnections' | 'createAssetWorkflowConnection' | 'rotateAssetWorkflowConnectionCredential' | 'rotateAssetWorkflowInboundHook' | 'receiveAssetWorkflowInboundHook' | 'deleteTransformation' | 'createLifecycleRule' | 'listLifecycleRules' | 'deleteLifecycleRule' | 'createDomain' | 'listDomains' | 'verifyDomain' | 'deleteDomain' | 'getAnalytics' | 'getUsageSummary' | 'listEvents' | 'createWebhook' | 'listWebhooks' | 'deleteWebhook' | 'listWebhookDeliveries' | 'retryWebhookDelivery' | 'bulkAssets' | 'listCollections' | 'createCollection' | 'updateCollection' | 'deleteCollection' | 'listSavedSearches' | 'createSavedSearch' | 'updateSavedSearch' | 'deleteSavedSearch' | 'getAIConfig' | 'updateAIConfig' | 'getJob' | 'cancelJob' | 'listAssets' | 'getAsset' | 'startAssetTextExtraction' | 'getAssetTextExtraction' | 'retryAssetTextExtraction' | 'patchAsset' | 'getAssetAI' | 'analyzeAsset' | 'moderateAsset' | 'getTranscript' | 'transcribeAsset' | 'smartCropAsset' | 'removeAssetBackground' | 'listAssetVersions' | 'createAssetBranch' | 'restoreAssetVersion' | 'promoteAssetBranch' | 'deleteAsset' | 'replaceAsset' | 'createSignedAssetUrl' | 'createSignedTransformUrl' | 'setAssetTags' | 'patchAssetMetadata' | 'purgeAsset' | 'widgetCreateUploadSession' | 'widgetGetUploadSession' | 'widgetUploadPart' | 'widgetCompleteUploadSession' | 'widgetCancelUploadSession' | 'widgetIngestRemoteUrl';
2
+ export type AssetAPIScope = 'assets:read' | 'assets:write' | 'assets:process' | 'assets:generate' | 'assets:publish' | 'assets:admin' | 'assets:any';
3
3
  export interface AssetContractOperation {
4
4
  readonly id: AssetOperationId;
5
5
  readonly method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
@@ -56,6 +56,91 @@ export declare const assetContractOperations: readonly [{
56
56
  readonly method: "DELETE";
57
57
  readonly path: "/api/v1/assets/buckets/{bucketID}";
58
58
  readonly scope: "assets:admin";
59
+ }, {
60
+ readonly id: "configureBucketStorage";
61
+ readonly method: "PUT";
62
+ readonly path: "/api/v1/assets/buckets/{bucketID}/storage";
63
+ readonly scope: "assets:write";
64
+ }, {
65
+ readonly id: "startBucketRelocation";
66
+ readonly method: "POST";
67
+ readonly path: "/api/v1/assets/buckets/{bucketID}/relocations";
68
+ readonly scope: "assets:process";
69
+ }, {
70
+ readonly id: "createAssetConnection";
71
+ readonly method: "POST";
72
+ readonly path: "/api/v1/assets/connections";
73
+ readonly scope: "assets:admin";
74
+ }, {
75
+ readonly id: "listAssetConnections";
76
+ readonly method: "GET";
77
+ readonly path: "/api/v1/assets/connections";
78
+ readonly scope: "assets:read";
79
+ }, {
80
+ readonly id: "getAssetConnection";
81
+ readonly method: "GET";
82
+ readonly path: "/api/v1/assets/connections/{connectionID}";
83
+ readonly scope: "assets:read";
84
+ }, {
85
+ readonly id: "updateAssetConnection";
86
+ readonly method: "PATCH";
87
+ readonly path: "/api/v1/assets/connections/{connectionID}";
88
+ readonly scope: "assets:admin";
89
+ }, {
90
+ readonly id: "verifyAssetConnection";
91
+ readonly method: "POST";
92
+ readonly path: "/api/v1/assets/connections/{connectionID}/verify";
93
+ readonly scope: "assets:admin";
94
+ }, {
95
+ readonly id: "deleteAssetConnection";
96
+ readonly method: "DELETE";
97
+ readonly path: "/api/v1/assets/connections/{connectionID}";
98
+ readonly scope: "assets:admin";
99
+ }, {
100
+ readonly id: "listOwnedS2Buckets";
101
+ readonly method: "GET";
102
+ readonly path: "/api/v1/assets/s2-buckets";
103
+ readonly scope: "assets:read";
104
+ }, {
105
+ readonly id: "createOwnedS2Bucket";
106
+ readonly method: "POST";
107
+ readonly path: "/api/v1/assets/s2-buckets";
108
+ readonly scope: "assets:admin";
109
+ }, {
110
+ readonly id: "startAssetMigration";
111
+ readonly method: "POST";
112
+ readonly path: "/api/v1/assets/migrations";
113
+ readonly scope: "assets:process";
114
+ }, {
115
+ readonly id: "listAssetMigrations";
116
+ readonly method: "GET";
117
+ readonly path: "/api/v1/assets/migrations";
118
+ readonly scope: "assets:read";
119
+ }, {
120
+ readonly id: "getAssetMigration";
121
+ readonly method: "GET";
122
+ readonly path: "/api/v1/assets/migrations/{migrationID}";
123
+ readonly scope: "assets:read";
124
+ }, {
125
+ readonly id: "cancelAssetMigration";
126
+ readonly method: "POST";
127
+ readonly path: "/api/v1/assets/migrations/{migrationID}/cancel";
128
+ readonly scope: "assets:process";
129
+ }, {
130
+ readonly id: "retryAssetMigrationItem";
131
+ readonly method: "POST";
132
+ readonly path: "/api/v1/assets/migrations/{migrationID}/items/{itemID}/retry";
133
+ readonly scope: "assets:process";
134
+ }, {
135
+ readonly id: "downloadAssetMigrationReport";
136
+ readonly method: "GET";
137
+ readonly path: "/api/v1/assets/migrations/{migrationID}/report";
138
+ readonly scope: "assets:read";
139
+ }, {
140
+ readonly id: "createAssetUploadCapability";
141
+ readonly method: "POST";
142
+ readonly path: "/api/v1/assets/upload-capabilities";
143
+ readonly scope: "assets:write";
59
144
  }, {
60
145
  readonly id: "getContentPolicy";
61
146
  readonly method: "GET";
@@ -76,6 +161,141 @@ export declare const assetContractOperations: readonly [{
76
161
  readonly method: "GET";
77
162
  readonly path: "/api/v1/assets/transformations";
78
163
  readonly scope: "assets:read";
164
+ }, {
165
+ readonly id: "materializeAssetTransform";
166
+ readonly method: "POST";
167
+ readonly path: "/api/v1/assets/{assetID}/transforms";
168
+ readonly scope: "assets:process";
169
+ }, {
170
+ readonly id: "listAssetDerivatives";
171
+ readonly method: "GET";
172
+ readonly path: "/api/v1/assets/{assetID}/derivatives";
173
+ readonly scope: "assets:read";
174
+ }, {
175
+ readonly id: "generateAsset";
176
+ readonly method: "POST";
177
+ readonly path: "/api/v1/assets/generations";
178
+ readonly scope: "assets:generate";
179
+ }, {
180
+ readonly id: "getAssetAutomation";
181
+ readonly method: "GET";
182
+ readonly path: "/api/v1/assets/automation";
183
+ readonly scope: "assets:read";
184
+ }, {
185
+ readonly id: "assetMCP";
186
+ readonly method: "POST";
187
+ readonly path: "/api/v1/assets/mcp";
188
+ readonly scope: "assets:any";
189
+ }, {
190
+ readonly id: "getAssetWorkflowCatalog";
191
+ readonly method: "GET";
192
+ readonly path: "/api/v1/assets/workflows/catalog";
193
+ readonly scope: "assets:read";
194
+ }, {
195
+ readonly id: "listAssetWorkflows";
196
+ readonly method: "GET";
197
+ readonly path: "/api/v1/assets/workflows";
198
+ readonly scope: "assets:read";
199
+ }, {
200
+ readonly id: "createAssetWorkflow";
201
+ readonly method: "POST";
202
+ readonly path: "/api/v1/assets/workflows";
203
+ readonly scope: "assets:write";
204
+ }, {
205
+ readonly id: "getAssetWorkflow";
206
+ readonly method: "GET";
207
+ readonly path: "/api/v1/assets/workflows/{workflowId}";
208
+ readonly scope: "assets:read";
209
+ }, {
210
+ readonly id: "updateAssetWorkflowDraft";
211
+ readonly method: "PUT";
212
+ readonly path: "/api/v1/assets/workflows/{workflowId}/draft";
213
+ readonly scope: "assets:write";
214
+ }, {
215
+ readonly id: "validateAssetWorkflow";
216
+ readonly method: "POST";
217
+ readonly path: "/api/v1/assets/workflows/{workflowId}/validate";
218
+ readonly scope: "assets:write";
219
+ }, {
220
+ readonly id: "publishAssetWorkflow";
221
+ readonly method: "POST";
222
+ readonly path: "/api/v1/assets/workflows/{workflowId}/publish";
223
+ readonly scope: "assets:publish";
224
+ }, {
225
+ readonly id: "activateAssetWorkflow";
226
+ readonly method: "POST";
227
+ readonly path: "/api/v1/assets/workflows/{workflowId}/activate";
228
+ readonly scope: "assets:publish";
229
+ }, {
230
+ readonly id: "startAssetWorkflowRun";
231
+ readonly method: "POST";
232
+ readonly path: "/api/v1/assets/workflows/{workflowId}/run";
233
+ readonly scope: "assets:write";
234
+ }, {
235
+ readonly id: "listAssetWorkflowVersions";
236
+ readonly method: "GET";
237
+ readonly path: "/api/v1/assets/workflows/{workflowId}/versions";
238
+ readonly scope: "assets:read";
239
+ }, {
240
+ readonly id: "listAssetWorkflowRuns";
241
+ readonly method: "GET";
242
+ readonly path: "/api/v1/assets/workflows/{workflowId}/runs";
243
+ readonly scope: "assets:read";
244
+ }, {
245
+ readonly id: "getAssetWorkflowRun";
246
+ readonly method: "GET";
247
+ readonly path: "/api/v1/assets/workflows/runs/{runId}";
248
+ readonly scope: "assets:read";
249
+ }, {
250
+ readonly id: "cancelAssetWorkflowRun";
251
+ readonly method: "POST";
252
+ readonly path: "/api/v1/assets/workflows/runs/{runId}/cancel";
253
+ readonly scope: "assets:write";
254
+ }, {
255
+ readonly id: "retryAssetWorkflowRun";
256
+ readonly method: "POST";
257
+ readonly path: "/api/v1/assets/workflows/runs/{runId}/retry";
258
+ readonly scope: "assets:write";
259
+ }, {
260
+ readonly id: "listAssetWorkflowApprovals";
261
+ readonly method: "GET";
262
+ readonly path: "/api/v1/assets/workflows/approvals";
263
+ readonly scope: "assets:read";
264
+ }, {
265
+ readonly id: "approveAssetWorkflow";
266
+ readonly method: "POST";
267
+ readonly path: "/api/v1/assets/workflows/approvals/{approvalId}/approve";
268
+ readonly scope: "assets:publish";
269
+ }, {
270
+ readonly id: "rejectAssetWorkflow";
271
+ readonly method: "POST";
272
+ readonly path: "/api/v1/assets/workflows/approvals/{approvalId}/reject";
273
+ readonly scope: "assets:publish";
274
+ }, {
275
+ readonly id: "listAssetWorkflowConnections";
276
+ readonly method: "GET";
277
+ readonly path: "/api/v1/assets/workflows/connections";
278
+ readonly scope: "assets:read";
279
+ }, {
280
+ readonly id: "createAssetWorkflowConnection";
281
+ readonly method: "POST";
282
+ readonly path: "/api/v1/assets/workflows/connections";
283
+ readonly scope: "assets:admin";
284
+ }, {
285
+ readonly id: "rotateAssetWorkflowConnectionCredential";
286
+ readonly method: "POST";
287
+ readonly path: "/api/v1/assets/workflows/connections/{connectionId}/credential/rotate";
288
+ readonly scope: "assets:admin";
289
+ }, {
290
+ readonly id: "rotateAssetWorkflowInboundHook";
291
+ readonly method: "POST";
292
+ readonly path: "/api/v1/assets/workflows/{workflowId}/inbound-hook/rotate";
293
+ readonly scope: "assets:write";
294
+ }, {
295
+ readonly id: "receiveAssetWorkflowInboundHook";
296
+ readonly method: "POST";
297
+ readonly path: "/api/v1/assets/workflow-hooks/{token}";
298
+ readonly scope: "assets:any";
79
299
  }, {
80
300
  readonly id: "deleteTransformation";
81
301
  readonly method: "DELETE";
@@ -231,6 +451,21 @@ export declare const assetContractOperations: readonly [{
231
451
  readonly method: "GET";
232
452
  readonly path: "/api/v1/assets/{assetID}";
233
453
  readonly scope: "assets:read";
454
+ }, {
455
+ readonly id: "startAssetTextExtraction";
456
+ readonly method: "POST";
457
+ readonly path: "/api/v1/assets/{assetID}/text-extraction";
458
+ readonly scope: "assets:process";
459
+ }, {
460
+ readonly id: "getAssetTextExtraction";
461
+ readonly method: "GET";
462
+ readonly path: "/api/v1/assets/{assetID}/text-extraction";
463
+ readonly scope: "assets:read";
464
+ }, {
465
+ readonly id: "retryAssetTextExtraction";
466
+ readonly method: "POST";
467
+ readonly path: "/api/v1/assets/text-extractions/{extractionID}/retry";
468
+ readonly scope: "assets:process";
234
469
  }, {
235
470
  readonly id: "patchAsset";
236
471
  readonly method: "PATCH";
@@ -326,4 +561,34 @@ export declare const assetContractOperations: readonly [{
326
561
  readonly method: "POST";
327
562
  readonly path: "/api/v1/assets/{assetID}/purge";
328
563
  readonly scope: "assets:admin";
564
+ }, {
565
+ readonly id: "widgetCreateUploadSession";
566
+ readonly method: "POST";
567
+ readonly path: "/assets/widget/sessions";
568
+ readonly scope: "assets:write";
569
+ }, {
570
+ readonly id: "widgetGetUploadSession";
571
+ readonly method: "GET";
572
+ readonly path: "/assets/widget/sessions/current";
573
+ readonly scope: "assets:write";
574
+ }, {
575
+ readonly id: "widgetUploadPart";
576
+ readonly method: "PUT";
577
+ readonly path: "/assets/widget/uploads/{sessionToken}/parts/{partNumber}";
578
+ readonly scope: "assets:write";
579
+ }, {
580
+ readonly id: "widgetCompleteUploadSession";
581
+ readonly method: "POST";
582
+ readonly path: "/assets/widget/sessions/current/complete";
583
+ readonly scope: "assets:write";
584
+ }, {
585
+ readonly id: "widgetCancelUploadSession";
586
+ readonly method: "DELETE";
587
+ readonly path: "/assets/widget/sessions/current";
588
+ readonly scope: "assets:write";
589
+ }, {
590
+ readonly id: "widgetIngestRemoteUrl";
591
+ readonly method: "POST";
592
+ readonly path: "/assets/widget/remote-url";
593
+ readonly scope: "assets:write";
329
594
  }];
@@ -9,10 +9,54 @@ export const assetContractOperations = [
9
9
  { id: 'listBuckets', method: 'GET', path: '/api/v1/assets/buckets', scope: 'assets:read' },
10
10
  { id: 'updateBucket', method: 'PUT', path: '/api/v1/assets/buckets/{bucketID}', scope: 'assets:admin' },
11
11
  { id: 'deleteBucket', method: 'DELETE', path: '/api/v1/assets/buckets/{bucketID}', scope: 'assets:admin' },
12
+ { id: 'configureBucketStorage', method: 'PUT', path: '/api/v1/assets/buckets/{bucketID}/storage', scope: 'assets:write' },
13
+ { id: 'startBucketRelocation', method: 'POST', path: '/api/v1/assets/buckets/{bucketID}/relocations', scope: 'assets:process' },
14
+ { id: 'createAssetConnection', method: 'POST', path: '/api/v1/assets/connections', scope: 'assets:admin' },
15
+ { id: 'listAssetConnections', method: 'GET', path: '/api/v1/assets/connections', scope: 'assets:read' },
16
+ { id: 'getAssetConnection', method: 'GET', path: '/api/v1/assets/connections/{connectionID}', scope: 'assets:read' },
17
+ { id: 'updateAssetConnection', method: 'PATCH', path: '/api/v1/assets/connections/{connectionID}', scope: 'assets:admin' },
18
+ { id: 'verifyAssetConnection', method: 'POST', path: '/api/v1/assets/connections/{connectionID}/verify', scope: 'assets:admin' },
19
+ { id: 'deleteAssetConnection', method: 'DELETE', path: '/api/v1/assets/connections/{connectionID}', scope: 'assets:admin' },
20
+ { id: 'listOwnedS2Buckets', method: 'GET', path: '/api/v1/assets/s2-buckets', scope: 'assets:read' },
21
+ { id: 'createOwnedS2Bucket', method: 'POST', path: '/api/v1/assets/s2-buckets', scope: 'assets:admin' },
22
+ { id: 'startAssetMigration', method: 'POST', path: '/api/v1/assets/migrations', scope: 'assets:process' },
23
+ { id: 'listAssetMigrations', method: 'GET', path: '/api/v1/assets/migrations', scope: 'assets:read' },
24
+ { id: 'getAssetMigration', method: 'GET', path: '/api/v1/assets/migrations/{migrationID}', scope: 'assets:read' },
25
+ { id: 'cancelAssetMigration', method: 'POST', path: '/api/v1/assets/migrations/{migrationID}/cancel', scope: 'assets:process' },
26
+ { id: 'retryAssetMigrationItem', method: 'POST', path: '/api/v1/assets/migrations/{migrationID}/items/{itemID}/retry', scope: 'assets:process' },
27
+ { id: 'downloadAssetMigrationReport', method: 'GET', path: '/api/v1/assets/migrations/{migrationID}/report', scope: 'assets:read' },
28
+ { id: 'createAssetUploadCapability', method: 'POST', path: '/api/v1/assets/upload-capabilities', scope: 'assets:write' },
12
29
  { id: 'getContentPolicy', method: 'GET', path: '/api/v1/assets/policy', scope: 'assets:read' },
13
30
  { id: 'updateContentPolicy', method: 'PUT', path: '/api/v1/assets/policy', scope: 'assets:admin' },
14
31
  { id: 'upsertTransformation', method: 'POST', path: '/api/v1/assets/transformations', scope: 'assets:process' },
15
32
  { id: 'listTransformations', method: 'GET', path: '/api/v1/assets/transformations', scope: 'assets:read' },
33
+ { id: 'materializeAssetTransform', method: 'POST', path: '/api/v1/assets/{assetID}/transforms', scope: 'assets:process' },
34
+ { id: 'listAssetDerivatives', method: 'GET', path: '/api/v1/assets/{assetID}/derivatives', scope: 'assets:read' },
35
+ { id: 'generateAsset', method: 'POST', path: '/api/v1/assets/generations', scope: 'assets:generate' },
36
+ { id: 'getAssetAutomation', method: 'GET', path: '/api/v1/assets/automation', scope: 'assets:read' },
37
+ { id: 'assetMCP', method: 'POST', path: '/api/v1/assets/mcp', scope: 'assets:any' },
38
+ { id: 'getAssetWorkflowCatalog', method: 'GET', path: '/api/v1/assets/workflows/catalog', scope: 'assets:read' },
39
+ { id: 'listAssetWorkflows', method: 'GET', path: '/api/v1/assets/workflows', scope: 'assets:read' },
40
+ { id: 'createAssetWorkflow', method: 'POST', path: '/api/v1/assets/workflows', scope: 'assets:write' },
41
+ { id: 'getAssetWorkflow', method: 'GET', path: '/api/v1/assets/workflows/{workflowId}', scope: 'assets:read' },
42
+ { id: 'updateAssetWorkflowDraft', method: 'PUT', path: '/api/v1/assets/workflows/{workflowId}/draft', scope: 'assets:write' },
43
+ { id: 'validateAssetWorkflow', method: 'POST', path: '/api/v1/assets/workflows/{workflowId}/validate', scope: 'assets:write' },
44
+ { id: 'publishAssetWorkflow', method: 'POST', path: '/api/v1/assets/workflows/{workflowId}/publish', scope: 'assets:publish' },
45
+ { id: 'activateAssetWorkflow', method: 'POST', path: '/api/v1/assets/workflows/{workflowId}/activate', scope: 'assets:publish' },
46
+ { id: 'startAssetWorkflowRun', method: 'POST', path: '/api/v1/assets/workflows/{workflowId}/run', scope: 'assets:write' },
47
+ { id: 'listAssetWorkflowVersions', method: 'GET', path: '/api/v1/assets/workflows/{workflowId}/versions', scope: 'assets:read' },
48
+ { id: 'listAssetWorkflowRuns', method: 'GET', path: '/api/v1/assets/workflows/{workflowId}/runs', scope: 'assets:read' },
49
+ { id: 'getAssetWorkflowRun', method: 'GET', path: '/api/v1/assets/workflows/runs/{runId}', scope: 'assets:read' },
50
+ { id: 'cancelAssetWorkflowRun', method: 'POST', path: '/api/v1/assets/workflows/runs/{runId}/cancel', scope: 'assets:write' },
51
+ { id: 'retryAssetWorkflowRun', method: 'POST', path: '/api/v1/assets/workflows/runs/{runId}/retry', scope: 'assets:write' },
52
+ { id: 'listAssetWorkflowApprovals', method: 'GET', path: '/api/v1/assets/workflows/approvals', scope: 'assets:read' },
53
+ { id: 'approveAssetWorkflow', method: 'POST', path: '/api/v1/assets/workflows/approvals/{approvalId}/approve', scope: 'assets:publish' },
54
+ { id: 'rejectAssetWorkflow', method: 'POST', path: '/api/v1/assets/workflows/approvals/{approvalId}/reject', scope: 'assets:publish' },
55
+ { id: 'listAssetWorkflowConnections', method: 'GET', path: '/api/v1/assets/workflows/connections', scope: 'assets:read' },
56
+ { id: 'createAssetWorkflowConnection', method: 'POST', path: '/api/v1/assets/workflows/connections', scope: 'assets:admin' },
57
+ { id: 'rotateAssetWorkflowConnectionCredential', method: 'POST', path: '/api/v1/assets/workflows/connections/{connectionId}/credential/rotate', scope: 'assets:admin' },
58
+ { id: 'rotateAssetWorkflowInboundHook', method: 'POST', path: '/api/v1/assets/workflows/{workflowId}/inbound-hook/rotate', scope: 'assets:write' },
59
+ { id: 'receiveAssetWorkflowInboundHook', method: 'POST', path: '/api/v1/assets/workflow-hooks/{token}', scope: 'assets:any' },
16
60
  { id: 'deleteTransformation', method: 'DELETE', path: '/api/v1/assets/transformations/{name}', scope: 'assets:process' },
17
61
  { id: 'createLifecycleRule', method: 'POST', path: '/api/v1/assets/lifecycle-rules', scope: 'assets:admin' },
18
62
  { id: 'listLifecycleRules', method: 'GET', path: '/api/v1/assets/lifecycle-rules', scope: 'assets:read' },
@@ -44,6 +88,9 @@ export const assetContractOperations = [
44
88
  { id: 'cancelJob', method: 'POST', path: '/api/v1/assets/jobs/{jobID}/cancel', scope: 'assets:process' },
45
89
  { id: 'listAssets', method: 'GET', path: '/api/v1/assets', scope: 'assets:read' },
46
90
  { id: 'getAsset', method: 'GET', path: '/api/v1/assets/{assetID}', scope: 'assets:read' },
91
+ { id: 'startAssetTextExtraction', method: 'POST', path: '/api/v1/assets/{assetID}/text-extraction', scope: 'assets:process' },
92
+ { id: 'getAssetTextExtraction', method: 'GET', path: '/api/v1/assets/{assetID}/text-extraction', scope: 'assets:read' },
93
+ { id: 'retryAssetTextExtraction', method: 'POST', path: '/api/v1/assets/text-extractions/{extractionID}/retry', scope: 'assets:process' },
47
94
  { id: 'patchAsset', method: 'PATCH', path: '/api/v1/assets/{assetID}', scope: 'assets:write' },
48
95
  { id: 'getAssetAI', method: 'GET', path: '/api/v1/assets/{assetID}/ai', scope: 'assets:read' },
49
96
  { id: 'analyzeAsset', method: 'POST', path: '/api/v1/assets/{assetID}/ai/analyze', scope: 'assets:process' },
@@ -63,4 +110,10 @@ export const assetContractOperations = [
63
110
  { id: 'setAssetTags', method: 'PUT', path: '/api/v1/assets/{assetID}/tags', scope: 'assets:write' },
64
111
  { id: 'patchAssetMetadata', method: 'PATCH', path: '/api/v1/assets/{assetID}/metadata', scope: 'assets:write' },
65
112
  { id: 'purgeAsset', method: 'POST', path: '/api/v1/assets/{assetID}/purge', scope: 'assets:admin' },
113
+ { id: 'widgetCreateUploadSession', method: 'POST', path: '/assets/widget/sessions', scope: 'assets:write' },
114
+ { id: 'widgetGetUploadSession', method: 'GET', path: '/assets/widget/sessions/current', scope: 'assets:write' },
115
+ { id: 'widgetUploadPart', method: 'PUT', path: '/assets/widget/uploads/{sessionToken}/parts/{partNumber}', scope: 'assets:write' },
116
+ { id: 'widgetCompleteUploadSession', method: 'POST', path: '/assets/widget/sessions/current/complete', scope: 'assets:write' },
117
+ { id: 'widgetCancelUploadSession', method: 'DELETE', path: '/assets/widget/sessions/current', scope: 'assets:write' },
118
+ { id: 'widgetIngestRemoteUrl', method: 'POST', path: '/assets/widget/remote-url', scope: 'assets:write' },
66
119
  ];
package/dist/index.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  export { StackShift, StackShiftAPIError } from './client.js';
2
2
  export { AssetsClient, assetTransformOptions, assetTransformPresets, assetTransformSpec, getAssetTransformPreset } from './assets.js';
3
+ export { AssetWorkflowsClient } from './asset-workflows.js';
4
+ export type * from './asset-workflows.js';
5
+ export type * from './asset-media-v2.js';
6
+ export { AssetConnectionsClient, AssetMigrationsClient, AssetStorageClient, AssetTextClient, AssetUploadCapabilitiesClient } from './assets-platform.js';
7
+ export type * from './assets-platform-types.js';
8
+ export { ChunkedUploadController, UploadResumeInvalidError, putBlob, sha256Blob } from './upload-controller.js';
9
+ export type { ChunkUploadCallbacks, ChunkUploadRequest, ChunkUploadSession, ChunkUploadTransport, ChunkedUploadOptions, UploadProgress, UploadResumeRecord, UploadResumeStore, UploadedPart } from './upload-controller.js';
3
10
  export { createResponsiveImage, namedResponsiveSource, uploadBrowserFile } from './assets-framework.js';
4
11
  export type { ArtDirectionSource, ResponsiveImageDescriptor, ResponsiveImageOptions } from './assets-framework.js';
5
12
  export { assetContractOperations } from './generated/assets-contract.js';
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
1
  export { StackShift, StackShiftAPIError } from './client.js';
2
2
  export { AssetsClient, assetTransformOptions, assetTransformPresets, assetTransformSpec, getAssetTransformPreset } from './assets.js';
3
+ export { AssetWorkflowsClient } from './asset-workflows.js';
4
+ export { AssetConnectionsClient, AssetMigrationsClient, AssetStorageClient, AssetTextClient, AssetUploadCapabilitiesClient } from './assets-platform.js';
5
+ export { ChunkedUploadController, UploadResumeInvalidError, putBlob, sha256Blob } from './upload-controller.js';
3
6
  export { createResponsiveImage, namedResponsiveSource, uploadBrowserFile } from './assets-framework.js';
4
7
  export { assetContractOperations } from './generated/assets-contract.js';
5
8
  export { MailBouncesClient, MailClient, MailDomainsClient, MailEventsClient, MailLimitsClient, MailMessagesClient, MailScheduledClient, MailBatchClient, MailInboundClient, MailAnalyticsClient, MailOtpChallengesClient, MailOtpClient, MailReputationClient, MailReputationEventsClient, MailSuppressionsClient, MailTemplatesClient, MailWebhooksClient, MailStreamsClient, MailAudiencesClient, MailCampaignsClient, } from './mail.js';
package/dist/types.d.ts CHANGED
@@ -362,6 +362,12 @@ export interface AssetBucket {
362
362
  allowed_origins: string[];
363
363
  lifecycle_policy: Record<string, unknown>;
364
364
  custom_domain_id?: string;
365
+ storage_mode: 'managed' | 'byob' | 'stackshift_s2';
366
+ connection_id?: string;
367
+ s2_bucket_id?: string;
368
+ object_prefix: string;
369
+ derivative_prefix: string;
370
+ auto_extract_text: boolean;
365
371
  revision: number;
366
372
  created_at: string;
367
373
  updated_at: string;
@@ -0,0 +1,70 @@
1
+ export interface UploadProgress {
2
+ loaded: number;
3
+ total: number;
4
+ percent: number;
5
+ }
6
+ export interface UploadedPart {
7
+ partNumber: number;
8
+ size: number;
9
+ checksumSHA256?: string;
10
+ }
11
+ export interface ChunkUploadSession {
12
+ id: string;
13
+ uploadToken: string;
14
+ expiresAt: string;
15
+ maxBytes: number;
16
+ partSize: number;
17
+ parts: UploadedPart[];
18
+ resumeContext?: string;
19
+ }
20
+ export interface ChunkUploadRequest {
21
+ key: string;
22
+ fileName: string;
23
+ mimeType: string;
24
+ metadata?: Record<string, unknown>;
25
+ }
26
+ export interface ChunkUploadCallbacks {
27
+ signal?: AbortSignal;
28
+ onProgress?: (progress: UploadProgress) => void;
29
+ onPartProgress?: (partNumber: number, progress: UploadProgress) => void;
30
+ onSession?: (session: ChunkUploadSession) => void;
31
+ }
32
+ export interface ChunkUploadTransport<TResult> {
33
+ create(file: Blob, request: ChunkUploadRequest): Promise<ChunkUploadSession>;
34
+ resume(resumeContext: string): Promise<ChunkUploadSession>;
35
+ uploadPart(session: ChunkUploadSession, partNumber: number, chunk: Blob, checksum: string, callbacks: ChunkUploadCallbacks): Promise<void>;
36
+ complete(session: ChunkUploadSession): Promise<TResult>;
37
+ cancel(session: ChunkUploadSession): Promise<void>;
38
+ }
39
+ export interface UploadResumeRecord {
40
+ key: string;
41
+ fingerprint: string;
42
+ session: ChunkUploadSession;
43
+ updatedAt: string;
44
+ }
45
+ export interface UploadResumeStore {
46
+ get(key: string): Promise<UploadResumeRecord | undefined>;
47
+ set(record: UploadResumeRecord): Promise<void>;
48
+ delete(key: string): Promise<void>;
49
+ }
50
+ export interface ChunkedUploadOptions extends ChunkUploadCallbacks {
51
+ resumeKey?: string;
52
+ concurrency?: number;
53
+ retryAttempts?: number;
54
+ cancelOnAbort?: boolean;
55
+ }
56
+ export declare class UploadResumeInvalidError extends Error {
57
+ constructor(message?: string);
58
+ }
59
+ export declare class ChunkedUploadController<TResult> {
60
+ private readonly transport;
61
+ private readonly store?;
62
+ private persistence;
63
+ constructor(transport: ChunkUploadTransport<TResult>, store?: UploadResumeStore | undefined);
64
+ upload(file: Blob, request: ChunkUploadRequest, options?: ChunkedUploadOptions): Promise<TResult>;
65
+ cancel(resumeKey: string): Promise<void>;
66
+ private restore;
67
+ private persist;
68
+ }
69
+ export declare function putBlob(url: string, blob: Blob, callbacks?: ChunkUploadCallbacks, headers?: Record<string, string>, fetcher?: typeof fetch): Promise<void>;
70
+ export declare function sha256Blob(blob: Blob): Promise<string>;