@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.
- package/esm/files/model/model.js +3 -0
- package/files/model/model.d.ts +26 -0
- package/files/model/model.js +6 -1
- package/package.json +1 -1
package/esm/files/model/model.js
CHANGED
|
@@ -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 = {
|
package/files/model/model.d.ts
CHANGED
|
@@ -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;
|
package/files/model/model.js
CHANGED
|
@@ -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);
|