@researchdatabox/sails-hook-redbox-storage-mongo 1.5.2 → 5.0.0-RC1

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.
Files changed (37) hide show
  1. package/README.md +20 -5
  2. package/dist/config/record.d.ts +3 -0
  3. package/dist/config/record.js +7 -0
  4. package/dist/config/storage.d.ts +105 -0
  5. package/dist/config/storage.js +25 -0
  6. package/dist/index.d.ts +16 -0
  7. package/dist/index.js +31 -0
  8. package/dist/models/DeletedRecord.d.ts +7 -0
  9. package/dist/models/DeletedRecord.js +37 -0
  10. package/dist/models/IntegrationAudit.d.ts +22 -0
  11. package/dist/models/IntegrationAudit.js +112 -0
  12. package/dist/models/Record.d.ts +13 -0
  13. package/dist/models/Record.js +64 -0
  14. package/dist/models/RecordAudit.d.ts +9 -0
  15. package/dist/models/RecordAudit.js +47 -0
  16. package/dist/models/index.d.ts +10 -0
  17. package/dist/models/index.js +32 -0
  18. package/dist/services/MongoStorageService.d.ts +83 -0
  19. package/dist/services/MongoStorageService.js +1276 -0
  20. package/dist/services/index.d.ts +5 -0
  21. package/dist/services/index.js +51 -0
  22. package/package.json +66 -32
  23. package/.github/dependabot.yml +0 -12
  24. package/api/models/DeletedRecord.js +0 -24
  25. package/api/models/Record.js +0 -41
  26. package/api/models/RecordAudit.js +0 -18
  27. package/api/services/MongoStorageService.js +0 -904
  28. package/config/record.js +0 -3
  29. package/config/storage.js +0 -73
  30. package/index.js +0 -21
  31. package/test/unit/.mocharc.js +0 -21
  32. package/test/unit/bootstrap.js +0 -63
  33. package/test/unit/db/storage.test.js +0 -121
  34. package/transformer/ExportJSONTransformer.js +0 -47
  35. package/tsconfig.json +0 -39
  36. package/typescript/api/services/MongoStorageService.ts +0 -1002
  37. package/typescript/transformer/ExportJSONTransformer.ts +0 -65
