@quatrain/core 1.0.0-beta13 → 1.0.0-beta15
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/index.d.ts +9 -1
- package/lib/index.js +3 -1
- package/lib/storages/AbstractStorageAdapter.d.ts +17 -0
- package/lib/storages/AbstractStorageAdapter.js +7 -0
- package/lib/storages/StorageAdapterInterface.d.ts +19 -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/lib/wrappers/cloud/types/DatabaseTriggerType.d.ts +8 -0
- package/lib/wrappers/cloud/types/DatabaseTriggerType.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 = {};
|
package/lib/index.d.ts
CHANGED
|
@@ -30,5 +30,13 @@ 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';
|
|
40
|
+
import { DatabaseTriggerType } from './wrappers/cloud/types/DatabaseTriggerType';
|
|
33
41
|
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, };
|
|
42
|
+
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, 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.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,17 @@
|
|
|
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 getDriver(): any;
|
|
7
|
+
abstract create(file: FileType, stream: Readable): Promise<FileType>;
|
|
8
|
+
abstract download(file: FileType, path: string): Promise<string>;
|
|
9
|
+
abstract getUrl(file: FileType, expiresIn?: number, action?: string, extra?: any): Promise<any>;
|
|
10
|
+
abstract delete(file: FileType): Promise<Boolean>;
|
|
11
|
+
abstract stream(file: FileType, res: any): Promise<any>;
|
|
12
|
+
abstract getUploadUrl(filePath: FileType, expiresIn?: number): Promise<any>;
|
|
13
|
+
abstract getReadable(file: FileType): Promise<Readable>;
|
|
14
|
+
abstract generateThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
15
|
+
abstract generateImageThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
16
|
+
abstract generateVideoThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
17
|
+
}
|
|
@@ -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,19 @@
|
|
|
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
|
+
getDriver(): any;
|
|
9
|
+
create(file: FileType, stream: Readable): Promise<FileType>;
|
|
10
|
+
delete(file: FileType): Promise<Boolean>;
|
|
11
|
+
stream(file: FileType, res: any): Promise<any>;
|
|
12
|
+
download(file: FileType, path: string): Promise<string>;
|
|
13
|
+
getUrl(file: FileType, expiresIn?: number, action?: string, extra?: any): Promise<any>;
|
|
14
|
+
getUploadUrl(filePath: FileType, expiresIn?: number): Promise<any>;
|
|
15
|
+
getReadable(filePath: FileType): Promise<Readable>;
|
|
16
|
+
generateThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
17
|
+
generateImageThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
18
|
+
generateVideoThumbnail(file: FileType, sizes: number[]): Promise<any>;
|
|
19
|
+
}
|
|
@@ -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
|