@webiny/api-file-manager-ddb 0.0.0-mt-1

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 (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -0
  3. package/definitions/filesEntity.d.ts +7 -0
  4. package/definitions/filesEntity.js +80 -0
  5. package/definitions/settingsEntity.d.ts +7 -0
  6. package/definitions/settingsEntity.js +56 -0
  7. package/definitions/systemEntity.d.ts +7 -0
  8. package/definitions/systemEntity.js +44 -0
  9. package/definitions/table.d.ts +6 -0
  10. package/definitions/table.js +28 -0
  11. package/index.d.ts +5 -0
  12. package/index.js +16 -0
  13. package/operations/configurations.d.ts +14 -0
  14. package/operations/configurations.js +22 -0
  15. package/operations/files/FilesStorageOperations.d.ts +22 -0
  16. package/operations/files/FilesStorageOperations.js +345 -0
  17. package/operations/files/fields.d.ts +3 -0
  18. package/operations/files/fields.js +42 -0
  19. package/operations/files/index.d.ts +6 -0
  20. package/operations/files/index.js +35 -0
  21. package/operations/settings/SettingsStorageOperations.d.ts +15 -0
  22. package/operations/settings/SettingsStorageOperations.js +120 -0
  23. package/operations/settings/index.d.ts +8 -0
  24. package/operations/settings/index.js +32 -0
  25. package/operations/system/SystemStorageOperations.d.ts +14 -0
  26. package/operations/system/SystemStorageOperations.js +108 -0
  27. package/operations/system/index.d.ts +8 -0
  28. package/operations/system/index.js +32 -0
  29. package/operations/utils.d.ts +4 -0
  30. package/operations/utils.js +36 -0
  31. package/package.json +67 -0
  32. package/plugins/FileAttributePlugin.d.ts +4 -0
  33. package/plugins/FileAttributePlugin.js +27 -0
  34. package/plugins/FileDynamoDbFieldPlugin.d.ts +4 -0
  35. package/plugins/FileDynamoDbFieldPlugin.js +17 -0
  36. package/plugins/SettingsAttributePlugin.d.ts +4 -0
  37. package/plugins/SettingsAttributePlugin.js +27 -0
  38. package/plugins/SystemAttributePlugin.d.ts +4 -0
  39. package/plugins/SystemAttributePlugin.js +27 -0
  40. package/types.d.ts +0 -0
  41. package/types.js +1 -0
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SystemStorageOperations = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _error = _interopRequireDefault(require("@webiny/error"));
13
+
14
+ var _systemEntity = _interopRequireDefault(require("../../definitions/systemEntity"));
15
+
16
+ var _table = _interopRequireDefault(require("../../definitions/table"));
17
+
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
+
22
+ const SORT_KEY = "FM";
23
+
24
+ class SystemStorageOperations {
25
+ get partitionKey() {
26
+ const tenant = this._context.tenancy.getCurrentTenant();
27
+
28
+ if (!tenant) {
29
+ throw new _error.default("Tenant missing.", "TENANT_NOT_FOUND");
30
+ }
31
+
32
+ return `T#${tenant.id}#SYSTEM`;
33
+ }
34
+
35
+ constructor({
36
+ context
37
+ }) {
38
+ (0, _defineProperty2.default)(this, "_context", void 0);
39
+ (0, _defineProperty2.default)(this, "_entity", void 0);
40
+ this._context = context;
41
+ const table = (0, _table.default)({
42
+ context
43
+ });
44
+ this._entity = (0, _systemEntity.default)({
45
+ context,
46
+ table
47
+ });
48
+ }
49
+
50
+ async get() {
51
+ try {
52
+ const system = await this._entity.get({
53
+ PK: this.partitionKey,
54
+ SK: SORT_KEY
55
+ });
56
+
57
+ if (!system || !system.Item) {
58
+ return null;
59
+ }
60
+
61
+ return system.Item;
62
+ } catch (ex) {
63
+ throw new _error.default(ex.message || "Could not fetch the FileManager system.", ex.code || "GET_SYSTEM_ERROR");
64
+ }
65
+ }
66
+
67
+ async create(params) {
68
+ const {
69
+ data
70
+ } = params;
71
+
72
+ try {
73
+ await this._entity.put(_objectSpread({
74
+ PK: this.partitionKey,
75
+ SK: SORT_KEY
76
+ }, data));
77
+ } catch (ex) {
78
+ throw new _error.default("Could not insert new system data into DynamoDB", "CREATE_SYSTEM_ERROR", {
79
+ data
80
+ });
81
+ }
82
+
83
+ return data;
84
+ }
85
+
86
+ async update(params) {
87
+ const {
88
+ original,
89
+ data
90
+ } = params;
91
+
92
+ try {
93
+ await this._entity.update(_objectSpread({
94
+ PK: this.partitionKey,
95
+ SK: SORT_KEY
96
+ }, data));
97
+ } catch (ex) {
98
+ throw new _error.default("Could not update system data in the DynamoDB.", "UPDATE_SYSTEM_ERROR", {
99
+ data
100
+ });
101
+ }
102
+
103
+ return _objectSpread(_objectSpread({}, original), data);
104
+ }
105
+
106
+ }
107
+
108
+ exports.SystemStorageOperations = SystemStorageOperations;
@@ -0,0 +1,8 @@
1
+ import { SystemStorageOperations } from "./SystemStorageOperations";
2
+ import { SystemStorageOperationsProviderPlugin } from "@webiny/api-file-manager/plugins/definitions/SystemStorageOperationsProviderPlugin";
3
+ export declare class SystemStorageOperationsProviderDdbPlugin extends SystemStorageOperationsProviderPlugin {
4
+ name: string;
5
+ provide({ context }: {
6
+ context: any;
7
+ }): Promise<SystemStorageOperations>;
8
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SystemStorageOperationsProviderDdbPlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _SystemStorageOperations = require("./SystemStorageOperations");
13
+
14
+ var _SystemStorageOperationsProviderPlugin = require("@webiny/api-file-manager/plugins/definitions/SystemStorageOperationsProviderPlugin");
15
+
16
+ class SystemStorageOperationsProviderDdbPlugin extends _SystemStorageOperationsProviderPlugin.SystemStorageOperationsProviderPlugin {
17
+ constructor(...args) {
18
+ super(...args);
19
+ (0, _defineProperty2.default)(this, "name", "fm.storageOperationsProvider.system.ddb");
20
+ }
21
+
22
+ async provide({
23
+ context
24
+ }) {
25
+ return new _SystemStorageOperations.SystemStorageOperations({
26
+ context
27
+ });
28
+ }
29
+
30
+ }
31
+
32
+ exports.SystemStorageOperationsProviderDdbPlugin = SystemStorageOperationsProviderDdbPlugin;
@@ -0,0 +1,4 @@
1
+ import { FileManagerContext } from "@webiny/api-file-manager/types";
2
+ import { DocumentClient } from "aws-sdk/clients/dynamodb";
3
+ export declare const getDocumentClient: (context: FileManagerContext) => DocumentClient;
4
+ export declare const getTable: (context: FileManagerContext) => string;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getTable = exports.getDocumentClient = void 0;
9
+
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
11
+
12
+ const getDocumentClient = context => {
13
+ const driver = context.db.driver;
14
+
15
+ if (!driver || !driver.documentClient) {
16
+ throw new _error.default(`Missing documentDriver on the context db.driver property.`, "DOCUMENT_CLIENT_ERROR");
17
+ }
18
+
19
+ return driver.documentClient;
20
+ };
21
+
22
+ exports.getDocumentClient = getDocumentClient;
23
+
24
+ const getTable = context => {
25
+ const db = context.db;
26
+
27
+ if (!db) {
28
+ throw new _error.default("Missing db on context.", "DB_ERROR");
29
+ } else if (!db.table) {
30
+ throw new _error.default("Missing table on context.db.", "TABLE_ERROR");
31
+ }
32
+
33
+ return db.table;
34
+ };
35
+
36
+ exports.getTable = getTable;
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@webiny/api-file-manager-ddb",
3
+ "version": "0.0.0-mt-1",
4
+ "main": "index.js",
5
+ "keywords": [
6
+ "@webiny/api-file-manager",
7
+ "storage-operations",
8
+ "dynamodb",
9
+ "fm:ddb"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/webiny/webiny-js.git",
14
+ "directory": "packages/api-file-manager-ddb"
15
+ },
16
+ "description": "The DynamoDB storage operations for File Manager API.",
17
+ "contributors": [
18
+ "Pavel Denisjuk <pavel@webiny.com>",
19
+ "Sven Al Hamad <sven@webiny.com>",
20
+ "Adrian Smijulj <adrian@webiny.com>"
21
+ ],
22
+ "license": "MIT",
23
+ "dependencies": {
24
+ "@babel/runtime": "7.15.4",
25
+ "@webiny/api-file-manager": "0.0.0-mt-1",
26
+ "@webiny/db-dynamodb": "0.0.0-mt-1",
27
+ "@webiny/error": "0.0.0-mt-1",
28
+ "@webiny/project-utils": "0.0.0-mt-1",
29
+ "aws-sdk": "2.1026.0",
30
+ "dynamodb-toolbox": "0.3.4"
31
+ },
32
+ "devDependencies": {
33
+ "@babel/cli": "^7.5.5",
34
+ "@babel/core": "^7.5.5",
35
+ "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
36
+ "@babel/plugin-transform-runtime": "^7.5.5",
37
+ "@babel/preset-env": "^7.5.5",
38
+ "@babel/preset-typescript": "^7.0.0",
39
+ "@webiny/cli": "^0.0.0-mt-1",
40
+ "jest": "^26.6.3",
41
+ "jest-dynalite": "^3.2.0",
42
+ "jsonpack": "^1.1.5",
43
+ "rimraf": "^3.0.2",
44
+ "ttypescript": "^1.5.12",
45
+ "typescript": "^4.1.3"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public",
49
+ "directory": "dist"
50
+ },
51
+ "scripts": {
52
+ "watch": "yarn webiny run watch",
53
+ "build": "yarn webiny run build"
54
+ },
55
+ "adio": {
56
+ "ignoreDirs": [
57
+ "__tests__"
58
+ ],
59
+ "ignore": {
60
+ "src": [
61
+ "aws-sdk",
62
+ "sharp"
63
+ ]
64
+ }
65
+ },
66
+ "gitHead": "37736d8456a6ecb342a6c3645060bd9a3f2d4bb0"
67
+ }
@@ -0,0 +1,4 @@
1
+ import { AttributePlugin, Params } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
+ export declare class FileAttributePlugin extends AttributePlugin {
3
+ constructor(params: Omit<Params, "entity">);
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FileAttributePlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _AttributePlugin = require("@webiny/db-dynamodb/plugins/definitions/AttributePlugin");
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
+
18
+ class FileAttributePlugin extends _AttributePlugin.AttributePlugin {
19
+ constructor(params) {
20
+ super(_objectSpread(_objectSpread({}, params), {}, {
21
+ entity: "Files"
22
+ }));
23
+ }
24
+
25
+ }
26
+
27
+ exports.FileAttributePlugin = FileAttributePlugin;
@@ -0,0 +1,4 @@
1
+ import { FieldPlugin } from "@webiny/db-dynamodb/plugins/definitions/FieldPlugin";
2
+ export declare class FileDynamoDbFieldPlugin extends FieldPlugin {
3
+ static readonly type: string;
4
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FileDynamoDbFieldPlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _FieldPlugin = require("@webiny/db-dynamodb/plugins/definitions/FieldPlugin");
13
+
14
+ class FileDynamoDbFieldPlugin extends _FieldPlugin.FieldPlugin {}
15
+
16
+ exports.FileDynamoDbFieldPlugin = FileDynamoDbFieldPlugin;
17
+ (0, _defineProperty2.default)(FileDynamoDbFieldPlugin, "type", "fileManager.dynamodb.field.file");
@@ -0,0 +1,4 @@
1
+ import { AttributePlugin, Params } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
+ export declare class SettingsAttributePlugin extends AttributePlugin {
3
+ constructor(params: Omit<Params, "entity">);
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SettingsAttributePlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _AttributePlugin = require("@webiny/db-dynamodb/plugins/definitions/AttributePlugin");
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
+
18
+ class SettingsAttributePlugin extends _AttributePlugin.AttributePlugin {
19
+ constructor(params) {
20
+ super(_objectSpread(_objectSpread({}, params), {}, {
21
+ entity: "Settings"
22
+ }));
23
+ }
24
+
25
+ }
26
+
27
+ exports.SettingsAttributePlugin = SettingsAttributePlugin;
@@ -0,0 +1,4 @@
1
+ import { AttributePlugin, Params } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
+ export declare class SystemAttributePlugin extends AttributePlugin {
3
+ constructor(params: Omit<Params, "entity">);
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SystemAttributePlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _AttributePlugin = require("@webiny/db-dynamodb/plugins/definitions/AttributePlugin");
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
+
18
+ class SystemAttributePlugin extends _AttributePlugin.AttributePlugin {
19
+ constructor(params) {
20
+ super(_objectSpread(_objectSpread({}, params), {}, {
21
+ entity: "System"
22
+ }));
23
+ }
24
+
25
+ }
26
+
27
+ exports.SystemAttributePlugin = SystemAttributePlugin;
package/types.d.ts ADDED
File without changes
package/types.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";