@quatrain/core 1.0.0-beta12 → 1.0.0-beta14
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 +4 -0
- package/lib/Core.js +16 -0
- package/lib/components/ObjectUri.d.ts +16 -0
- package/lib/components/ObjectUri.js +20 -0
- package/lib/index.d.ts +8 -1
- package/lib/index.js +3 -1
- package/lib/storages/AbstractStorageAdapter.d.ts +16 -0
- package/lib/storages/AbstractStorageAdapter.js +7 -0
- package/lib/storages/StorageAdapterInterface.d.ts +18 -0
- package/lib/storages/index.d.ts +8 -0
- package/lib/storages/index.js +5 -0
- package/lib/storages/types/BlobMediaType.d.ts +8 -0
- package/lib/storages/types/BlobMediaType.js +2 -0
- package/lib/storages/types/BlobType.d.ts +6 -0
- package/lib/storages/types/BlobType.js +2 -0
- package/lib/storages/types/FileResponseLink.d.ts +7 -0
- package/lib/storages/types/FileResponseLink.js +2 -0
- package/lib/storages/types/FileResponseUrl.d.ts +4 -0
- package/lib/storages/types/FileResponseUrl.js +2 -0
- package/lib/storages/types/FileType.d.ts +15 -0
- package/lib/storages/types/FileType.js +2 -0
- package/lib/storages/types.d.ts +5 -0
- package/lib/storages/types.js +2 -0
- package/package.json +1 -1
- package/lib/authentication/middlewares/Middleware.d.ts +0 -5
- /package/lib/{authentication/middlewares/Middleware.js → storages/StorageAdapterInterface.js} +0 -0
package/lib/Core.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface AuthAdapter extends AbstractAuthAdapter {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class Core {
|
|
11
11
|
static defaultBackend: string;
|
|
12
|
+
static defaultStorage: string;
|
|
12
13
|
static userClass: typeof User;
|
|
13
14
|
static classRegistry: {
|
|
14
15
|
[key: string]: any;
|
|
@@ -17,6 +18,7 @@ export declare class Core {
|
|
|
17
18
|
static auth: AuthAdapter | AbstractAuthAdapter;
|
|
18
19
|
static timestamp: () => string;
|
|
19
20
|
protected static _backends: BackendRegistry<any>;
|
|
21
|
+
protected static _storages: BackendRegistry<any>;
|
|
20
22
|
static definition(key: string): {
|
|
21
23
|
manifest: {
|
|
22
24
|
type: StringConstructor;
|
|
@@ -25,6 +27,8 @@ export declare class Core {
|
|
|
25
27
|
};
|
|
26
28
|
static addBackend(backend: AbstractAdapter, alias: string, setDefault?: boolean): void;
|
|
27
29
|
static getBackend<T extends AbstractAdapter>(alias?: string): T;
|
|
30
|
+
static addStorage(backend: AbstractAdapter, alias: string, setDefault?: boolean): void;
|
|
31
|
+
static getStorage<T extends AbstractAdapter>(alias?: string): T;
|
|
28
32
|
static addClass(name: string, obj: any): void;
|
|
29
33
|
static getClass(name: string): any;
|
|
30
34
|
/**
|
package/lib/Core.js
CHANGED
|
@@ -26,6 +26,20 @@ class Core {
|
|
|
26
26
|
throw new Error(`Unknown backend alias: '${alias}'`);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
static addStorage(backend, alias, setDefault = false) {
|
|
30
|
+
Core._storages[alias] = backend;
|
|
31
|
+
if (setDefault) {
|
|
32
|
+
Core.defaultStorage = alias;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static getStorage(alias = this.defaultStorage) {
|
|
36
|
+
if (this._storages[alias]) {
|
|
37
|
+
return this._storages[alias];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new Error(`Unknown storage alias: '${alias}'`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
29
43
|
static addClass(name, obj) {
|
|
30
44
|
Core.classRegistry[name] = obj;
|
|
31
45
|
}
|
|
@@ -52,9 +66,11 @@ class Core {
|
|
|
52
66
|
}
|
|
53
67
|
exports.Core = Core;
|
|
54
68
|
Core.defaultBackend = '@default';
|
|
69
|
+
Core.defaultStorage = '@default';
|
|
55
70
|
Core.userClass = User_1.User;
|
|
56
71
|
Core.classRegistry = {};
|
|
57
72
|
Core.logger = console;
|
|
58
73
|
// How timestamp are formatted
|
|
59
74
|
Core.timestamp = () => new Date().toISOString();
|
|
60
75
|
Core._backends = {};
|
|
76
|
+
Core._storages = {};
|
|
@@ -22,10 +22,26 @@ export declare class ObjectUri {
|
|
|
22
22
|
set class(objClass: any);
|
|
23
23
|
get class(): any;
|
|
24
24
|
get backend(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Returns the full path of the resource
|
|
27
|
+
* including optional parents' path
|
|
28
|
+
* @returns string
|
|
29
|
+
*/
|
|
25
30
|
get path(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the own path of the resource
|
|
33
|
+
* without the optional parents' paths
|
|
34
|
+
* @returns string
|
|
35
|
+
*/
|
|
36
|
+
get ownPath(): string;
|
|
26
37
|
get parent(): ObjectUri | undefined;
|
|
27
38
|
set label(label: string | undefined);
|
|
28
39
|
get label(): string | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Return the full path litteral
|
|
42
|
+
* including the backend alias
|
|
43
|
+
* @returns string
|
|
44
|
+
*/
|
|
29
45
|
get literal(): string;
|
|
30
46
|
set path(path: string);
|
|
31
47
|
get uid(): string | undefined;
|
|
@@ -72,7 +72,22 @@ class ObjectUri {
|
|
|
72
72
|
get backend() {
|
|
73
73
|
return this._backend;
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Returns the full path of the resource
|
|
77
|
+
* including optional parents' path
|
|
78
|
+
* @returns string
|
|
79
|
+
*/
|
|
75
80
|
get path() {
|
|
81
|
+
return this._parent
|
|
82
|
+
? `${this._parent.path}${ObjectUri.DEFAULT}${this._path}`
|
|
83
|
+
: this._path;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Returns the own path of the resource
|
|
87
|
+
* without the optional parents' paths
|
|
88
|
+
* @returns string
|
|
89
|
+
*/
|
|
90
|
+
get ownPath() {
|
|
76
91
|
return this._path;
|
|
77
92
|
}
|
|
78
93
|
get parent() {
|
|
@@ -84,6 +99,11 @@ class ObjectUri {
|
|
|
84
99
|
get label() {
|
|
85
100
|
return this._label;
|
|
86
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Return the full path litteral
|
|
104
|
+
* including the backend alias
|
|
105
|
+
* @returns string
|
|
106
|
+
*/
|
|
87
107
|
get literal() {
|
|
88
108
|
return this._str.includes(':')
|
|
89
109
|
? this._str
|
package/lib/index.d.ts
CHANGED
|
@@ -30,5 +30,12 @@ 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 { AbstractStorageAdapter } from './storages/AbstractStorageAdapter';
|
|
34
|
+
import { FileType } from './storages/types/FileType';
|
|
35
|
+
import { BlobType } from './storages/types/BlobType';
|
|
36
|
+
import { BlobMediaType } from './storages/types/BlobMediaType';
|
|
37
|
+
import { StorageAdapterInterface } from './storages/StorageAdapterInterface';
|
|
38
|
+
import { FileResponseLink } from './storages/types/FileResponseLink';
|
|
39
|
+
import { FileResponseUrl } from './storages/types/FileResponseUrl';
|
|
33
40
|
import { AbstractCloudWrapper } from './wrappers/cloud/AbstractCloudWrapper';
|
|
34
|
-
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, AbstractCloudWrapper, };
|
|
41
|
+
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, FileType, BlobType, BlobMediaType, StorageAdapterInterface, AbstractStorageAdapter, FileResponseLink, FileResponseUrl, 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.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;
|
|
29
|
+
exports.AbstractCloudWrapper = exports.AbstractStorageAdapter = 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,5 +96,7 @@ 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; } });
|
|
99
101
|
const AbstractCloudWrapper_1 = require("./wrappers/cloud/AbstractCloudWrapper");
|
|
100
102
|
Object.defineProperty(exports, "AbstractCloudWrapper", { enumerable: true, get: function () { return AbstractCloudWrapper_1.AbstractCloudWrapper; } });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import { FileType } from './types/FileType';
|
|
4
|
+
import { StorageAdapterInterface } from './StorageAdapterInterface';
|
|
5
|
+
export declare abstract class AbstractStorageAdapter implements StorageAdapterInterface {
|
|
6
|
+
abstract create(file: FileType, stream: Readable): Promise<FileType>;
|
|
7
|
+
abstract download(file: FileType, path: string): Promise<string>;
|
|
8
|
+
abstract getUrl(file: FileType, expiresIn?: number, action?: string, extra?: any): Promise<any>;
|
|
9
|
+
abstract delete(file: FileType): Promise<Boolean>;
|
|
10
|
+
abstract stream(file: FileType, res: any): Promise<any>;
|
|
11
|
+
abstract getUploadUrl(filePath: FileType, expiresIn?: number): Promise<any>;
|
|
12
|
+
abstract getReadable(file: FileType): Promise<Readable>;
|
|
13
|
+
abstract generateThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
14
|
+
abstract generateImageThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
15
|
+
abstract generateVideoThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractStorageAdapter = void 0;
|
|
4
|
+
//import { APIResponseLink, ResponsePublicUrl } from './types'
|
|
5
|
+
class AbstractStorageAdapter {
|
|
6
|
+
}
|
|
7
|
+
exports.AbstractStorageAdapter = AbstractStorageAdapter;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Readable } from "stream";
|
|
3
|
+
import { FileType } from "./types/FileType";
|
|
4
|
+
/**
|
|
5
|
+
* These are the public functions that any storage interface must expose
|
|
6
|
+
*/
|
|
7
|
+
export interface StorageAdapterInterface {
|
|
8
|
+
create(file: FileType, stream: Readable): Promise<FileType>;
|
|
9
|
+
delete(file: FileType): Promise<Boolean>;
|
|
10
|
+
stream(file: FileType, res: any): Promise<any>;
|
|
11
|
+
download(file: FileType, path: string): Promise<string>;
|
|
12
|
+
getUrl(file: FileType, expiresIn?: number, action?: string, extra?: any): Promise<any>;
|
|
13
|
+
getUploadUrl(filePath: FileType, expiresIn?: number): Promise<any>;
|
|
14
|
+
getReadable(filePath: FileType): Promise<Readable>;
|
|
15
|
+
generateThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
16
|
+
generateImageThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
17
|
+
generateVideoThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FileType } from './types/FileType';
|
|
2
|
+
import { BlobType } from './types/BlobType';
|
|
3
|
+
import { BlobMediaType } from './types/BlobMediaType';
|
|
4
|
+
import { FileResponseLink } from './types/FileResponseLink';
|
|
5
|
+
import { FileResponseUrl } from './types/FileResponseUrl';
|
|
6
|
+
import { StorageAdapterInterface } from './StorageAdapterInterface';
|
|
7
|
+
import { AbstractStorageAdapter } from './AbstractStorageAdapter';
|
|
8
|
+
export { FileType, BlobType, BlobMediaType, FileResponseLink, FileResponseUrl, StorageAdapterInterface, AbstractStorageAdapter, };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractStorageAdapter = void 0;
|
|
4
|
+
const AbstractStorageAdapter_1 = require("./AbstractStorageAdapter");
|
|
5
|
+
Object.defineProperty(exports, "AbstractStorageAdapter", { enumerable: true, get: function () { return AbstractStorageAdapter_1.AbstractStorageAdapter; } });
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface FileType {
|
|
2
|
+
bucket: string;
|
|
3
|
+
ref: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
contentType?: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
framerate?: number;
|
|
8
|
+
duration?: number;
|
|
9
|
+
bitrate?: number;
|
|
10
|
+
width?: number;
|
|
11
|
+
height?: number;
|
|
12
|
+
thumb128?: string;
|
|
13
|
+
thumb256?: string;
|
|
14
|
+
[x: string]: any;
|
|
15
|
+
}
|
package/package.json
CHANGED
/package/lib/{authentication/middlewares/Middleware.js → storages/StorageAdapterInterface.js}
RENAMED
|
File without changes
|