@23blocks/block-files 3.3.0 → 3.4.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.
package/dist/index.esm.js CHANGED
@@ -78,7 +78,7 @@ const storageFileMapper = {
78
78
  type: 'StorageFile',
79
79
  map: (resource)=>({
80
80
  id: resource.id,
81
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
81
+ uniqueId: parseString(resource.attributes['unique_id']),
82
82
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
83
83
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
84
84
  ownerUniqueId: parseString(resource.attributes['owner_unique_id']) || '',
@@ -208,7 +208,7 @@ const entityFileMapper = {
208
208
  type: 'EntityFile',
209
209
  map: (resource)=>({
210
210
  id: resource.id,
211
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
211
+ uniqueId: parseString(resource.attributes['unique_id']),
212
212
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
213
213
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
214
214
  entityUniqueId: parseString(resource.attributes['entity_unique_id']) || '',
@@ -305,7 +305,7 @@ const fileSchemaMapper = {
305
305
  type: 'FileSchema',
306
306
  map: (resource)=>({
307
307
  id: resource.id,
308
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
308
+ uniqueId: parseString(resource.attributes['unique_id']),
309
309
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
310
310
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
311
311
  code: parseString(resource.attributes['code']) || '',
@@ -699,7 +699,7 @@ const fileCategoryMapper = {
699
699
  type: 'FileCategory',
700
700
  map: (resource)=>({
701
701
  id: resource.id,
702
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
702
+ uniqueId: parseString(resource.attributes['unique_id']),
703
703
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
704
704
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
705
705
  code: parseString(resource.attributes['code']) || '',
@@ -779,7 +779,7 @@ const fileTagMapper = {
779
779
  type: 'FileTag',
780
780
  map: (resource)=>({
781
781
  id: resource.id,
782
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
782
+ uniqueId: parseString(resource.attributes['unique_id']),
783
783
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
784
784
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
785
785
  code: parseString(resource.attributes['code']) || '',
@@ -856,7 +856,7 @@ const fileDelegationMapper = {
856
856
  type: 'FileDelegation',
857
857
  map: (resource)=>({
858
858
  id: resource.id,
859
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
859
+ uniqueId: parseString(resource.attributes['unique_id']),
860
860
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
861
861
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
862
862
  delegatorUniqueId: parseString(resource.attributes['delegator_unique_id']) || '',
@@ -936,7 +936,7 @@ const fileAccessMapper = {
936
936
  type: 'FileAccess',
937
937
  map: (resource)=>({
938
938
  id: resource.id,
939
- uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
939
+ uniqueId: parseString(resource.attributes['unique_id']),
940
940
  createdAt: parseDate(resource.attributes['created_at']) || new Date(),
941
941
  updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
942
942
  fileUniqueId: parseString(resource.attributes['file_unique_id']) || '',
@@ -1047,6 +1047,115 @@ function createFileAccessService(transport, _config) {
1047
1047
  };
1048
1048
  }
1049
1049
 
1050
+ const fileAccessRequestMapper = {
1051
+ type: 'file_access_request',
1052
+ map: (resource)=>{
1053
+ var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8, _resource_attributes9, _resource_attributes10, _resource_attributes11, _resource_attributes12, _resource_attributes13, _resource_attributes14, _resource_attributes15, _resource_attributes16, _resource_attributes17;
1054
+ var _parseDate, _parseDate1, _parseString, _parseString1, _parseString2, _parseString3, _parseString4;
1055
+ return {
1056
+ uniqueId: resource.id,
1057
+ createdAt: (_parseDate = parseDate((_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['created_at'])) != null ? _parseDate : new Date(),
1058
+ updatedAt: (_parseDate1 = parseDate((_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['updated_at'])) != null ? _parseDate1 : new Date(),
1059
+ fileUniqueId: (_parseString = parseString((_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['file_unique_id'])) != null ? _parseString : '',
1060
+ fileName: parseString((_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['file_name']),
1061
+ requesterUniqueId: (_parseString1 = parseString((_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['requester_unique_id'])) != null ? _parseString1 : '',
1062
+ requesterName: parseString((_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['requester_name']),
1063
+ requesterEmail: parseString((_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['requester_email']),
1064
+ requesterType: (_parseString2 = parseString((_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['requester_type'])) != null ? _parseString2 : 'user',
1065
+ requestedAccessLevel: (_parseString3 = parseString((_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['requested_access_level'])) != null ? _parseString3 : 'view',
1066
+ message: parseString((_resource_attributes9 = resource.attributes) == null ? void 0 : _resource_attributes9['message']),
1067
+ requestStatus: (_parseString4 = parseString((_resource_attributes10 = resource.attributes) == null ? void 0 : _resource_attributes10['request_status'])) != null ? _parseString4 : 'pending',
1068
+ reviewedByUniqueId: parseString((_resource_attributes11 = resource.attributes) == null ? void 0 : _resource_attributes11['reviewed_by_unique_id']),
1069
+ reviewedAt: parseDate((_resource_attributes12 = resource.attributes) == null ? void 0 : _resource_attributes12['reviewed_at']),
1070
+ reviewNote: parseString((_resource_attributes13 = resource.attributes) == null ? void 0 : _resource_attributes13['review_note']),
1071
+ expiresAt: parseDate((_resource_attributes14 = resource.attributes) == null ? void 0 : _resource_attributes14['expires_at']),
1072
+ status: parseStatus((_resource_attributes15 = resource.attributes) == null ? void 0 : _resource_attributes15['status']),
1073
+ enabled: parseBoolean((_resource_attributes16 = resource.attributes) == null ? void 0 : _resource_attributes16['enabled']),
1074
+ payload: (_resource_attributes17 = resource.attributes) == null ? void 0 : _resource_attributes17['payload']
1075
+ };
1076
+ }
1077
+ };
1078
+
1079
+ /**
1080
+ * Create the File Access Requests service
1081
+ */ function createFileAccessRequestsService(transport, _config) {
1082
+ return {
1083
+ async list (params) {
1084
+ const queryParams = {};
1085
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1086
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1087
+ if (params == null ? void 0 : params.fileUniqueId) queryParams['file_unique_id'] = params.fileUniqueId;
1088
+ if (params == null ? void 0 : params.requesterUniqueId) queryParams['requester_unique_id'] = params.requesterUniqueId;
1089
+ if (params == null ? void 0 : params.requestStatus) queryParams['request_status'] = params.requestStatus;
1090
+ if (params == null ? void 0 : params.dateFrom) queryParams['date_from'] = params.dateFrom;
1091
+ if (params == null ? void 0 : params.dateTo) queryParams['date_to'] = params.dateTo;
1092
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
1093
+ const response = await transport.get('/file_access_requests', {
1094
+ params: queryParams
1095
+ });
1096
+ return decodePageResult(response, fileAccessRequestMapper);
1097
+ },
1098
+ async get (uniqueId) {
1099
+ const response = await transport.get(`/file_access_requests/${uniqueId}`);
1100
+ return decodeOne(response, fileAccessRequestMapper);
1101
+ },
1102
+ async create (data) {
1103
+ const response = await transport.post('/file_access_requests', {
1104
+ file_access_request: {
1105
+ file_unique_id: data.fileUniqueId,
1106
+ requested_access_level: data.requestedAccessLevel,
1107
+ message: data.message,
1108
+ payload: data.payload
1109
+ }
1110
+ });
1111
+ return decodeOne(response, fileAccessRequestMapper);
1112
+ },
1113
+ async review (uniqueId, decision) {
1114
+ const response = await transport.put(`/file_access_requests/${uniqueId}/review`, {
1115
+ file_access_request: {
1116
+ decision: decision.decision,
1117
+ review_note: decision.reviewNote,
1118
+ grant_expires_at: decision.grantExpiresAt
1119
+ }
1120
+ });
1121
+ return decodeOne(response, fileAccessRequestMapper);
1122
+ },
1123
+ async cancel (uniqueId) {
1124
+ await transport.put(`/file_access_requests/${uniqueId}/cancel`, {});
1125
+ },
1126
+ async listByFile (fileUniqueId, params) {
1127
+ const queryParams = {
1128
+ file_unique_id: fileUniqueId
1129
+ };
1130
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1131
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1132
+ if (params == null ? void 0 : params.requestStatus) queryParams['request_status'] = params.requestStatus;
1133
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
1134
+ const response = await transport.get('/file_access_requests', {
1135
+ params: queryParams
1136
+ });
1137
+ return decodePageResult(response, fileAccessRequestMapper);
1138
+ },
1139
+ async listByRequester (requesterUniqueId, params) {
1140
+ const queryParams = {
1141
+ requester_unique_id: requesterUniqueId
1142
+ };
1143
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1144
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1145
+ if (params == null ? void 0 : params.requestStatus) queryParams['request_status'] = params.requestStatus;
1146
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
1147
+ const response = await transport.get('/file_access_requests', {
1148
+ params: queryParams
1149
+ });
1150
+ return decodePageResult(response, fileAccessRequestMapper);
1151
+ },
1152
+ async getPendingCount () {
1153
+ const response = await transport.get('/file_access_requests/pending_count');
1154
+ return response.count;
1155
+ }
1156
+ };
1157
+ }
1158
+
1050
1159
  function createFilesBlock(transport, config) {
1051
1160
  return {
1052
1161
  storageFiles: createStorageFilesService(transport),
@@ -1056,7 +1165,8 @@ function createFilesBlock(transport, config) {
1056
1165
  fileCategories: createFileCategoriesService(transport),
1057
1166
  fileTags: createFileTagsService(transport),
1058
1167
  delegations: createDelegationsService(transport),
1059
- fileAccess: createFileAccessService(transport)
1168
+ fileAccess: createFileAccessService(transport),
1169
+ fileAccessRequests: createFileAccessRequestsService(transport)
1060
1170
  };
1061
1171
  }
1062
1172
  const filesBlockMetadata = {
@@ -1071,8 +1181,9 @@ const filesBlockMetadata = {
1071
1181
  'FileCategory',
1072
1182
  'FileTag',
1073
1183
  'FileDelegation',
1074
- 'FileAccess'
1184
+ 'FileAccess',
1185
+ 'FileAccessRequest'
1075
1186
  ]
1076
1187
  };
1077
1188
 
1078
- export { createDelegationsService, createEntityFilesService, createFileAccessService, createFileCategoriesService, createFileSchemasService, createFileTagsService, createFilesBlock, createStorageFilesService, createUserFilesService, entityFileMapper, fileAccessMapper, fileCategoryMapper, fileDelegationMapper, fileSchemaMapper, fileTagMapper, filesBlockMetadata, parseBoolean, parseDate, parseNumber, parseOptionalNumber, parseStatus, parseString, parseStringArray, storageFileMapper, userFileMapper };
1189
+ export { createDelegationsService, createEntityFilesService, createFileAccessRequestsService, createFileAccessService, createFileCategoriesService, createFileSchemasService, createFileTagsService, createFilesBlock, createStorageFilesService, createUserFilesService, entityFileMapper, fileAccessMapper, fileAccessRequestMapper, fileCategoryMapper, fileDelegationMapper, fileSchemaMapper, fileTagMapper, filesBlockMetadata, parseBoolean, parseDate, parseNumber, parseOptionalNumber, parseStatus, parseString, parseStringArray, storageFileMapper, userFileMapper };
@@ -1,5 +1,5 @@
1
1
  import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
2
- import { type StorageFilesService, type EntityFilesService, type FileSchemasService, type UserFilesService, type FileCategoriesService, type FileTagsService, type DelegationsService, type FileAccessService } from './services';
2
+ import { type StorageFilesService, type EntityFilesService, type FileSchemasService, type UserFilesService, type FileCategoriesService, type FileTagsService, type DelegationsService, type FileAccessService, type FileAccessRequestsService } from './services';
3
3
  export interface FilesBlockConfig extends BlockConfig {
4
4
  appId: string;
5
5
  tenantId?: string;
@@ -13,6 +13,7 @@ export interface FilesBlock {
13
13
  fileTags: FileTagsService;
14
14
  delegations: DelegationsService;
15
15
  fileAccess: FileAccessService;
16
+ fileAccessRequests: FileAccessRequestsService;
16
17
  }
17
18
  export declare function createFilesBlock(transport: Transport, config: FilesBlockConfig): FilesBlock;
18
19
  export declare const filesBlockMetadata: BlockMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"files.block.d.ts","sourceRoot":"","sources":["../../../src/lib/files.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EASL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,cAAc,EAAE,qBAAqB,CAAC;IACtC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAWZ;AAED,eAAO,MAAM,kBAAkB,EAAE,aAchC,CAAC"}
1
+ {"version":3,"file":"files.block.d.ts","sourceRoot":"","sources":["../../../src/lib/files.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAUL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,cAAc,EAAE,qBAAqB,CAAC;IACtC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,kBAAkB,EAAE,yBAAyB,CAAC;CAC/C;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAYZ;AAED,eAAO,MAAM,kBAAkB,EAAE,aAehC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { FileAccessRequest } from '../types/file-access-request';
3
+ export declare const fileAccessRequestMapper: ResourceMapper<FileAccessRequest>;
4
+ //# sourceMappingURL=file-access-request.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-access-request.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/file-access-request.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,8BAA8B,CAAC;AAG3F,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC,iBAAiB,CAuBrE,CAAC"}
@@ -6,5 +6,6 @@ export * from './file-category.mapper';
6
6
  export * from './file-tag.mapper';
7
7
  export * from './delegation.mapper';
8
8
  export * from './file-access.mapper';
9
+ export * from './file-access-request.mapper';
9
10
  export * from './utils';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,SAAS,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { FileAccessRequest, CreateFileAccessRequestInput, ReviewFileAccessRequestInput, ListFileAccessRequestsParams } from '../types/file-access-request';
3
+ /**
4
+ * File Access Requests Service Interface - Manage access requests to files
5
+ */
6
+ export interface FileAccessRequestsService {
7
+ /**
8
+ * List all access requests
9
+ */
10
+ list(params?: ListFileAccessRequestsParams): Promise<PageResult<FileAccessRequest>>;
11
+ /**
12
+ * Get a specific access request
13
+ */
14
+ get(uniqueId: string): Promise<FileAccessRequest>;
15
+ /**
16
+ * Create a new access request
17
+ */
18
+ create(data: CreateFileAccessRequestInput): Promise<FileAccessRequest>;
19
+ /**
20
+ * Review (approve/reject) an access request
21
+ */
22
+ review(uniqueId: string, decision: ReviewFileAccessRequestInput): Promise<FileAccessRequest>;
23
+ /**
24
+ * Cancel a pending access request
25
+ */
26
+ cancel(uniqueId: string): Promise<void>;
27
+ /**
28
+ * List requests for a specific file (for file owners)
29
+ */
30
+ listByFile(fileUniqueId: string, params?: ListFileAccessRequestsParams): Promise<PageResult<FileAccessRequest>>;
31
+ /**
32
+ * List requests made by a specific user
33
+ */
34
+ listByRequester(requesterUniqueId: string, params?: ListFileAccessRequestsParams): Promise<PageResult<FileAccessRequest>>;
35
+ /**
36
+ * Get pending requests count for a file owner
37
+ */
38
+ getPendingCount(): Promise<number>;
39
+ }
40
+ /**
41
+ * Create the File Access Requests service
42
+ */
43
+ export declare function createFileAccessRequestsService(transport: Transport, _config: {
44
+ appId: string;
45
+ }): FileAccessRequestsService;
46
+ //# sourceMappingURL=file-access-requests.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-access-requests.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/file-access-requests.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,8BAA8B,CAAC;AAGtC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEpF;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEvE;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7F;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhH;;OAEG;IACH,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE1H;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACzB,yBAAyB,CAsF3B"}
@@ -6,4 +6,5 @@ export * from './file-categories.service';
6
6
  export * from './file-tags.service';
7
7
  export * from './delegations.service';
8
8
  export * from './file-access.service';
9
+ export * from './file-access-requests.service';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
2
+ /**
3
+ * Access request status
4
+ */
5
+ export type AccessRequestStatus = 'pending' | 'approved' | 'rejected' | 'expired' | 'cancelled';
6
+ /**
7
+ * File access request - request to gain access to a file
8
+ */
9
+ export interface FileAccessRequest extends IdentityCore {
10
+ fileUniqueId: string;
11
+ fileName?: string;
12
+ requesterUniqueId: string;
13
+ requesterName?: string;
14
+ requesterEmail?: string;
15
+ requesterType: string;
16
+ requestedAccessLevel: 'view' | 'download' | 'edit' | 'admin';
17
+ message?: string;
18
+ requestStatus: AccessRequestStatus;
19
+ reviewedByUniqueId?: string;
20
+ reviewedAt?: Date;
21
+ reviewNote?: string;
22
+ expiresAt?: Date;
23
+ status: EntityStatus;
24
+ enabled: boolean;
25
+ payload?: Record<string, unknown>;
26
+ }
27
+ /**
28
+ * Create file access request
29
+ */
30
+ export interface CreateFileAccessRequestInput {
31
+ fileUniqueId: string;
32
+ requestedAccessLevel: 'view' | 'download' | 'edit' | 'admin';
33
+ message?: string;
34
+ payload?: Record<string, unknown>;
35
+ }
36
+ /**
37
+ * Review file access request (approve/reject)
38
+ */
39
+ export interface ReviewFileAccessRequestInput {
40
+ decision: 'approve' | 'reject';
41
+ reviewNote?: string;
42
+ grantExpiresAt?: string;
43
+ }
44
+ /**
45
+ * List file access requests params
46
+ */
47
+ export interface ListFileAccessRequestsParams {
48
+ page?: number;
49
+ perPage?: number;
50
+ fileUniqueId?: string;
51
+ requesterUniqueId?: string;
52
+ requestStatus?: AccessRequestStatus;
53
+ dateFrom?: string;
54
+ dateTo?: string;
55
+ sortBy?: string;
56
+ sortOrder?: 'asc' | 'desc';
57
+ }
58
+ //# sourceMappingURL=file-access-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-access-request.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/file-access-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B"}
@@ -6,4 +6,5 @@ export * from './file-category';
6
6
  export * from './file-tag';
7
7
  export * from './delegation';
8
8
  export * from './file-access';
9
+ export * from './file-access-request';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@23blocks/block-files",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "description": "Files block for 23blocks SDK - storage, upload, download, file management",
5
5
  "license": "MIT",
6
6
  "author": "23blocks <hello@23blocks.com>",