@@ -0,0 +1,83 @@
1
+ import { Observable } from 'rxjs';
2
+ import mongodb = require('mongodb');
3
+ import type { Collection, Db, Document, FindCursor, FindOptions, GridFSFile } from 'mongodb';
4
+ import stream = require('node:stream');
5
+ import { Services as services, StorageManagerService as StorageManagerServiceTypes, DatastreamService, StorageService, StorageServiceResponse, DatastreamServiceResponse, Datastream, RecordAuditModel, RecordAuditParams, IntegrationAuditModel, IntegrationAuditParams, RecordModel, BrandingModel, UserModel, RoleModel, RecordRelationshipExpandOptions, RecordRelationshipGraph } from '@researchdatabox/redbox-core';
6
+ type JsonMap = Record<string, unknown>;
7
+ type StorageRecord = RecordModel;
8
+ type MongoRecordDocument = Document;
9
+ type DatastreamContent = {
10
+ readstream?: NodeJS.ReadableStream;
11
+ body?: Buffer | string;
12
+ } & Record<string, unknown>;
13
+ export declare namespace Services {
14
+ class MongoStorageService extends services.Core.Service implements StorageService, DatastreamService {
15
+ gridFsBucket: mongodb.GridFSBucket;
16
+ db: Db;
17
+ recordCol: Collection<MongoRecordDocument>;
18
+ deletedRecordCol: Collection<MongoRecordDocument>;
19
+ private _readyHookRegistered;
20
+ protected _exportedMethods: string[];
21
+ constructor();
22
+ private getUuid;
23
+ private getErrorMessage;
24
+ init(): void;
25
+ private registerReadyHook;
26
+ private collectionExists;
27
+ private performInit;
28
+ private createIndices;
29
+ create(_brand: BrandingModel, record: JsonMap, _recordType: unknown, _user?: unknown): Promise<StorageServiceResponse>;
30
+ updateMeta(brand: BrandingModel, oid: string, record: JsonMap, user?: UserModel): Promise<StorageServiceResponse>;
31
+ getMeta(oid: string): Promise<RecordModel>;
32
+ getDeletedRecordMeta(oid: string): Promise<RecordModel | null>;
33
+ createBatch(type: string, data: JsonMap[], harvestIdFldName: string): Promise<unknown>;
34
+ provideUserAccessAndRemovePendingAccess(oid: any, userid: any, pendingValue: any): void;
35
+ getRelatedRecords(oid: string, brand: BrandingModel, options?: RecordRelationshipExpandOptions): Promise<RecordRelationshipGraph>;
36
+ private walkRelatedRecords;
37
+ private addRelatedObject;
38
+ private extractRelationshipLocalValues;
39
+ private buildRelationshipCriteria;
40
+ private findRelatedRecords;
41
+ private buildRelationshipEdge;
42
+ delete(oid: string, permanentlyDelete?: boolean): Promise<StorageServiceResponse>;
43
+ updateNotificationLog(oid: string, record: JsonMap, options: JsonMap): Promise<unknown>;
44
+ getDeletedRecords(workflowState: string, recordType: any, start: number, rows: number, username: string, roles: RoleModel[], brand: BrandingModel, _editAccessOnly?: any, packageType?: any, sort?: any, filterFields?: any, filterString?: any, filterMode?: string, secondarySort?: any): Promise<StorageServiceResponse>;
45
+ getRecords(workflowState: string, recordType: string, start: number, rows: number, username: string, roles: RoleModel[], brand: BrandingModel, _editAccessOnly?: any, packageType?: any, sort?: any, filterFields?: any, filterString?: any, filterMode?: any, secondarySort?: any): Promise<StorageServiceResponse>;
46
+ private escapeRegExp;
47
+ protected runRecordQuery(colName: any, query: any, options: any): Promise<{
48
+ items: mongodb.WithId<mongodb.BSON.Document>[];
49
+ totalItems: number;
50
+ }>;
51
+ protected runDeletedRecordQuery(colName: any, query: any, options: any): Promise<{
52
+ items: mongodb.WithId<mongodb.BSON.Document>[];
53
+ totalItems: number;
54
+ }>;
55
+ private fetchAllRecords;
56
+ exportAllPlans(username: any, roles: any, brand: any, format: any, modBefore: any, modAfter: any, recType: any): stream.Readable;
57
+ private collectCsvFields;
58
+ protected getRoleNames(roles: any, brand: any): any[];
59
+ addDatastreams(oid: string, fileIds: Datastream[]): Promise<DatastreamServiceResponse>;
60
+ updateDatastream(oid: string, record: StorageRecord, newMetadata: JsonMap, fileRoot: string | StorageManagerServiceTypes.Services.IDisk | null, fileIdsAdded: Datastream[]): Observable<Promise<unknown>[]>;
61
+ removeDatastream(oid: any, datastream: Datastream): Promise<void>;
62
+ addDatastream(oid: any, datastream: Datastream, stagingDisk?: StorageManagerServiceTypes.Services.IDisk): Promise<void>;
63
+ private streamFileToBucket;
64
+ addAndRemoveDatastreams(oid: any, addIds: Datastream[], removeIds: Datastream[], stagingDisk?: StorageManagerServiceTypes.Services.IDisk): Promise<void>;
65
+ getDatastream(oid: string, fileId: string): Promise<DatastreamContent>;
66
+ private getDatastreamAsync;
67
+ listDatastreams(oid: string, fileId?: string | null): Promise<Record<string, unknown>[]>;
68
+ private toJsonSafe;
69
+ private sanitizeRecordAudit;
70
+ private sanitizeIntegrationAudit;
71
+ createRecordAudit(recordAudit: RecordAuditModel): Promise<StorageServiceResponse>;
72
+ getRecordAudit(params: RecordAuditParams): Promise<unknown>;
73
+ createIntegrationAudit(audit: IntegrationAuditModel): Promise<StorageServiceResponse>;
74
+ private buildIntegrationAuditStartedAtCriteria;
75
+ getIntegrationAudit(params: IntegrationAuditParams): Promise<unknown>;
76
+ countIntegrationAudit(params: IntegrationAuditParams): Promise<number>;
77
+ restoreRecord(oid: string): Promise<StorageServiceResponse>;
78
+ destroyDeletedRecord(oid: string): Promise<StorageServiceResponse>;
79
+ protected getFileWithName(fileName: string, options?: FindOptions): FindCursor<GridFSFile>;
80
+ exists(oid: string): Promise<boolean>;
81
+ }
82
+ }
83
+ export {};