@quatrain/core 1.0.0-beta23 → 1.0.0-beta25
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/lib/Core.d.ts +0 -8
- package/lib/Core.js +0 -16
- package/lib/backends/Query.d.ts +2 -1
- package/lib/backends/types/BackendInterface.d.ts +1 -1
- package/lib/components/BaseRepository.d.ts +1 -1
- package/lib/components/BaseRepository.js +8 -5
- package/lib/components/DataObject.d.ts +1 -0
- package/lib/components/DataObject.js +3 -0
- package/lib/components/ObjectUri.js +2 -2
- package/lib/index.d.ts +1 -10
- package/lib/index.js +1 -3
- package/lib/properties/ArrayProperty.js +3 -0
- package/lib/storages/index.js +13 -1
- package/package.json +1 -1
package/lib/Core.d.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
import { AbstractAuthAdapter } from './authentication';
|
|
2
2
|
import { AbstractAdapter } from './backends/AbstractAdapter';
|
|
3
|
-
import { AbstractStorageAdapter } from './storages';
|
|
4
3
|
import { User } from './components/User';
|
|
5
4
|
import { DataObjectClass } from './components/types/DataObjectClass';
|
|
6
5
|
export type BackendRegistry<T extends AbstractAdapter> = {
|
|
7
6
|
[x: string]: T;
|
|
8
7
|
};
|
|
9
|
-
export type StorageBackendRegistry<T extends AbstractStorageAdapter> = {
|
|
10
|
-
[x: string]: T;
|
|
11
|
-
};
|
|
12
8
|
export interface AuthAdapter extends AbstractAuthAdapter {
|
|
13
9
|
}
|
|
14
10
|
export declare class Core {
|
|
15
11
|
static storage: any;
|
|
16
12
|
static storagePrefix: string;
|
|
17
13
|
static defaultBackend: string;
|
|
18
|
-
static defaultStorage: string;
|
|
19
14
|
static userClass: typeof User;
|
|
20
15
|
static classRegistry: {
|
|
21
16
|
[key: string]: any;
|
|
@@ -24,7 +19,6 @@ export declare class Core {
|
|
|
24
19
|
static auth: AuthAdapter | AbstractAuthAdapter;
|
|
25
20
|
static timestamp: () => string;
|
|
26
21
|
protected static _backends: BackendRegistry<any>;
|
|
27
|
-
protected static _storages: StorageBackendRegistry<any>;
|
|
28
22
|
static definition(key: string): {
|
|
29
23
|
manifest: {
|
|
30
24
|
type: StringConstructor;
|
|
@@ -35,8 +29,6 @@ export declare class Core {
|
|
|
35
29
|
static getConfig(key: string): Promise<any>;
|
|
36
30
|
static addBackend(backend: AbstractAdapter, alias: string, setDefault?: boolean): void;
|
|
37
31
|
static getBackend<T extends AbstractAdapter>(alias?: string): T;
|
|
38
|
-
static addStorage(backend: AbstractStorageAdapter, alias: string, setDefault?: boolean): void;
|
|
39
|
-
static getStorage<T extends AbstractStorageAdapter>(alias?: string): T;
|
|
40
32
|
static addClass(name: string, obj: any): void;
|
|
41
33
|
static getClass(name: string): any;
|
|
42
34
|
/**
|
package/lib/Core.js
CHANGED
|
@@ -51,20 +51,6 @@ class Core {
|
|
|
51
51
|
throw new Error(`Unknown backend alias: '${alias}'`);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
static addStorage(backend, alias, setDefault = false) {
|
|
55
|
-
Core._storages[alias] = backend;
|
|
56
|
-
if (setDefault) {
|
|
57
|
-
Core.defaultStorage = alias;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
static getStorage(alias = this.defaultStorage) {
|
|
61
|
-
if (this._storages[alias]) {
|
|
62
|
-
return this._storages[alias];
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
throw new Error(`Unknown storage alias: '${alias}'`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
54
|
static addClass(name, obj) {
|
|
69
55
|
Core.classRegistry[name] = obj;
|
|
70
56
|
}
|
|
@@ -93,11 +79,9 @@ exports.Core = Core;
|
|
|
93
79
|
Core.storage = require('node-persist');
|
|
94
80
|
Core.storagePrefix = 'core';
|
|
95
81
|
Core.defaultBackend = '@default';
|
|
96
|
-
Core.defaultStorage = '@default';
|
|
97
82
|
Core.userClass = User_1.User;
|
|
98
83
|
Core.classRegistry = {};
|
|
99
84
|
Core.logger = console;
|
|
100
85
|
// How timestamp are formatted
|
|
101
86
|
Core.timestamp = () => new Date().toISOString();
|
|
102
87
|
Core._backends = {};
|
|
103
|
-
Core._storages = {};
|
package/lib/backends/Query.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { BaseObjectCore } from '../components/BaseObjectCore';
|
|
|
8
8
|
export declare const AS_OBJECTURIS = "objectUris";
|
|
9
9
|
export declare const AS_DATAOBJECTS = "dataObjects";
|
|
10
10
|
export declare const AS_INSTANCES = "classInstances";
|
|
11
|
+
export type OperatorKeys = 'equals' | 'notEquals' | 'greater' | 'greaterOrEquals' | 'lower' | 'lowerOrEquals' | 'contains' | 'notContains' | 'containsAll' | 'containsAny';
|
|
11
12
|
export type QueryMetaType = {
|
|
12
13
|
count: number;
|
|
13
14
|
offset: number;
|
|
@@ -42,7 +43,7 @@ export declare class Query<T extends typeof BaseObjectCore> {
|
|
|
42
43
|
* This may be need in some NoSQL backend to query subcollections
|
|
43
44
|
*/
|
|
44
45
|
set parent(parent: T | undefined);
|
|
45
|
-
where(param: Filter | string | any, value?: any, operator?:
|
|
46
|
+
where(param: Filter | string | any, value?: any, operator?: OperatorKeys): this;
|
|
46
47
|
sortBy(param: Sorting | string, order?: any): this;
|
|
47
48
|
setLimits(limits: Limits): this;
|
|
48
49
|
offset(offset?: number): this;
|
|
@@ -7,7 +7,7 @@ export interface BackendInterface {
|
|
|
7
7
|
create(dataObject: DataObjectClass<any>, desiredUid: string | undefined): Promise<DataObjectClass<any>>;
|
|
8
8
|
read(param: string | DataObjectClass<any>): Promise<DataObjectClass<any>>;
|
|
9
9
|
update(dataObject: DataObjectClass<any>): Promise<DataObjectClass<any>>;
|
|
10
|
-
delete(dataObject: DataObjectClass<any
|
|
10
|
+
delete(dataObject: DataObjectClass<any>, hardDelete?: boolean): Promise<DataObjectClass<any>>;
|
|
11
11
|
query(query: Query<any>): Promise<QueryResultType<DataObjectClass<any>>>;
|
|
12
12
|
find(dataObject: DataObjectClass<any>, filters: Filters | Filter[] | undefined, pagination: SortAndLimit | undefined, parent: any): Promise<QueryResultType<DataObjectClass<any>>>;
|
|
13
13
|
}
|
|
@@ -20,6 +20,6 @@ export default class BaseRepository<T extends BaseObject> {
|
|
|
20
20
|
* delete object in its backend
|
|
21
21
|
* @param uid string
|
|
22
22
|
*/
|
|
23
|
-
delete(uid: string): Promise<DataObjectClass<any>>;
|
|
23
|
+
delete(uid: string, hardDelete?: boolean): Promise<DataObjectClass<any>>;
|
|
24
24
|
query(query: Query<any>): Promise<QueryResultType<T>>;
|
|
25
25
|
}
|
|
@@ -49,7 +49,10 @@ class BaseRepository {
|
|
|
49
49
|
getDataObjectFromUid(uid) {
|
|
50
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
51
|
const collection = this._model.COLLECTION || this._model.name.toLowerCase();
|
|
52
|
-
|
|
52
|
+
let path = `${collection}/${uid}`;
|
|
53
|
+
if (uid.split('/').length > 2) {
|
|
54
|
+
path = uid;
|
|
55
|
+
}
|
|
53
56
|
const dataObject = DataObject_1.DataObject.factory({
|
|
54
57
|
properties: this._model.PROPS_DEFINITION,
|
|
55
58
|
uri: path,
|
|
@@ -103,7 +106,7 @@ class BaseRepository {
|
|
|
103
106
|
throw e;
|
|
104
107
|
}
|
|
105
108
|
if (e instanceof ResourcesErrors_1.NotFoundError) {
|
|
106
|
-
|
|
109
|
+
return null;
|
|
107
110
|
}
|
|
108
111
|
throw e;
|
|
109
112
|
}
|
|
@@ -111,7 +114,7 @@ class BaseRepository {
|
|
|
111
114
|
}
|
|
112
115
|
update(obj) {
|
|
113
116
|
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
-
const dataObject = obj.dataObject;
|
|
117
|
+
const dataObject = obj.dataObject || obj;
|
|
115
118
|
const savedObj = yield this.backendAdapter.update(dataObject);
|
|
116
119
|
return this._model.fromDataObject(savedObj);
|
|
117
120
|
});
|
|
@@ -120,10 +123,10 @@ class BaseRepository {
|
|
|
120
123
|
* delete object in its backend
|
|
121
124
|
* @param uid string
|
|
122
125
|
*/
|
|
123
|
-
delete(uid) {
|
|
126
|
+
delete(uid, hardDelete = false) {
|
|
124
127
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
128
|
const dataObject = yield this.getDataObjectFromUid(uid);
|
|
126
|
-
return yield this.backendAdapter.delete(dataObject);
|
|
129
|
+
return yield this.backendAdapter.delete(dataObject, hardDelete);
|
|
127
130
|
});
|
|
128
131
|
}
|
|
129
132
|
query(query) {
|
|
@@ -85,6 +85,7 @@ export declare class DataObject implements DataObjectClass<any> {
|
|
|
85
85
|
get uri(): ObjectUri;
|
|
86
86
|
get class(): any;
|
|
87
87
|
get parentProp(): string | undefined;
|
|
88
|
+
set parentProp(str: string | undefined);
|
|
88
89
|
has(key: string): boolean;
|
|
89
90
|
/**
|
|
90
91
|
* Returns property matching key or throw
|
|
@@ -139,7 +139,7 @@ class ObjectUri {
|
|
|
139
139
|
*/
|
|
140
140
|
toReference() {
|
|
141
141
|
return {
|
|
142
|
-
ref: this.
|
|
142
|
+
ref: this.path,
|
|
143
143
|
uri: this._literal,
|
|
144
144
|
label: this._label,
|
|
145
145
|
};
|
|
@@ -147,7 +147,7 @@ class ObjectUri {
|
|
|
147
147
|
toJSON() {
|
|
148
148
|
return {
|
|
149
149
|
backend: this._backend,
|
|
150
|
-
ref: this.
|
|
150
|
+
ref: this.path,
|
|
151
151
|
label: this._label || '',
|
|
152
152
|
};
|
|
153
153
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -30,15 +30,6 @@ import { AuthAction, AuthParameters, AuthParametersKeys } from './Auth';
|
|
|
30
30
|
import { AuthInterface, AbstractAuthAdapter, AuthenticationError } from './authentication';
|
|
31
31
|
import { AbstractAdapter, MockAdapter, BackendError, Query, QueryMetaType, QueryResultType, Filter, Filters, Limits, Sorting, SortAndLimit } from './backends';
|
|
32
32
|
import { BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, GoneError } from './common/ResourcesErrors';
|
|
33
|
-
import { StorageParameters, StorageParametersKeys } from './Storage';
|
|
34
|
-
import { AbstractStorageAdapter } from './storages/AbstractStorageAdapter';
|
|
35
|
-
import { FileType } from './storages/types/FileType';
|
|
36
|
-
import { BlobType } from './storages/types/BlobType';
|
|
37
|
-
import { BlobMediaType } from './storages/types/BlobMediaType';
|
|
38
|
-
import { StorageAdapterInterface } from './storages/StorageAdapterInterface';
|
|
39
|
-
import { FileResponseLink } from './storages/types/FileResponseLink';
|
|
40
|
-
import { FileResponseUrl } from './storages/types/FileResponseUrl';
|
|
41
|
-
import { DownloadFileMeta } from './storages/types/DownloadFileMetaType';
|
|
42
33
|
import { DatabaseTriggerType } from './wrappers/cloud/types/DatabaseTriggerType';
|
|
43
34
|
import { AbstractCloudWrapper } from './wrappers/cloud/AbstractCloudWrapper';
|
|
44
|
-
export { statuses, utils, Core, Property, BaseProperty, BasePropertyType, BooleanProperty, BooleanPropertyType, DateTimeProperty, DateTimePropertyType, EnumProperty, EnumPropertyType, HashProperty, HashPropertyType, ObjectProperty, ObjectPropertyType, StringProperty, StringPropertyType, AbstractAdapter, RepositoryClass, MockAdapter, ObjectUri, DataObjectClass, DataObject, AbstractObject, BaseObject, BaseObjectCore, BaseObjectProperties, AuthAction, AuthParameters, AuthParametersKeys, AuthInterface, AbstractAuthAdapter, AuthenticationError, BackendParameters, BackendParametersKeys, BackendRecordType, BackendAction, BaseRepository, BackendError, Query, QueryMetaType, QueryResultType, Filter, Filters, Limits, Sorting, SortAndLimit, Middleware, InjectMetaMiddleware, InjectKeywordsMiddleware, User, UserType, Proxy, UserRepository, Entity, EntityType, EntityRepository, BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, GoneError,
|
|
35
|
+
export { statuses, utils, Core, Property, BaseProperty, BasePropertyType, BooleanProperty, BooleanPropertyType, DateTimeProperty, DateTimePropertyType, EnumProperty, EnumPropertyType, HashProperty, HashPropertyType, ObjectProperty, ObjectPropertyType, StringProperty, StringPropertyType, AbstractAdapter, RepositoryClass, MockAdapter, ObjectUri, DataObjectClass, DataObject, AbstractObject, BaseObject, BaseObjectCore, BaseObjectProperties, AuthAction, AuthParameters, AuthParametersKeys, AuthInterface, AbstractAuthAdapter, AuthenticationError, BackendParameters, BackendParametersKeys, BackendRecordType, BackendAction, BaseRepository, BackendError, Query, QueryMetaType, QueryResultType, Filter, Filters, Limits, Sorting, SortAndLimit, Middleware, InjectMetaMiddleware, InjectKeywordsMiddleware, User, UserType, Proxy, UserRepository, Entity, EntityType, EntityRepository, BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, GoneError, DatabaseTriggerType, AbstractCloudWrapper, };
|
package/lib/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.AbstractCloudWrapper = exports.
|
|
29
|
+
exports.AbstractCloudWrapper = exports.GoneError = exports.NotFoundError = exports.ForbiddenError = exports.UnauthorizedError = exports.BadRequestError = exports.EntityRepository = exports.Entity = exports.UserRepository = exports.User = exports.InjectKeywordsMiddleware = exports.InjectMetaMiddleware = exports.SortAndLimit = exports.Sorting = exports.Limits = exports.Filters = exports.Filter = exports.Query = exports.BackendError = exports.BaseRepository = exports.BackendAction = exports.AuthenticationError = exports.AbstractAuthAdapter = exports.AuthAction = exports.BaseObjectProperties = exports.BaseObjectCore = exports.AbstractObject = exports.DataObject = exports.ObjectUri = exports.MockAdapter = exports.AbstractAdapter = exports.StringProperty = exports.ObjectProperty = exports.HashProperty = exports.EnumProperty = exports.DateTimeProperty = exports.BooleanProperty = exports.BaseProperty = exports.Property = exports.Core = exports.utils = exports.statuses = void 0;
|
|
30
30
|
const Core_1 = require("./Core");
|
|
31
31
|
Object.defineProperty(exports, "Core", { enumerable: true, get: function () { return Core_1.Core; } });
|
|
32
32
|
const statuses = __importStar(require("./common/statuses"));
|
|
@@ -96,7 +96,5 @@ Object.defineProperty(exports, "UnauthorizedError", { enumerable: true, get: fun
|
|
|
96
96
|
Object.defineProperty(exports, "ForbiddenError", { enumerable: true, get: function () { return ResourcesErrors_1.ForbiddenError; } });
|
|
97
97
|
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return ResourcesErrors_1.NotFoundError; } });
|
|
98
98
|
Object.defineProperty(exports, "GoneError", { enumerable: true, get: function () { return ResourcesErrors_1.GoneError; } });
|
|
99
|
-
const AbstractStorageAdapter_1 = require("./storages/AbstractStorageAdapter");
|
|
100
|
-
Object.defineProperty(exports, "AbstractStorageAdapter", { enumerable: true, get: function () { return AbstractStorageAdapter_1.AbstractStorageAdapter; } });
|
|
101
99
|
const AbstractCloudWrapper_1 = require("./wrappers/cloud/AbstractCloudWrapper");
|
|
102
100
|
Object.defineProperty(exports, "AbstractCloudWrapper", { enumerable: true, get: function () { return AbstractCloudWrapper_1.AbstractCloudWrapper; } });
|
|
@@ -31,6 +31,9 @@ class ArrayProperty extends BaseProperty_1.BaseProperty {
|
|
|
31
31
|
return this._maxLength;
|
|
32
32
|
}
|
|
33
33
|
set(value, setChanged = true) {
|
|
34
|
+
if (value === null) {
|
|
35
|
+
value = [];
|
|
36
|
+
}
|
|
34
37
|
if (!Array.isArray(value)) {
|
|
35
38
|
throw new Error(`value ${JSON.stringify(value)} is not an array`);
|
|
36
39
|
}
|
package/lib/storages/index.js
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AbstractStorageAdapter = void 0;
|
|
3
|
+
exports.AbstractStorageAdapter = exports.DownloadFileMeta = exports.FileResponseUrl = exports.FileResponseLink = exports.BlobMediaType = exports.BlobType = exports.FileType = void 0;
|
|
4
|
+
const FileType_1 = require("./types/FileType");
|
|
5
|
+
Object.defineProperty(exports, "FileType", { enumerable: true, get: function () { return FileType_1.FileType; } });
|
|
6
|
+
const BlobType_1 = require("./types/BlobType");
|
|
7
|
+
Object.defineProperty(exports, "BlobType", { enumerable: true, get: function () { return BlobType_1.BlobType; } });
|
|
8
|
+
const BlobMediaType_1 = require("./types/BlobMediaType");
|
|
9
|
+
Object.defineProperty(exports, "BlobMediaType", { enumerable: true, get: function () { return BlobMediaType_1.BlobMediaType; } });
|
|
10
|
+
const FileResponseLink_1 = require("./types/FileResponseLink");
|
|
11
|
+
Object.defineProperty(exports, "FileResponseLink", { enumerable: true, get: function () { return FileResponseLink_1.FileResponseLink; } });
|
|
12
|
+
const FileResponseUrl_1 = require("./types/FileResponseUrl");
|
|
13
|
+
Object.defineProperty(exports, "FileResponseUrl", { enumerable: true, get: function () { return FileResponseUrl_1.FileResponseUrl; } });
|
|
14
|
+
const DownloadFileMetaType_1 = require("./types/DownloadFileMetaType");
|
|
15
|
+
Object.defineProperty(exports, "DownloadFileMeta", { enumerable: true, get: function () { return DownloadFileMetaType_1.DownloadFileMeta; } });
|
|
4
16
|
const AbstractStorageAdapter_1 = require("./AbstractStorageAdapter");
|
|
5
17
|
Object.defineProperty(exports, "AbstractStorageAdapter", { enumerable: true, get: function () { return AbstractStorageAdapter_1.AbstractStorageAdapter; } });
|