@hestia-earth/api 0.28.41 → 0.28.43

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.
@@ -148,6 +148,7 @@ export class File extends BaseFile {
148
148
  datasetUrl;
149
149
  extractionLogs;
150
150
  extractionNotes;
151
+ versions;
151
152
  manuallyEditedAt;
152
153
  fromDraft;
153
154
  deleted;
@@ -262,6 +263,8 @@ export const canSubmit = (file, user) => !file.archived &&
262
263
  !file.userValidatedAt &&
263
264
  (isOwner(file, user) || isAuthorized(file, user));
264
265
  export const isDraft = ({ filepath, filename }) => (filepath || filename || '').endsWith(SupportedExtensions.draft);
266
+ export const isOwnReview = (review, user) => asString(review?.user) === asString(user);
267
+ export const formatReviews = (reviewed = [], user) => reviewed.map(review => ({ id: review.id, date: review.date, isMine: isOwnReview(review, user) }));
265
268
  export const canEditComment = (comment, user) => asString(comment?.user) === asString(user);
266
269
  export const canCommitHestiaData = (file, user) => !file.archived && isValidated(file) && (isReviewer(user) || user?.canCommitHestiaData);
267
270
  const grantAccessByRole = {
@@ -116,6 +116,29 @@ export interface IExtractionNote {
116
116
  quote?: string;
117
117
  nodes?: IExtractionNoteNode[];
118
118
  }
119
+ export interface IFileVersionSummary {
120
+ changes?: number;
121
+ applied?: number;
122
+ declined?: number;
123
+ unaddressed?: number;
124
+ unrequested?: number;
125
+ cells?: number;
126
+ }
127
+ export interface IFileVersionReview {
128
+ id: string;
129
+ user: User;
130
+ date: Date;
131
+ readonly isMine?: boolean;
132
+ }
133
+ export interface IFileVersion {
134
+ version: number;
135
+ createdAt: Date;
136
+ commentIds?: string[];
137
+ summary?: IFileVersionSummary;
138
+ reviewed?: IFileVersionReview[];
139
+ key?: string;
140
+ readonly changesPath?: string;
141
+ }
119
142
  export interface IFileMetadata {
120
143
  slackThreadTs?: string;
121
144
  nodesPerType?: Partial<Record<NodeType, number>>;
@@ -153,6 +176,7 @@ export declare class File extends BaseFile {
153
176
  datasetUrl?: string;
154
177
  extractionLogs?: string;
155
178
  extractionNotes?: IExtractionNote[];
179
+ versions?: IFileVersion[];
156
180
  manuallyEditedAt?: Date;
157
181
  fromDraft?: boolean;
158
182
  deleted?: boolean;
@@ -229,6 +253,8 @@ export declare const canValidate: ({ status, isPrivate, archived }: Partial<File
229
253
  export declare const isValidated: ({ validatedAt, status }: Partial<File>) => boolean;
230
254
  export declare const canSubmit: (file: Partial<File>, user: User) => boolean;
231
255
  export declare const isDraft: ({ filepath, filename }: Partial<File>) => boolean;
256
+ export declare const isOwnReview: (review: IFileVersionReview, user: User) => boolean;
257
+ export declare const formatReviews: (reviewed: IFileVersionReview[], user: User) => IFileVersionReview[];
232
258
  export declare const canEditComment: (comment: IFileComment, user: User) => boolean;
233
259
  export declare const canCommitHestiaData: (file: File, user: User) => boolean;
234
260
  export declare const hasAccess: (file: File, user: User, allowedRoles: UserRole[]) => boolean;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.userFolder = exports.isFolderUpload = exports.isAdminFolder = exports.isAggregation = exports.aggregationFolder = exports.isTerm = exports.isGlossary = exports.hasReconciliationAccess = exports.isReconciliation = exports.isAnalysis = exports.reconciliationFolder = exports.termFolder = exports.glossaryFolder = exports.analysesFolder = exports.filenameFromPath = exports.rootFolderFromPath = exports.folderFromPath = exports.normalizeFolder = exports.isFilepathValid = exports.isFilenameValid = exports.canUploadFolderFile = exports.canUseFolder = exports.replaceInvalidChars = exports.validPathChars = exports.filenameWithoutExt = exports.fileToExt = exports.isSupportedExt = exports.fileExt = exports.filepathSearch = exports.filenameSearch = exports.File = exports.BaseFile = exports.FileValidationStatus = exports.FilePipelineError = exports.FilePipelineProgress = exports.FilePipelineStatus = exports.FileError = exports.FileStatus = exports.FileProgress = exports.FileFindFields = exports.HestiaExtensions = exports.finalFormatExtensions = exports.maxFileSizeByFile = exports.supplementaryExtensions = exports.studyExtensions = exports.SupportedExtensions = exports.maxFileSize = exports.maxFileSizeMb = exports.sizeInMb = exports.mb = void 0;
4
- exports.hasAccess = exports.canCommitHestiaData = exports.canEditComment = exports.isDraft = exports.canSubmit = exports.isValidated = exports.canValidate = exports.validatedStatuses = exports.canRemove = exports.canForceRemove = exports.isLocked = exports.isAssigned = exports.isAuthorized = exports.isOwner = void 0;
4
+ exports.hasAccess = exports.canCommitHestiaData = exports.canEditComment = exports.formatReviews = exports.isOwnReview = exports.isDraft = exports.canSubmit = exports.isValidated = exports.canValidate = exports.validatedStatuses = exports.canRemove = exports.canForceRemove = exports.isLocked = exports.isAssigned = exports.isAuthorized = exports.isOwner = void 0;
5
5
  const model_base_1 = require("../../db/model.base");
6
6
  const model_1 = require("../../users/model/model");
7
7
  exports.mb = 1048576;
@@ -155,6 +155,7 @@ class File extends BaseFile {
155
155
  datasetUrl;
156
156
  extractionLogs;
157
157
  extractionNotes;
158
+ versions;
158
159
  manuallyEditedAt;
159
160
  fromDraft;
160
161
  deleted;
@@ -304,6 +305,10 @@ const canSubmit = (file, user) => !file.archived &&
304
305
  exports.canSubmit = canSubmit;
305
306
  const isDraft = ({ filepath, filename }) => (filepath || filename || '').endsWith(SupportedExtensions.draft);
306
307
  exports.isDraft = isDraft;
308
+ const isOwnReview = (review, user) => asString(review?.user) === asString(user);
309
+ exports.isOwnReview = isOwnReview;
310
+ const formatReviews = (reviewed = [], user) => reviewed.map(review => ({ id: review.id, date: review.date, isMine: (0, exports.isOwnReview)(review, user) }));
311
+ exports.formatReviews = formatReviews;
307
312
  const canEditComment = (comment, user) => asString(comment?.user) === asString(user);
308
313
  exports.canEditComment = canEditComment;
309
314
  const canCommitHestiaData = (file, user) => !file.archived && (0, exports.isValidated)(file) && ((0, model_1.isReviewer)(user) || user?.canCommitHestiaData);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hestia-earth/api",
3
- "version": "0.28.41",
3
+ "version": "0.28.43",
4
4
  "description": "Hestia API definitions",
5
5
  "main": "models.js",
6
6
  "module": "esm/models.js",