@epilot/file-client 1.15.2 → 1.16.0-alpha.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.
@@ -1 +1 @@
1
- (()=>{"use strict";var e={330:function(e,r,i){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var t=a(i(466));r.default=t.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"paths":{"/v2/files/upload":{"post":{"operationId":"uploadFileV2","parameters":[{"name":"file_entity_id","in":"query"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/files":{"post":{"operationId":"saveFileV2","parameters":[{"$ref":"#/components/parameters/ActivityIdQueryParam"},{"$ref":"#/components/parameters/FillActivityQueryParam"},{"$ref":"#/components/parameters/StrictQueryParam"},{"$ref":"#/components/parameters/AsyncOperationQueryParam"},{"$ref":"#/components/parameters/DeleteTempFileQueryParam"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files/upload":{"post":{"operationId":"uploadFile","deprecated":true,"parameters":[{"name":"file_entity_id","in":"query"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files":{"post":{"operationId":"saveFile","deprecated":true,"parameters":[{"$ref":"#/components/parameters/ActivityIdQueryParam"},{"$ref":"#/components/parameters/AsyncOperationQueryParam"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/files/{id}":{"get":{"operationId":"getFile","parameters":[{"name":"id","in":"path","required":true},{"name":"source_url","in":"query"},{"$ref":"#/components/parameters/StrictQueryParam"},{"$ref":"#/components/parameters/AsyncOperationQueryParam"}],"responses":{}},"delete":{"operationId":"deleteFile","parameters":[{"name":"id","in":"path","required":true},{"name":"purge","in":"query"},{"$ref":"#/components/parameters/ActivityIdQueryParam"},{"$ref":"#/components/parameters/StrictQueryParam"}],"responses":{}}},"/v1/files/{id}/download":{"get":{"operationId":"downloadFile","parameters":[{"name":"id","in":"path","required":true},{"name":"version","in":"query"},{"name":"attachment","in":"query"}],"responses":{}}},"/v1/files:downloadS3":{"post":{"operationId":"downloadS3File","parameters":[{"name":"s3_key","in":"query","required":true},{"name":"s3_bucket","in":"query","required":true},{"name":"attachment","in":"query"}],"responses":{}}},"/v1/files:downloadFiles":{"post":{"operationId":"downloadFiles","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files/{id}/preview":{"get":{"operationId":"previewFile","parameters":[{"name":"id","in":"path","required":true},{"name":"version","in":"query"},{"name":"w","in":"query"},{"name":"h","in":"query"}],"responses":{}}},"/v1/files:previewS3":{"post":{"operationId":"previewS3File","parameters":[{"name":"w","in":"query"},{"name":"h","in":"query"}],"requestBody":{"content":{"application/json":{}}},"responses":{}},"get":{"operationId":"previewS3FileGet","parameters":[{"name":"key","in":"query","required":true},{"name":"bucket","in":"query","required":true},{"name":"w","in":"query"},{"name":"h","in":"query"}],"responses":{}}},"/v1/files/public/{id}/preview":{"get":{"operationId":"previewPublicFile","parameters":[{"name":"id","in":"path","required":true},{"name":"version","in":"query"},{"name":"w","in":"query"},{"name":"h","in":"query"},{"name":"org_id","in":"query"}],"responses":{}}},"/v1/files/session":{"get":{"operationId":"getSession","responses":{}},"delete":{"operationId":"deleteSession","responses":{}}},"/v1/files/{id}/public/links":{"post":{"operationId":"generatePublicLink","parameters":[{"name":"id","in":"path","required":true}],"responses":{}},"get":{"operationId":"listPublicLinksForFile","parameters":[{"name":"id","in":"path","required":true}],"responses":{}}},"/v1/files/public/links/{id}/{filename}":{"get":{"operationId":"accessPublicLink","parameters":[{"name":"id","in":"path","required":true},{"name":"filename","in":"path","required":true},{"name":"hash","in":"query","required":false}],"responses":{}}},"/v1/files/public/links/{id}":{"delete":{"operationId":"revokePublicLink","parameters":[{"name":"id","in":"path","required":true}],"responses":{}}},"/v1/files/download:verify":{"post":{"operationId":"verifyCustomDownloadUrl","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files/public/upload":{"post":{"operationId":"uploadFilePublic","requestBody":{"content":{"application/json":{}}},"responses":{}}}},"components":{"parameters":{"StrictQueryParam":{"name":"strict","in":"query","required":false},"ActivityIdQueryParam":{"name":"activity_id","in":"query","required":false},"FillActivityQueryParam":{"name":"fill_activity","in":"query","required":false},"AsyncOperationQueryParam":{"name":"async","in":"query","required":false},"DeleteTempFileQueryParam":{"name":"delete_temp_file","in":"query","required":false}}},"servers":[{"url":"https://file.sls.epilot.io"}]}')}},r={},i=function i(a){var t=r[a];if(void 0!==t)return t.exports;var n=r[a]={exports:{}};return e[a].call(n.exports,n,n.exports,i),n.exports}(330),a=exports;for(var t in i)a[t]=i[t];i.__esModule&&Object.defineProperty(a,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"paths":{"/v2/files/upload":{"post":{"operationId":"uploadFileV2","parameters":[{"name":"file_entity_id","in":"query"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/files":{"post":{"operationId":"saveFileV2","parameters":[{"$ref":"#/components/parameters/ActivityIdQueryParam"},{"$ref":"#/components/parameters/FillActivityQueryParam"},{"$ref":"#/components/parameters/StrictQueryParam"},{"$ref":"#/components/parameters/AsyncOperationQueryParam"},{"$ref":"#/components/parameters/DeleteTempFileQueryParam"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files/upload":{"post":{"operationId":"uploadFile","deprecated":true,"parameters":[{"name":"file_entity_id","in":"query"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files":{"post":{"operationId":"saveFile","deprecated":true,"parameters":[{"$ref":"#/components/parameters/ActivityIdQueryParam"},{"$ref":"#/components/parameters/AsyncOperationQueryParam"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v2/files/{id}":{"get":{"operationId":"getFile","parameters":[{"name":"id","in":"path","required":true},{"name":"source_url","in":"query"},{"$ref":"#/components/parameters/StrictQueryParam"},{"$ref":"#/components/parameters/AsyncOperationQueryParam"}],"responses":{}},"delete":{"operationId":"deleteFile","parameters":[{"name":"id","in":"path","required":true},{"name":"purge","in":"query"},{"$ref":"#/components/parameters/ActivityIdQueryParam"},{"$ref":"#/components/parameters/StrictQueryParam"}],"responses":{}}},"/v1/files/{id}/download":{"get":{"operationId":"downloadFile","parameters":[{"name":"id","in":"path","required":true},{"name":"version","in":"query"},{"name":"attachment","in":"query"}],"responses":{}}},"/v1/files:downloadS3":{"post":{"operationId":"downloadS3File","parameters":[{"name":"s3_key","in":"query","required":true},{"name":"s3_bucket","in":"query","required":true},{"name":"attachment","in":"query"}],"responses":{}}},"/v1/files:downloadFiles":{"post":{"operationId":"downloadFiles","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files/{id}/preview":{"get":{"operationId":"previewFile","parameters":[{"name":"id","in":"path","required":true},{"name":"version","in":"query"},{"name":"w","in":"query"},{"name":"h","in":"query"}],"responses":{}}},"/v1/files:previewS3":{"post":{"operationId":"previewS3File","parameters":[{"name":"w","in":"query"},{"name":"h","in":"query"}],"requestBody":{"content":{"application/json":{}}},"responses":{}},"get":{"operationId":"previewS3FileGet","parameters":[{"name":"key","in":"query","required":true},{"name":"bucket","in":"query","required":true},{"name":"w","in":"query"},{"name":"h","in":"query"}],"responses":{}}},"/v1/files/public/{id}/preview":{"get":{"operationId":"previewPublicFile","parameters":[{"name":"id","in":"path","required":true},{"name":"version","in":"query"},{"name":"w","in":"query"},{"name":"h","in":"query"},{"name":"org_id","in":"query"}],"responses":{}}},"/v1/files/session":{"get":{"operationId":"getSession","responses":{}},"delete":{"operationId":"deleteSession","responses":{}}},"/v1/files/{id}/public/links":{"post":{"operationId":"generatePublicLink","parameters":[{"name":"id","in":"path","required":true}],"responses":{}},"get":{"operationId":"listPublicLinksForFile","parameters":[{"name":"id","in":"path","required":true}],"responses":{}}},"/v1/files/public/links/{id}/{filename}":{"get":{"operationId":"accessPublicLink","parameters":[{"name":"id","in":"path","required":true},{"name":"filename","in":"path","required":true},{"name":"hash","in":"query","required":false}],"responses":{}}},"/v1/files/public/links/{id}":{"delete":{"operationId":"revokePublicLink","parameters":[{"name":"id","in":"path","required":true}],"responses":{}}},"/v1/files/download:verify":{"post":{"operationId":"verifyCustomDownloadUrl","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/files/public/upload":{"post":{"operationId":"uploadFilePublic","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/entity/{id}/folders":{"get":{"operationId":"getFileFolders","parameters":[{"$ref":"#/components/parameters/EntityIdPathParam"},{"name":"parents","in":"query","required":false,"style":"form","explode":true}],"responses":{}},"post":{"operationId":"createFileFolder","parameters":[{"$ref":"#/components/parameters/EntityIdPathParam"}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/entity/{id}/folders/{folderSlug}":{"put":{"operationId":"updateFileFolder","parameters":[{"$ref":"#/components/parameters/EntityIdPathParam"},{"name":"folderSlug","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"deleteFileFolder","parameters":[{"$ref":"#/components/parameters/EntityIdPathParam"},{"name":"folderSlug","in":"path","required":true}],"responses":{}}},"/v1/entity/{id}/folders/{folderSlug}/files":{"get":{"operationId":"getFilesInFolder","parameters":[{"$ref":"#/components/parameters/EntityIdPathParam"},{"name":"folderSlug","in":"path","required":true}],"responses":{}}}},"components":{"parameters":{"EntityIdPathParam":{"name":"id","in":"path","required":true},"StrictQueryParam":{"name":"strict","in":"query","required":false},"ActivityIdQueryParam":{"name":"activity_id","in":"query","required":false},"FillActivityQueryParam":{"name":"fill_activity","in":"query","required":false},"AsyncOperationQueryParam":{"name":"async","in":"query","required":false},"DeleteTempFileQueryParam":{"name":"delete_temp_file","in":"query","required":false}},"responses":{"NotFoundError":{"content":{"application/json":{}}}}},"servers":[{"url":"https://file.sls.epilot.io"}]}')},757:function(e,r,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var n=a(t(466));r.default=n.default}},r={},t=function t(a){var n=r[a];if(void 0!==n)return n.exports;var i=r[a]={exports:{}};return e[a].call(i.exports,i,i.exports,t),i.exports}(757),a=exports;for(var n in t)a[n]=t[n];t.__esModule&&Object.defineProperty(a,"__esModule",{value:!0})})();
@@ -376,10 +376,100 @@
376
376
  },
377
377
  "responses": {}
378
378
  }
379
+ },
380
+ "/v1/entity/{id}/folders": {
381
+ "get": {
382
+ "operationId": "getFileFolders",
383
+ "parameters": [
384
+ {
385
+ "$ref": "#/components/parameters/EntityIdPathParam"
386
+ },
387
+ {
388
+ "name": "parents",
389
+ "in": "query",
390
+ "required": false,
391
+ "style": "form",
392
+ "explode": true
393
+ }
394
+ ],
395
+ "responses": {}
396
+ },
397
+ "post": {
398
+ "operationId": "createFileFolder",
399
+ "parameters": [
400
+ {
401
+ "$ref": "#/components/parameters/EntityIdPathParam"
402
+ }
403
+ ],
404
+ "requestBody": {
405
+ "required": true,
406
+ "content": {
407
+ "application/json": {}
408
+ }
409
+ },
410
+ "responses": {}
411
+ }
412
+ },
413
+ "/v1/entity/{id}/folders/{folderSlug}": {
414
+ "put": {
415
+ "operationId": "updateFileFolder",
416
+ "parameters": [
417
+ {
418
+ "$ref": "#/components/parameters/EntityIdPathParam"
419
+ },
420
+ {
421
+ "name": "folderSlug",
422
+ "in": "path",
423
+ "required": true
424
+ }
425
+ ],
426
+ "requestBody": {
427
+ "required": true,
428
+ "content": {
429
+ "application/json": {}
430
+ }
431
+ },
432
+ "responses": {}
433
+ },
434
+ "delete": {
435
+ "operationId": "deleteFileFolder",
436
+ "parameters": [
437
+ {
438
+ "$ref": "#/components/parameters/EntityIdPathParam"
439
+ },
440
+ {
441
+ "name": "folderSlug",
442
+ "in": "path",
443
+ "required": true
444
+ }
445
+ ],
446
+ "responses": {}
447
+ }
448
+ },
449
+ "/v1/entity/{id}/folders/{folderSlug}/files": {
450
+ "get": {
451
+ "operationId": "getFilesInFolder",
452
+ "parameters": [
453
+ {
454
+ "$ref": "#/components/parameters/EntityIdPathParam"
455
+ },
456
+ {
457
+ "name": "folderSlug",
458
+ "in": "path",
459
+ "required": true
460
+ }
461
+ ],
462
+ "responses": {}
463
+ }
379
464
  }
380
465
  },
381
466
  "components": {
382
467
  "parameters": {
468
+ "EntityIdPathParam": {
469
+ "name": "id",
470
+ "in": "path",
471
+ "required": true
472
+ },
383
473
  "StrictQueryParam": {
384
474
  "name": "strict",
385
475
  "in": "query",
@@ -405,6 +495,13 @@
405
495
  "in": "query",
406
496
  "required": false
407
497
  }
498
+ },
499
+ "responses": {
500
+ "NotFoundError": {
501
+ "content": {
502
+ "application/json": {}
503
+ }
504
+ }
408
505
  }
409
506
  },
410
507
  "servers": [
package/dist/openapi.d.ts CHANGED
@@ -18,9 +18,17 @@ declare namespace Components {
18
18
  Schemas.ActivityId /* ulid */;
19
19
  export type AsyncOperationQueryParam = boolean;
20
20
  export type DeleteTempFileQueryParam = boolean;
21
+ export type EntityIdPathParam = /**
22
+ * example:
23
+ * ef7d985c-2385-44f4-9c71-ae06a52264f8
24
+ */
25
+ Schemas.EntityId;
21
26
  export type FillActivityQueryParam = boolean;
22
27
  export type StrictQueryParam = boolean;
23
28
  }
29
+ export interface PathParameters {
30
+ EntityIdPathParam?: Parameters.EntityIdPathParam;
31
+ }
24
32
  export interface QueryParameters {
25
33
  StrictQueryParam?: Parameters.StrictQueryParam;
26
34
  ActivityIdQueryParam?: Parameters.ActivityIdQueryParam;
@@ -28,6 +36,30 @@ declare namespace Components {
28
36
  AsyncOperationQueryParam?: Parameters.AsyncOperationQueryParam;
29
37
  DeleteTempFileQueryParam?: Parameters.DeleteTempFileQueryParam;
30
38
  }
39
+ namespace Responses {
40
+ /**
41
+ * A generic error returned by the API
42
+ * example:
43
+ * {
44
+ * "status": 404,
45
+ * "error": "Not Found"
46
+ * }
47
+ */
48
+ export interface NotFoundError {
49
+ /**
50
+ * The HTTP status code of the error
51
+ * example:
52
+ * 400
53
+ */
54
+ status?: number;
55
+ /**
56
+ * The error message
57
+ * example:
58
+ * Bad Request
59
+ */
60
+ error?: string;
61
+ }
62
+ }
31
63
  namespace Schemas {
32
64
  /**
33
65
  * See https://github.com/ulid/spec
@@ -108,6 +140,23 @@ declare namespace Components {
108
140
  * contact
109
141
  */
110
142
  export type EntitySlug = string;
143
+ /**
144
+ * A generic error returned by the API
145
+ */
146
+ export interface ErrorObject {
147
+ /**
148
+ * The HTTP status code of the error
149
+ * example:
150
+ * 400
151
+ */
152
+ status?: number;
153
+ /**
154
+ * The error message
155
+ * example:
156
+ * Bad Request
157
+ */
158
+ error?: string;
159
+ }
111
160
  export interface FileAttributes {
112
161
  /**
113
162
  * example:
@@ -271,6 +320,85 @@ declare namespace Components {
271
320
  * ef7d985c-2385-44f4-9c71-ae06a52264f8
272
321
  */
273
322
  export type FileEntityId = string;
323
+ export interface FileFolderAttributes {
324
+ /**
325
+ * Name of the file folder
326
+ */
327
+ name?: string;
328
+ /**
329
+ * Optional parent folder slug. If not provided, the folder will be created at the top level
330
+ */
331
+ parent?: string;
332
+ /**
333
+ * Array of file IDs in this folder
334
+ */
335
+ files?: string /* uuid */[];
336
+ }
337
+ /**
338
+ * Request body for creating a file folder
339
+ */
340
+ export interface FileFolderCreateRequest {
341
+ /**
342
+ * Name of the file folder
343
+ */
344
+ name: string;
345
+ /**
346
+ * Optional parent folder slug. If not provided, the folder will be created at the top level
347
+ */
348
+ parent?: string;
349
+ /**
350
+ * Array of file IDs in this folder
351
+ */
352
+ files?: string /* uuid */[];
353
+ }
354
+ /**
355
+ * Generated uuid for a file folder
356
+ */
357
+ export type FileFolderId = string; // uuid
358
+ /**
359
+ * A file folder with identifiers and timestamps
360
+ */
361
+ export interface FileFolderItem {
362
+ /**
363
+ * Full slug for the folder
364
+ * example:
365
+ * _system_files_collection_entity-123:documents
366
+ */
367
+ slug?: string;
368
+ /**
369
+ * Display name of the folder
370
+ * example:
371
+ * Documents
372
+ */
373
+ name: string;
374
+ id?: /* Generated uuid for a file folder */ FileFolderId /* uuid */;
375
+ /**
376
+ * Array of parent folder slugs, empty array if top-level folder
377
+ * example:
378
+ * [
379
+ * "_system_files_collection_entity-123"
380
+ * ]
381
+ */
382
+ parents?: string[];
383
+ /**
384
+ * Whether the folder is starred / favorited
385
+ * example:
386
+ * false
387
+ */
388
+ starred?: boolean;
389
+ /**
390
+ * Timestamp when the folder was created
391
+ * example:
392
+ * 2024-01-01T12:00:00Z
393
+ */
394
+ created_at?: string; // date-time
395
+ /**
396
+ * Timestamp when the folder was last updated
397
+ * example:
398
+ * 2024-01-02T12:00:00Z
399
+ */
400
+ updated_at?: string; // date-time
401
+ }
274
402
  export interface FileItem {
275
403
  s3ref?: S3Ref;
276
404
  /**
@@ -666,6 +794,31 @@ declare namespace Paths {
666
794
  }
667
795
  }
668
796
  }
797
+ namespace CreateFileFolder {
798
+ namespace Parameters {
799
+ export type Id = /**
800
+ * example:
801
+ * ef7d985c-2385-44f4-9c71-ae06a52264f8
802
+ */
803
+ Components.Schemas.EntityId;
804
+ }
805
+ export interface PathParameters {
806
+ id: Parameters.Id;
807
+ }
808
+ export type RequestBody = /* Request body for creating a file folder */ Components.Schemas.FileFolderCreateRequest;
809
+ namespace Responses {
810
+ export type $201 = /* A file folder with identifiers and timestamps */ Components.Schemas.FileFolderItem;
811
+ export type $404 = /**
812
+ * A generic error returned by the API
813
+ * example:
814
+ * {
815
+ * "status": 404,
816
+ * "error": "Not Found"
817
+ * }
818
+ */
819
+ Components.Responses.NotFoundError;
820
+ }
821
+ }
669
822
  namespace DeleteFile {
670
823
  namespace Parameters {
671
824
  export type ActivityId = /**
@@ -697,6 +850,41 @@ declare namespace Paths {
697
850
  export type $200 = Components.Schemas.FileEntity;
698
851
  }
699
852
  }
853
+ namespace DeleteFileFolder {
854
+ namespace Parameters {
855
+ /**
856
+ * example:
857
+ * documents
858
+ */
859
+ export type FolderSlug = string;
860
+ export type Id = /**
861
+ * example:
862
+ * ef7d985c-2385-44f4-9c71-ae06a52264f8
863
+ */
864
+ Components.Schemas.EntityId;
865
+ }
866
+ export interface PathParameters {
867
+ id: Parameters.Id;
868
+ folderSlug: /**
869
+ * example:
870
+ * documents
871
+ */
872
+ Parameters.FolderSlug;
873
+ }
874
+ namespace Responses {
875
+ export interface $200 {
876
+ }
877
+ export type $404 = /**
878
+ * A generic error returned by the API
879
+ * example:
880
+ * {
881
+ * "status": 404,
882
+ * "error": "Not Found"
883
+ * }
884
+ */
885
+ Components.Responses.NotFoundError;
886
+ }
887
+ }
700
888
  namespace DeleteSession {
701
889
  namespace Responses {
702
890
  export interface $200 {
@@ -809,6 +997,73 @@ declare namespace Paths {
809
997
  export type $200 = Components.Schemas.FileEntity;
810
998
  }
811
999
  }
1000
+ namespace GetFileFolders {
1001
+ namespace Parameters {
1002
+ export type Id = /**
1003
+ * example:
1004
+ * ef7d985c-2385-44f4-9c71-ae06a52264f8
1005
+ */
1006
+ Components.Schemas.EntityId;
1007
+ export type Parents = string[];
1008
+ }
1009
+ export interface PathParameters {
1010
+ id: Parameters.Id;
1011
+ }
1012
+ export interface QueryParameters {
1013
+ parents?: Parameters.Parents;
1014
+ }
1015
+ namespace Responses {
1016
+ export type $200 = /* A file folder with identifiers and timestamps */ Components.Schemas.FileFolderItem[];
1017
+ export type $404 = /**
1018
+ * A generic error returned by the API
1019
+ * example:
1020
+ * {
1021
+ * "status": 404,
1022
+ * "error": "Not Found"
1023
+ * }
1024
+ */
1025
+ Components.Responses.NotFoundError;
1026
+ }
1027
+ }
1028
+ namespace GetFilesInFolder {
1029
+ namespace Parameters {
1030
+ /**
1031
+ * example:
1032
+ * documents
1033
+ */
1034
+ export type FolderSlug = string;
1035
+ export type Id = /**
1036
+ * example:
1037
+ * ef7d985c-2385-44f4-9c71-ae06a52264f8
1038
+ */
1039
+ Components.Schemas.EntityId;
1040
+ }
1041
+ export interface PathParameters {
1042
+ id: Parameters.Id;
1043
+ folderSlug: /**
1044
+ * example:
1045
+ * documents
1046
+ */
1047
+ Parameters.FolderSlug;
1048
+ }
1049
+ namespace Responses {
1050
+ export type $200 = Components.Schemas.FileEntity[];
1051
+ export interface $403 {
1052
+ /**
1053
+ * example:
1054
+ * User must have permission to view this entity to access its files
1055
+ */
1056
+ error?: string;
1057
+ }
1058
+ export interface $404 {
1059
+ /**
1060
+ * example:
1061
+ * Entity not found
1062
+ */
1063
+ error?: string;
1064
+ }
1065
+ }
1066
+ }
812
1067
  namespace GetSession {
813
1068
  namespace Responses {
814
1069
  export interface $200 {
@@ -974,6 +1229,41 @@ declare namespace Paths {
974
1229
  export type $200 = Components.Schemas.FileEntity;
975
1230
  }
976
1231
  }
1232
+ namespace UpdateFileFolder {
1233
+ namespace Parameters {
1234
+ /**
1235
+ * example:
1236
+ * documents
1237
+ */
1238
+ export type FolderSlug = string;
1239
+ export type Id = /**
1240
+ * example:
1241
+ * ef7d985c-2385-44f4-9c71-ae06a52264f8
1242
+ */
1243
+ Components.Schemas.EntityId;
1244
+ }
1245
+ export interface PathParameters {
1246
+ id: Parameters.Id;
1247
+ folderSlug: /**
1248
+ * example:
1249
+ * documents
1250
+ */
1251
+ Parameters.FolderSlug;
1252
+ }
1253
+ export type RequestBody = /* Request body for creating a file folder */ Components.Schemas.FileFolderCreateRequest;
1254
+ namespace Responses {
1255
+ export type $200 = /* A file folder with identifiers and timestamps */ Components.Schemas.FileFolderItem;
1256
+ export type $404 = /**
1257
+ * A generic error returned by the API
1258
+ * example:
1259
+ * {
1260
+ * "status": 404,
1261
+ * "error": "Not Found"
1262
+ * }
1263
+ */
1264
+ Components.Responses.NotFoundError;
1265
+ }
1266
+ }
977
1267
  namespace UploadFile {
978
1268
  namespace Parameters {
979
1269
  export type FileEntityId = /**
@@ -1013,6 +1303,11 @@ declare namespace Paths {
1013
1303
  * https://epilot-prod-user-content.s3.eu-central-1.amazonaws.com/123/temp/4d689aeb-1497-4410-a9fe-b36ca9ac4389/document.pdf?AWSParams=123
1014
1304
  */
1015
1305
  upload_url?: string; // url
1306
+ /**
1307
+ * example:
1308
+ * File entity not found
1309
+ */
1310
+ error?: string;
1016
1311
  }
1017
1312
  }
1018
1313
  }
@@ -1275,6 +1570,56 @@ export interface OperationMethods {
1275
1570
  data?: Paths.UploadFilePublic.RequestBody,
1276
1571
  config?: AxiosRequestConfig
1277
1572
  ): OperationResponse<Paths.UploadFilePublic.Responses.$201>
1573
+ /**
1574
+ * getFileFolders - getFileFolders
1575
+ *
1576
+ * Gets a list of folders that exist for an entity
1577
+ */
1578
+ 'getFileFolders'(
1579
+ parameters?: Parameters<Paths.GetFileFolders.QueryParameters & Paths.GetFileFolders.PathParameters> | null,
1580
+ data?: any,
1581
+ config?: AxiosRequestConfig
1582
+ ): OperationResponse<Paths.GetFileFolders.Responses.$200>
1583
+ /**
1584
+ * createFileFolder - createFileFolder
1585
+ *
1586
+ * Creates a new file folder for the specified entity
1587
+ */
1588
+ 'createFileFolder'(
1589
+ parameters?: Parameters<Paths.CreateFileFolder.PathParameters> | null,
1590
+ data?: Paths.CreateFileFolder.RequestBody,
1591
+ config?: AxiosRequestConfig
1592
+ ): OperationResponse<Paths.CreateFileFolder.Responses.$201>
1593
+ /**
1594
+ * updateFileFolder - updateFileFolder
1595
+ *
1596
+ * Updates a specific file folder by slug
1597
+ */
1598
+ 'updateFileFolder'(
1599
+ parameters?: Parameters<Paths.UpdateFileFolder.PathParameters> | null,
1600
+ data?: Paths.UpdateFileFolder.RequestBody,
1601
+ config?: AxiosRequestConfig
1602
+ ): OperationResponse<Paths.UpdateFileFolder.Responses.$200>
1603
+ /**
1604
+ * deleteFileFolder - deleteFileFolder
1605
+ *
1606
+ * Deletes a specific file folder by slug
1607
+ */
1608
+ 'deleteFileFolder'(
1609
+ parameters?: Parameters<Paths.DeleteFileFolder.PathParameters> | null,
1610
+ data?: any,
1611
+ config?: AxiosRequestConfig
1612
+ ): OperationResponse<Paths.DeleteFileFolder.Responses.$200>
1613
+ /**
1614
+ * getFilesInFolder - getFilesInFolder
1615
+ *
1616
+ * Gets all files within a specific folder for an entity
1617
+ */
1618
+ 'getFilesInFolder'(
1619
+ parameters?: Parameters<Paths.GetFilesInFolder.PathParameters> | null,
1620
+ data?: any,
1621
+ config?: AxiosRequestConfig
1622
+ ): OperationResponse<Paths.GetFilesInFolder.Responses.$200>
1278
1623
  }
1279
1624
 
1280
1625
  export interface PathsDictionary {
@@ -1543,6 +1888,62 @@ export interface PathsDictionary {
1543
1888
  config?: AxiosRequestConfig
1544
1889
  ): OperationResponse<Paths.UploadFilePublic.Responses.$201>
1545
1890
  }
1891
+ ['/v1/entity/{id}/folders']: {
1892
+ /**
1893
+ * getFileFolders - getFileFolders
1894
+ *
1895
+ * Gets a list of folders that exist for an entity
1896
+ */
1897
+ 'get'(
1898
+ parameters?: Parameters<Paths.GetFileFolders.QueryParameters & Paths.GetFileFolders.PathParameters> | null,
1899
+ data?: any,
1900
+ config?: AxiosRequestConfig
1901
+ ): OperationResponse<Paths.GetFileFolders.Responses.$200>
1902
+ /**
1903
+ * createFileFolder - createFileFolder
1904
+ *
1905
+ * Creates a new file folder for the specified entity
1906
+ */
1907
+ 'post'(
1908
+ parameters?: Parameters<Paths.CreateFileFolder.PathParameters> | null,
1909
+ data?: Paths.CreateFileFolder.RequestBody,
1910
+ config?: AxiosRequestConfig
1911
+ ): OperationResponse<Paths.CreateFileFolder.Responses.$201>
1912
+ }
1913
+ ['/v1/entity/{id}/folders/{folderSlug}']: {
1914
+ /**
1915
+ * updateFileFolder - updateFileFolder
1916
+ *
1917
+ * Updates a specific file folder by slug
1918
+ */
1919
+ 'put'(
1920
+ parameters?: Parameters<Paths.UpdateFileFolder.PathParameters> | null,
1921
+ data?: Paths.UpdateFileFolder.RequestBody,
1922
+ config?: AxiosRequestConfig
1923
+ ): OperationResponse<Paths.UpdateFileFolder.Responses.$200>
1924
+ /**
1925
+ * deleteFileFolder - deleteFileFolder
1926
+ *
1927
+ * Deletes a specific file folder by slug
1928
+ */
1929
+ 'delete'(
1930
+ parameters?: Parameters<Paths.DeleteFileFolder.PathParameters> | null,
1931
+ data?: any,
1932
+ config?: AxiosRequestConfig
1933
+ ): OperationResponse<Paths.DeleteFileFolder.Responses.$200>
1934
+ }
1935
+ ['/v1/entity/{id}/folders/{folderSlug}/files']: {
1936
+ /**
1937
+ * getFilesInFolder - getFilesInFolder
1938
+ *
1939
+ * Gets all files within a specific folder for an entity
1940
+ */
1941
+ 'get'(
1942
+ parameters?: Parameters<Paths.GetFilesInFolder.PathParameters> | null,
1943
+ data?: any,
1944
+ config?: AxiosRequestConfig
1945
+ ): OperationResponse<Paths.GetFilesInFolder.Responses.$200>
1946
+ }
1546
1947
  }
1547
1948
 
1548
1949
  export type Client = OpenAPIClient<OperationMethods, PathsDictionary>
@@ -1556,9 +1957,14 @@ export type CustomDownloadUrl = Components.Schemas.CustomDownloadUrl;
1556
1957
  export type DownloadFilesPayload = Components.Schemas.DownloadFilesPayload;
1557
1958
  export type EntityId = Components.Schemas.EntityId;
1558
1959
  export type EntitySlug = Components.Schemas.EntitySlug;
1960
+ export type ErrorObject = Components.Schemas.ErrorObject;
1559
1961
  export type FileAttributes = Components.Schemas.FileAttributes;
1560
1962
  export type FileEntity = Components.Schemas.FileEntity;
1561
1963
  export type FileEntityId = Components.Schemas.FileEntityId;
1964
+ export type FileFolderAttributes = Components.Schemas.FileFolderAttributes;
1965
+ export type FileFolderCreateRequest = Components.Schemas.FileFolderCreateRequest;
1966
+ export type FileFolderId = Components.Schemas.FileFolderId;
1967
+ export type FileFolderItem = Components.Schemas.FileFolderItem;
1562
1968
  export type FileItem = Components.Schemas.FileItem;
1563
1969
  export type FileRelationItem = Components.Schemas.FileRelationItem;
1564
1970
  export type FileType = Components.Schemas.FileType;
package/dist/openapi.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "File API",
5
- "version": "0.2.1",
6
- "description": "Upload and manage epilot Files"
5
+ "version": "1.0.0",
6
+ "description": "Upload and manage epilot Files\n\n## Changelog\n<a href=\"changelog\">View API Changelog</a>\n"
7
7
  },
8
8
  "tags": [
9
9
  {
@@ -30,6 +30,10 @@
30
30
  "name": "file_schema",
31
31
  "x-displayName": "File",
32
32
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/FileEntity\" />\n"
33
+ },
34
+ {
35
+ "name": "File Folders",
36
+ "description": "Folder management for organizing files within entities"
33
37
  }
34
38
  ],
35
39
  "x-tagGroups": [
@@ -40,6 +44,7 @@
40
44
  "Preview",
41
45
  "Public Links",
42
46
  "Session",
47
+ "File Folders",
43
48
  "Deprecated"
44
49
  ]
45
50
  },
@@ -1076,6 +1081,248 @@
1076
1081
  "type": "string",
1077
1082
  "format": "url",
1078
1083
  "example": "https://epilot-prod-user-content.s3.eu-central-1.amazonaws.com/123/temp/4d689aeb-1497-4410-a9fe-b36ca9ac4389/document.pdf?AWSParams=123"
1084
+ },
1085
+ "error": {
1086
+ "type": "string",
1087
+ "example": "File entity not found"
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ },
1097
+ "/v1/entity/{id}/folders": {
1098
+ "get": {
1099
+ "operationId": "getFileFolders",
1100
+ "summary": "getFileFolders",
1101
+ "description": "Gets a list of folders that exist for an entity",
1102
+ "tags": [
1103
+ "File Folders"
1104
+ ],
1105
+ "parameters": [
1106
+ {
1107
+ "$ref": "#/components/parameters/EntityIdPathParam"
1108
+ },
1109
+ {
1110
+ "name": "parents",
1111
+ "in": "query",
1112
+ "description": "Optional array of parent folder slugs to filter by",
1113
+ "required": false,
1114
+ "schema": {
1115
+ "type": "array",
1116
+ "items": {
1117
+ "type": "string"
1118
+ }
1119
+ },
1120
+ "style": "form",
1121
+ "explode": true
1122
+ }
1123
+ ],
1124
+ "responses": {
1125
+ "200": {
1126
+ "description": "List of folders for the entity",
1127
+ "content": {
1128
+ "application/json": {
1129
+ "schema": {
1130
+ "type": "array",
1131
+ "items": {
1132
+ "$ref": "#/components/schemas/FileFolderItem"
1133
+ }
1134
+ }
1135
+ }
1136
+ }
1137
+ },
1138
+ "404": {
1139
+ "$ref": "#/components/responses/NotFoundError"
1140
+ }
1141
+ }
1142
+ },
1143
+ "post": {
1144
+ "operationId": "createFileFolder",
1145
+ "summary": "createFileFolder",
1146
+ "description": "Creates a new file folder for the specified entity",
1147
+ "tags": [
1148
+ "File Folders"
1149
+ ],
1150
+ "parameters": [
1151
+ {
1152
+ "$ref": "#/components/parameters/EntityIdPathParam"
1153
+ }
1154
+ ],
1155
+ "requestBody": {
1156
+ "required": true,
1157
+ "content": {
1158
+ "application/json": {
1159
+ "schema": {
1160
+ "$ref": "#/components/schemas/FileFolderCreateRequest"
1161
+ }
1162
+ }
1163
+ }
1164
+ },
1165
+ "responses": {
1166
+ "201": {
1167
+ "description": "File folder created successfully",
1168
+ "content": {
1169
+ "application/json": {
1170
+ "schema": {
1171
+ "$ref": "#/components/schemas/FileFolderItem"
1172
+ }
1173
+ }
1174
+ }
1175
+ },
1176
+ "404": {
1177
+ "$ref": "#/components/responses/NotFoundError"
1178
+ }
1179
+ }
1180
+ }
1181
+ },
1182
+ "/v1/entity/{id}/folders/{folderSlug}": {
1183
+ "put": {
1184
+ "operationId": "updateFileFolder",
1185
+ "summary": "updateFileFolder",
1186
+ "description": "Updates a specific file folder by slug",
1187
+ "tags": [
1188
+ "File Folders"
1189
+ ],
1190
+ "parameters": [
1191
+ {
1192
+ "$ref": "#/components/parameters/EntityIdPathParam"
1193
+ },
1194
+ {
1195
+ "name": "folderSlug",
1196
+ "in": "path",
1197
+ "required": true,
1198
+ "description": "The slug identifier for the folder",
1199
+ "schema": {
1200
+ "type": "string",
1201
+ "example": "documents"
1202
+ }
1203
+ }
1204
+ ],
1205
+ "requestBody": {
1206
+ "required": true,
1207
+ "content": {
1208
+ "application/json": {
1209
+ "schema": {
1210
+ "$ref": "#/components/schemas/FileFolderCreateRequest"
1211
+ }
1212
+ }
1213
+ }
1214
+ },
1215
+ "responses": {
1216
+ "200": {
1217
+ "description": "File folder updated successfully",
1218
+ "content": {
1219
+ "application/json": {
1220
+ "schema": {
1221
+ "$ref": "#/components/schemas/FileFolderItem"
1222
+ }
1223
+ }
1224
+ }
1225
+ },
1226
+ "404": {
1227
+ "$ref": "#/components/responses/NotFoundError"
1228
+ }
1229
+ }
1230
+ },
1231
+ "delete": {
1232
+ "operationId": "deleteFileFolder",
1233
+ "summary": "deleteFileFolder",
1234
+ "description": "Deletes a specific file folder by slug",
1235
+ "tags": [
1236
+ "File Folders"
1237
+ ],
1238
+ "parameters": [
1239
+ {
1240
+ "$ref": "#/components/parameters/EntityIdPathParam"
1241
+ },
1242
+ {
1243
+ "name": "folderSlug",
1244
+ "in": "path",
1245
+ "required": true,
1246
+ "description": "The slug identifier for the folder",
1247
+ "schema": {
1248
+ "type": "string",
1249
+ "example": "documents"
1250
+ }
1251
+ }
1252
+ ],
1253
+ "responses": {
1254
+ "200": {
1255
+ "description": "File folder deleted successfully"
1256
+ },
1257
+ "404": {
1258
+ "$ref": "#/components/responses/NotFoundError"
1259
+ }
1260
+ }
1261
+ }
1262
+ },
1263
+ "/v1/entity/{id}/folders/{folderSlug}/files": {
1264
+ "get": {
1265
+ "operationId": "getFilesInFolder",
1266
+ "summary": "getFilesInFolder",
1267
+ "description": "Gets all files within a specific folder for an entity",
1268
+ "tags": [
1269
+ "File Folders"
1270
+ ],
1271
+ "parameters": [
1272
+ {
1273
+ "$ref": "#/components/parameters/EntityIdPathParam"
1274
+ },
1275
+ {
1276
+ "name": "folderSlug",
1277
+ "in": "path",
1278
+ "required": true,
1279
+ "description": "The slug identifier for the folder",
1280
+ "schema": {
1281
+ "type": "string",
1282
+ "example": "documents"
1283
+ }
1284
+ }
1285
+ ],
1286
+ "responses": {
1287
+ "200": {
1288
+ "description": "List of files in the folder",
1289
+ "content": {
1290
+ "application/json": {
1291
+ "schema": {
1292
+ "type": "array",
1293
+ "items": {
1294
+ "$ref": "#/components/schemas/FileEntity"
1295
+ }
1296
+ }
1297
+ }
1298
+ }
1299
+ },
1300
+ "403": {
1301
+ "description": "User must have permission to view this entity to access its files",
1302
+ "content": {
1303
+ "application/json": {
1304
+ "schema": {
1305
+ "type": "object",
1306
+ "properties": {
1307
+ "error": {
1308
+ "type": "string",
1309
+ "example": "User must have permission to view this entity to access its files"
1310
+ }
1311
+ }
1312
+ }
1313
+ }
1314
+ }
1315
+ },
1316
+ "404": {
1317
+ "description": "Entity or folder not found",
1318
+ "content": {
1319
+ "application/json": {
1320
+ "schema": {
1321
+ "type": "object",
1322
+ "properties": {
1323
+ "error": {
1324
+ "type": "string",
1325
+ "example": "Entity not found"
1079
1326
  }
1080
1327
  }
1081
1328
  }
@@ -1648,9 +1895,124 @@
1648
1895
  }
1649
1896
  }
1650
1897
  }
1898
+ },
1899
+ "FileFolderId": {
1900
+ "description": "Generated uuid for a file folder",
1901
+ "type": "string",
1902
+ "format": "uuid"
1903
+ },
1904
+ "FileFolderItem": {
1905
+ "description": "A file folder with identifiers and timestamps",
1906
+ "type": "object",
1907
+ "properties": {
1908
+ "slug": {
1909
+ "type": "string",
1910
+ "description": "Full slug for the folder",
1911
+ "example": "_system_files_collection_entity-123:documents"
1912
+ },
1913
+ "name": {
1914
+ "type": "string",
1915
+ "description": "Display name of the folder",
1916
+ "example": "Documents"
1917
+ },
1918
+ "id": {
1919
+ "$ref": "#/components/schemas/FileFolderId"
1920
+ },
1921
+ "parents": {
1922
+ "type": "array",
1923
+ "description": "Array of parent folder slugs, empty array if top-level folder",
1924
+ "items": {
1925
+ "type": "string"
1926
+ },
1927
+ "example": [
1928
+ "_system_files_collection_entity-123"
1929
+ ]
1930
+ },
1931
+ "starred": {
1932
+ "type": "boolean",
1933
+ "description": "Whether the folder is starred / favorited",
1934
+ "example": false
1935
+ },
1936
+ "created_at": {
1937
+ "type": "string",
1938
+ "format": "date-time",
1939
+ "description": "Timestamp when the folder was created",
1940
+ "example": "2024-01-01T12:00:00Z"
1941
+ },
1942
+ "updated_at": {
1943
+ "type": "string",
1944
+ "format": "date-time",
1945
+ "description": "Timestamp when the folder was last updated",
1946
+ "example": "2024-01-02T12:00:00Z"
1947
+ }
1948
+ },
1949
+ "required": [
1950
+ "name"
1951
+ ]
1952
+ },
1953
+ "ErrorObject": {
1954
+ "description": "A generic error returned by the API",
1955
+ "type": "object",
1956
+ "properties": {
1957
+ "status": {
1958
+ "type": "integer",
1959
+ "description": "The HTTP status code of the error",
1960
+ "example": 400
1961
+ },
1962
+ "error": {
1963
+ "type": "string",
1964
+ "description": "The error message",
1965
+ "example": "Bad Request"
1966
+ }
1967
+ }
1968
+ },
1969
+ "FileFolderAttributes": {
1970
+ "type": "object",
1971
+ "properties": {
1972
+ "name": {
1973
+ "type": "string",
1974
+ "description": "Name of the file folder"
1975
+ },
1976
+ "parent": {
1977
+ "type": "string",
1978
+ "description": "Optional parent folder slug. If not provided, the folder will be created at the top level"
1979
+ },
1980
+ "files": {
1981
+ "type": "array",
1982
+ "description": "Array of file IDs in this folder",
1983
+ "items": {
1984
+ "type": "string",
1985
+ "format": "uuid"
1986
+ }
1987
+ }
1988
+ },
1989
+ "additionalProperties": false
1990
+ },
1991
+ "FileFolderCreateRequest": {
1992
+ "description": "Request body for creating a file folder",
1993
+ "allOf": [
1994
+ {
1995
+ "$ref": "#/components/schemas/FileFolderAttributes"
1996
+ },
1997
+ {
1998
+ "type": "object",
1999
+ "required": [
2000
+ "name"
2001
+ ]
2002
+ }
2003
+ ]
1651
2004
  }
1652
2005
  },
1653
2006
  "parameters": {
2007
+ "EntityIdPathParam": {
2008
+ "name": "id",
2009
+ "description": "Entity id",
2010
+ "in": "path",
2011
+ "required": true,
2012
+ "schema": {
2013
+ "$ref": "#/components/schemas/EntityId"
2014
+ }
2015
+ },
1654
2016
  "StrictQueryParam": {
1655
2017
  "name": "strict",
1656
2018
  "in": "query",
@@ -1700,6 +2062,28 @@
1700
2062
  "default": true
1701
2063
  }
1702
2064
  }
2065
+ },
2066
+ "responses": {
2067
+ "NotFoundError": {
2068
+ "description": "The requested resource was not found",
2069
+ "content": {
2070
+ "application/json": {
2071
+ "schema": {
2072
+ "allOf": [
2073
+ {
2074
+ "$ref": "#/components/schemas/ErrorObject"
2075
+ },
2076
+ {
2077
+ "example": {
2078
+ "status": 404,
2079
+ "error": "Not Found"
2080
+ }
2081
+ }
2082
+ ]
2083
+ }
2084
+ }
2085
+ }
2086
+ }
1703
2087
  }
1704
2088
  },
1705
2089
  "servers": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/file-client",
3
- "version": "1.15.2",
3
+ "version": "1.16.0-alpha.1",
4
4
  "description": "Client library for the epilot File API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",