@hestia-earth/api 0.25.68 → 0.25.70

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.
@@ -191,6 +191,8 @@ export declare const userFolder: (user: User) => any;
191
191
  export declare const isOwner: (file: Partial<File>, user: User) => boolean;
192
192
  export declare const isAuthorized: ({ authorizedUsers }: Partial<File>, user: User) => boolean;
193
193
  export declare const isAssigned: ({ assignedUsers }: Partial<File>, user: User) => boolean;
194
+ export declare const isLocked: ({ status, pipelineStatus }: Partial<File>) => boolean;
195
+ export declare const canForceRemove: (file: Partial<File>, user: User, forceDelete: boolean) => boolean;
194
196
  export declare const canRemove: (file: Partial<File>, user: User) => boolean;
195
197
  export declare const validatedStatuses: FileStatus[];
196
198
  export declare const canValidate: ({ status, isPrivate, archived }: Partial<File>, user: Pick<User, "role">) => boolean;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isAssigned = exports.isAuthorized = exports.isOwner = 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.FileValidationStatus = exports.FilePipelineError = exports.FilePipelineProgress = exports.FilePipelineStatus = exports.FileError = exports.FileStatus = exports.FileProgress = exports.FileFindFields = exports.HestiaExtensions = exports.finalFormatExtensions = exports.maxFileSizeByFile = 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 = 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 = 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;
@@ -258,6 +258,12 @@ const isAuthorized = ({ authorizedUsers }, user) => (authorizedUsers || []).map(
258
258
  exports.isAuthorized = isAuthorized;
259
259
  const isAssigned = ({ assignedUsers }, user) => (assignedUsers || []).map(asString).includes(asString(user));
260
260
  exports.isAssigned = isAssigned;
261
+ const isLocked = ({ status, pipelineStatus }) => status !== FileStatus.validateDataDone &&
262
+ (status !== FileStatus.indexJsonDone ||
263
+ ![FilePipelineStatus.calculationEngineDone, FilePipelineError.calculationEngineError].includes(pipelineStatus));
264
+ exports.isLocked = isLocked;
265
+ const canForceRemove = (file, user, forceDelete) => ((0, model_1.isAdmin)(user) && forceDelete === true) || !(0, exports.isLocked)(file);
266
+ exports.canForceRemove = canForceRemove;
261
267
  const canRemove = (file, user) => (0, model_1.isAdmin)(user) || !(0, exports.isValidated)(file) || file.isPrivate;
262
268
  exports.canRemove = canRemove;
263
269
  const validateStatuses = [FileStatus.validateDataDone, FileStatus.indexJsonDone, FileError.indexJsonError];
package/dist/models.d.ts CHANGED
@@ -11,4 +11,5 @@ export * from './reconciliations/model/model';
11
11
  export * from './settings/model/model';
12
12
  export * from './url-shortener/model/model';
13
13
  export * from './users/model/model';
14
+ export * from './webhooks/model/model';
14
15
  export * from './ws.model';
package/dist/models.js CHANGED
@@ -27,4 +27,5 @@ __exportStar(require("./reconciliations/model/model"), exports);
27
27
  __exportStar(require("./settings/model/model"), exports);
28
28
  __exportStar(require("./url-shortener/model/model"), exports);
29
29
  __exportStar(require("./users/model/model"), exports);
30
+ __exportStar(require("./webhooks/model/model"), exports);
30
31
  __exportStar(require("./ws.model"), exports);
@@ -0,0 +1,4 @@
1
+ import { Webhook } from './model';
2
+ import { IMongooseDocument } from '../../db/mongoose.model';
3
+ export interface IWebhookDocument extends Webhook, IMongooseDocument {
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,28 @@
1
+ export declare enum WebhookType {
2
+ Files = "files"
3
+ }
4
+ export declare enum WebhookEvent {
5
+ Created = "created",
6
+ Updated = "updated"
7
+ }
8
+ export declare enum WebhookStatus {
9
+ Active = "active",
10
+ Inactive = "inactive"
11
+ }
12
+ export interface Webhook {
13
+ url: string;
14
+ user: any;
15
+ type: WebhookType;
16
+ events: WebhookEvent[];
17
+ secret?: string;
18
+ lastSuccessfulAttemptAt?: Date;
19
+ status: WebhookStatus;
20
+ lastFailureReason?: string;
21
+ }
22
+ export declare const webHookTestEvent = "test";
23
+ export interface WebhookPayload {
24
+ event: WebhookEvent | typeof webHookTestEvent;
25
+ type: WebhookType;
26
+ id: string;
27
+ timestamp: string;
28
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webHookTestEvent = exports.WebhookStatus = exports.WebhookEvent = exports.WebhookType = void 0;
4
+ var WebhookType;
5
+ (function (WebhookType) {
6
+ WebhookType["Files"] = "files";
7
+ })(WebhookType || (exports.WebhookType = WebhookType = {}));
8
+ var WebhookEvent;
9
+ (function (WebhookEvent) {
10
+ WebhookEvent["Created"] = "created";
11
+ WebhookEvent["Updated"] = "updated";
12
+ })(WebhookEvent || (exports.WebhookEvent = WebhookEvent = {}));
13
+ var WebhookStatus;
14
+ (function (WebhookStatus) {
15
+ WebhookStatus["Active"] = "active";
16
+ WebhookStatus["Inactive"] = "inactive";
17
+ })(WebhookStatus || (exports.WebhookStatus = WebhookStatus = {}));
18
+ exports.webHookTestEvent = 'test';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hestia-earth/api",
3
- "version": "0.25.68",
3
+ "version": "0.25.70",
4
4
  "description": "Hestia API definitions",
5
5
  "main": "dist/models.js",
6
6
  "typings": "dist/models.d.ts",
@@ -76,12 +76,10 @@
76
76
  "@types/multer": "^1.4.7",
77
77
  "@types/node": "^22.0.0",
78
78
  "@types/orientjs": "^3.0.12",
79
- "@types/request": "^2.48.8",
80
- "@types/request-promise-native": "^1.0.18",
81
79
  "@types/winston": "^2.4.4",
82
80
  "@typescript-eslint/eslint-plugin": "^5.23.0",
83
81
  "@typescript-eslint/parser": "^5.23.0",
84
- "axios": "^1.12.2",
82
+ "axios": "^1.16.0",
85
83
  "body-parser": "^1.19.2",
86
84
  "capitalize": "^2.0.4",
87
85
  "compression": "^1.7.4",
@@ -118,7 +116,6 @@
118
116
  "python-shell": "^2.0.3",
119
117
  "redis": "^3.1.2",
120
118
  "request": "^2.88.2",
121
- "request-promise-native": "^1.0.9",
122
119
  "socket.io": "^4.8.3",
123
120
  "source-map-support": "^0.5.21",
124
121
  "standard-version": "^9.3.2",