@webiny/api-file-manager-ddb 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.9bd236cf5e

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/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { DocumentClient } from "aws-sdk/clients/dynamodb";
2
- import { PluginCollection } from "@webiny/plugins/types";
3
- import { FileManagerStorageOperations } from "@webiny/api-file-manager/types";
1
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
+ import type { PluginCollection } from "@webiny/plugins/types";
3
+ import type { FileManagerStorageOperations } from "@webiny/api-file-manager/types";
4
4
  export interface StorageOperationsConfig {
5
- documentClient: DocumentClient;
5
+ documentClient: DynamoDBDocument;
6
6
  plugins?: PluginCollection;
7
7
  }
8
8
  export * from "./plugins";
package/index.js CHANGED
@@ -26,6 +26,7 @@ Object.keys(_plugins3).forEach(function (key) {
26
26
  });
27
27
  });
28
28
  var _AliasesStorageOperations = require("./operations/AliasesStorageOperations");
29
+ var _api = require("@webiny/api");
29
30
  const createFileManagerStorageOperations = ({
30
31
  documentClient,
31
32
  plugins: userPlugins
@@ -35,7 +36,7 @@ const createFileManagerStorageOperations = ({
35
36
  ...(userPlugins || [])]);
36
37
  return {
37
38
  beforeInit: async context => {
38
- const types = [_plugins3.SettingsAttributePlugin.type, _plugins3.SystemAttributePlugin.type];
39
+ const types = [_plugins3.SettingsAttributePlugin.type, _plugins3.SystemAttributePlugin.type, _api.CompressorPlugin.type];
39
40
  for (const type of types) {
40
41
  plugins.mergeByType(context.plugins, type);
41
42
  }
@@ -52,4 +53,6 @@ const createFileManagerStorageOperations = ({
52
53
  })
53
54
  };
54
55
  };
55
- exports.createFileManagerStorageOperations = createFileManagerStorageOperations;
56
+ exports.createFileManagerStorageOperations = createFileManagerStorageOperations;
57
+
58
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createFileManagerStorageOperations","documentClient","plugins","userPlugins","PluginsContainer","ddbPlugins","beforeInit","context","types","SettingsAttributePlugin","type","SystemAttributePlugin","mergeByType","files","FilesStorageOperations","aliases","AliasesStorageOperations","settings","SettingsStorageOperations","system","SystemStorageOperations"],"sources":["index.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport ddbPlugins from \"@webiny/db-dynamodb/plugins\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport { FileManagerStorageOperations } from \"@webiny/api-file-manager/types\";\nimport { FilesStorageOperations } from \"~/operations/FilesStorageOperations\";\nimport { SettingsStorageOperations } from \"~/operations/SettingsStorageOperations\";\nimport { SystemStorageOperations } from \"~/operations/SystemStorageOperations\";\nimport { SettingsAttributePlugin, SystemAttributePlugin } from \"./plugins\";\nimport { AliasesStorageOperations } from \"~/operations/AliasesStorageOperations\";\n\nexport interface StorageOperationsConfig {\n documentClient: DocumentClient;\n plugins?: PluginCollection;\n}\n\nexport * from \"./plugins\";\n\nexport const createFileManagerStorageOperations = ({\n documentClient,\n plugins: userPlugins\n}: StorageOperationsConfig): FileManagerStorageOperations => {\n const plugins = new PluginsContainer([\n ddbPlugins(),\n // User plugins\n ...(userPlugins || [])\n ]);\n\n return {\n beforeInit: async context => {\n const types: string[] = [SettingsAttributePlugin.type, SystemAttributePlugin.type];\n for (const type of types) {\n plugins.mergeByType(context.plugins, type);\n }\n },\n files: new FilesStorageOperations(),\n aliases: new AliasesStorageOperations({ documentClient }),\n settings: new SettingsStorageOperations({ documentClient }),\n system: new SystemStorageOperations({ documentClient })\n };\n};\n"],"mappings":";;;;;;;;;;AACA;AACA;AAGA;AACA;AACA;AACA;AAQA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAPA;AASO,MAAMA,kCAAkC,GAAG,CAAC;EAC/CC,cAAc;EACdC,OAAO,EAAEC;AACY,CAAC,KAAmC;EACzD,MAAMD,OAAO,GAAG,IAAIE,0BAAgB,CAAC,CACjC,IAAAC,gBAAU,GAAE;EACZ;EACA,IAAIF,WAAW,IAAI,EAAE,CAAC,CACzB,CAAC;EAEF,OAAO;IACHG,UAAU,EAAE,MAAMC,OAAO,IAAI;MACzB,MAAMC,KAAe,GAAG,CAACC,iCAAuB,CAACC,IAAI,EAAEC,+BAAqB,CAACD,IAAI,CAAC;MAClF,KAAK,MAAMA,IAAI,IAAIF,KAAK,EAAE;QACtBN,OAAO,CAACU,WAAW,CAACL,OAAO,CAACL,OAAO,EAAEQ,IAAI,CAAC;MAC9C;IACJ,CAAC;IACDG,KAAK,EAAE,IAAIC,8CAAsB,EAAE;IACnCC,OAAO,EAAE,IAAIC,kDAAwB,CAAC;MAAEf;IAAe,CAAC,CAAC;IACzDgB,QAAQ,EAAE,IAAIC,oDAAyB,CAAC;MAAEjB;IAAe,CAAC,CAAC;IAC3DkB,MAAM,EAAE,IAAIC,gDAAuB,CAAC;MAAEnB;IAAe,CAAC;EAC1D,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_plugins","_interopRequireDefault","require","_plugins2","_FilesStorageOperations","_SettingsStorageOperations","_SystemStorageOperations","_plugins3","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_AliasesStorageOperations","_api","createFileManagerStorageOperations","documentClient","plugins","userPlugins","PluginsContainer","ddbPlugins","beforeInit","context","types","SettingsAttributePlugin","type","SystemAttributePlugin","CompressorPlugin","mergeByType","files","FilesStorageOperations","aliases","AliasesStorageOperations","settings","SettingsStorageOperations","system","SystemStorageOperations"],"sources":["index.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport ddbPlugins from \"@webiny/db-dynamodb/plugins\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport type { PluginCollection } from \"@webiny/plugins/types\";\nimport type { FileManagerStorageOperations } from \"@webiny/api-file-manager/types\";\nimport { FilesStorageOperations } from \"~/operations/FilesStorageOperations\";\nimport { SettingsStorageOperations } from \"~/operations/SettingsStorageOperations\";\nimport { SystemStorageOperations } from \"~/operations/SystemStorageOperations\";\nimport { SettingsAttributePlugin, SystemAttributePlugin } from \"./plugins\";\nimport { AliasesStorageOperations } from \"~/operations/AliasesStorageOperations\";\nimport { CompressorPlugin } from \"@webiny/api\";\n\nexport interface StorageOperationsConfig {\n documentClient: DynamoDBDocument;\n plugins?: PluginCollection;\n}\n\nexport * from \"./plugins\";\n\nexport const createFileManagerStorageOperations = ({\n documentClient,\n plugins: userPlugins\n}: StorageOperationsConfig): FileManagerStorageOperations => {\n const plugins = new PluginsContainer([\n ddbPlugins(),\n // User plugins\n ...(userPlugins || [])\n ]);\n\n return {\n beforeInit: async context => {\n const types: string[] = [\n SettingsAttributePlugin.type,\n SystemAttributePlugin.type,\n CompressorPlugin.type\n ];\n for (const type of types) {\n plugins.mergeByType(context.plugins, type);\n }\n },\n files: new FilesStorageOperations(),\n aliases: new AliasesStorageOperations({ documentClient }),\n settings: new SettingsStorageOperations({ documentClient }),\n system: new SystemStorageOperations({ documentClient })\n };\n};\n"],"mappings":";;;;;;;;;;AACA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAGA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AASAM,MAAA,CAAAC,IAAA,CAAAF,SAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,SAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,SAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AARA,IAAAS,yBAAA,GAAAlB,OAAA;AACA,IAAAmB,IAAA,GAAAnB,OAAA;AASO,MAAMoB,kCAAkC,GAAGA,CAAC;EAC/CC,cAAc;EACdC,OAAO,EAAEC;AACY,CAAC,KAAmC;EACzD,MAAMD,OAAO,GAAG,IAAIE,0BAAgB,CAAC,CACjC,IAAAC,gBAAU,EAAC,CAAC;EACZ;EACA,IAAIF,WAAW,IAAI,EAAE,CAAC,CACzB,CAAC;EAEF,OAAO;IACHG,UAAU,EAAE,MAAMC,OAAO,IAAI;MACzB,MAAMC,KAAe,GAAG,CACpBC,iCAAuB,CAACC,IAAI,EAC5BC,+BAAqB,CAACD,IAAI,EAC1BE,qBAAgB,CAACF,IAAI,CACxB;MACD,KAAK,MAAMA,IAAI,IAAIF,KAAK,EAAE;QACtBN,OAAO,CAACW,WAAW,CAACN,OAAO,CAACL,OAAO,EAAEQ,IAAI,CAAC;MAC9C;IACJ,CAAC;IACDI,KAAK,EAAE,IAAIC,8CAAsB,CAAC,CAAC;IACnCC,OAAO,EAAE,IAAIC,kDAAwB,CAAC;MAAEhB;IAAe,CAAC,CAAC;IACzDiB,QAAQ,EAAE,IAAIC,oDAAyB,CAAC;MAAElB;IAAe,CAAC,CAAC;IAC3DmB,MAAM,EAAE,IAAIC,gDAAuB,CAAC;MAAEpB;IAAe,CAAC;EAC1D,CAAC;AACL,CAAC;AAACP,OAAA,CAAAM,kCAAA,GAAAA,kCAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { DocumentClient } from "aws-sdk/clients/dynamodb";
2
- import { FileManagerAliasesStorageOperations, File } from "@webiny/api-file-manager/types";
1
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
+ import type { File, FileManagerAliasesStorageOperations } from "@webiny/api-file-manager/types";
3
3
  interface AliasesStorageOperationsConfig {
4
- documentClient: DocumentClient;
4
+ documentClient: DynamoDBDocument;
5
5
  }
6
6
  export declare class AliasesStorageOperations implements FileManagerAliasesStorageOperations {
7
7
  private readonly aliasEntity;
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.AliasesStorageOperations = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
7
  var _dbDynamodb = require("@webiny/db-dynamodb");
10
8
  class AliasesStorageOperations {
11
9
  constructor({
12
10
  documentClient
13
11
  }) {
14
- (0, _defineProperty2.default)(this, "aliasEntity", void 0);
15
- (0, _defineProperty2.default)(this, "table", void 0);
16
12
  this.table = (0, _dbDynamodb.createTable)({
17
13
  documentClient
18
14
  });
@@ -23,43 +19,41 @@ class AliasesStorageOperations {
23
19
  }
24
20
  async deleteAliases(file) {
25
21
  const aliasItems = await this.getExistingAliases(file);
26
- const items = [];
27
- aliasItems.forEach(item => {
28
- items.push(this.aliasEntity.deleteBatch({
29
- PK: this.createPartitionKey({
30
- id: item.fileId,
31
- tenant: item.tenant,
32
- locale: item.locale
33
- }),
34
- SK: `ALIAS#${item.alias}`
35
- }));
36
- });
37
- await (0, _dbDynamodb.batchWriteAll)({
38
- table: this.table,
39
- items
22
+ const batchWrite = (0, _dbDynamodb.createEntityWriteBatch)({
23
+ entity: this.aliasEntity,
24
+ delete: aliasItems.map(item => {
25
+ return {
26
+ PK: this.createPartitionKey({
27
+ id: item.fileId,
28
+ tenant: item.tenant,
29
+ locale: item.locale
30
+ }),
31
+ SK: `ALIAS#${item.alias}`
32
+ };
33
+ })
40
34
  });
35
+ await batchWrite.execute();
41
36
  }
42
37
  async storeAliases(file) {
43
- const items = [];
44
38
  const existingAliases = await this.getExistingAliases(file);
45
39
  const newAliases = this.createNewAliasesRecords(file, existingAliases);
46
- newAliases.forEach(alias => {
47
- items.push(this.aliasEntity.putBatch(alias));
40
+ const batchWrite = (0, _dbDynamodb.createEntityWriteBatch)({
41
+ entity: this.aliasEntity
48
42
  });
43
+ for (const alias of newAliases) {
44
+ batchWrite.put(alias);
45
+ }
49
46
 
50
47
  // Delete aliases that are in the DB but are NOT in the file.
51
48
  for (const data of existingAliases) {
52
49
  if (!file.aliases.some(alias => data.alias === alias)) {
53
- items.push(this.aliasEntity.deleteBatch({
50
+ batchWrite.delete({
54
51
  PK: this.createPartitionKey(file),
55
52
  SK: `ALIAS#${data.alias}`
56
- }));
53
+ });
57
54
  }
58
55
  }
59
- await (0, _dbDynamodb.batchWriteAll)({
60
- table: this.table,
61
- items
62
- });
56
+ await batchWrite.execute();
63
57
  }
64
58
  async getExistingAliases(file) {
65
59
  const aliases = await (0, _dbDynamodb.queryAll)({
@@ -104,4 +98,6 @@ class AliasesStorageOperations {
104
98
  }).filter(Boolean);
105
99
  }
106
100
  }
107
- exports.AliasesStorageOperations = AliasesStorageOperations;
101
+ exports.AliasesStorageOperations = AliasesStorageOperations;
102
+
103
+ //# sourceMappingURL=AliasesStorageOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AliasesStorageOperations","constructor","documentClient","table","createTable","aliasEntity","createStandardEntity","name","deleteAliases","file","aliasItems","getExistingAliases","items","forEach","item","push","deleteBatch","PK","createPartitionKey","id","fileId","tenant","locale","SK","alias","batchWriteAll","storeAliases","existingAliases","newAliases","createNewAliasesRecords","putBatch","data","aliases","some","queryAll","entity","partitionKey","options","beginsWith","map","params","find","GSI1_PK","GSI1_SK","TYPE","key","filter","Boolean"],"sources":["AliasesStorageOperations.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Entity, Table } from \"dynamodb-toolbox\";\nimport {\n FileManagerAliasesStorageOperations,\n File,\n FileAlias\n} from \"@webiny/api-file-manager/types\";\nimport {\n BatchWriteItem,\n batchWriteAll,\n createStandardEntity,\n createTable,\n DbItem,\n queryAll\n} from \"@webiny/db-dynamodb\";\n\ninterface AliasesStorageOperationsConfig {\n documentClient: DocumentClient;\n}\n\ninterface CreatePartitionKeyParams {\n locale: string;\n tenant: string;\n id: string;\n}\n\nexport class AliasesStorageOperations implements FileManagerAliasesStorageOperations {\n private readonly aliasEntity: Entity<any>;\n private readonly table: Table;\n\n constructor({ documentClient }: AliasesStorageOperationsConfig) {\n this.table = createTable({ documentClient });\n\n this.aliasEntity = createStandardEntity({\n table: this.table,\n name: \"FM.FileAlias\"\n });\n }\n\n async deleteAliases(file: File): Promise<void> {\n const aliasItems = await this.getExistingAliases(file);\n const items: BatchWriteItem[] = [];\n\n aliasItems.forEach(item => {\n items.push(\n this.aliasEntity.deleteBatch({\n PK: this.createPartitionKey({\n id: item.fileId,\n tenant: item.tenant,\n locale: item.locale\n }),\n SK: `ALIAS#${item.alias}`\n })\n );\n });\n\n await batchWriteAll({ table: this.table, items });\n }\n\n async storeAliases(file: File): Promise<void> {\n const items: BatchWriteItem[] = [];\n const existingAliases = await this.getExistingAliases(file);\n const newAliases = this.createNewAliasesRecords(file, existingAliases);\n\n newAliases.forEach(alias => {\n items.push(this.aliasEntity.putBatch(alias));\n });\n\n // Delete aliases that are in the DB but are NOT in the file.\n for (const data of existingAliases) {\n if (!file.aliases.some(alias => data.alias === alias)) {\n items.push(\n this.aliasEntity.deleteBatch({\n PK: this.createPartitionKey(file),\n SK: `ALIAS#${data.alias}`\n })\n );\n }\n }\n\n await batchWriteAll({\n table: this.table,\n items\n });\n }\n\n private async getExistingAliases(file: File) {\n const aliases = await queryAll<{ data: FileAlias }>({\n entity: this.aliasEntity,\n partitionKey: this.createPartitionKey(file),\n options: {\n beginsWith: \"ALIAS#\"\n }\n });\n\n return aliases.map(alias => alias.data);\n }\n\n private createPartitionKey(params: CreatePartitionKeyParams): string {\n const { tenant, locale, id } = params;\n return `T#${tenant}#L#${locale}#FM#F${id}`;\n }\n\n private createNewAliasesRecords(\n file: File,\n existingAliases: FileAlias[] = []\n ): DbItem<FileAlias>[] {\n return (file.aliases || [])\n .map(alias => {\n // If alias is already in the DB, skip it.\n if (existingAliases.find(item => item.alias === alias)) {\n return null;\n }\n\n // Add a new alias.\n return {\n PK: this.createPartitionKey(file),\n SK: `ALIAS#${alias}`,\n GSI1_PK: `T#${file.tenant}#FM#FILE_ALIASES`,\n GSI1_SK: alias,\n TYPE: \"fm.fileAlias\",\n data: {\n alias,\n tenant: file.tenant,\n locale: file.locale,\n fileId: file.id,\n key: file.key\n }\n };\n })\n .filter(Boolean) as DbItem<FileAlias>[];\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dbDynamodb","require","AliasesStorageOperations","constructor","documentClient","table","createTable","aliasEntity","createStandardEntity","name","deleteAliases","file","aliasItems","getExistingAliases","batchWrite","createEntityWriteBatch","entity","delete","map","item","PK","createPartitionKey","id","fileId","tenant","locale","SK","alias","execute","storeAliases","existingAliases","newAliases","createNewAliasesRecords","put","data","aliases","some","queryAll","partitionKey","options","beginsWith","params","find","GSI1_PK","GSI1_SK","TYPE","key","filter","Boolean","exports"],"sources":["AliasesStorageOperations.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport type { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport type {\n File,\n FileAlias,\n FileManagerAliasesStorageOperations\n} from \"@webiny/api-file-manager/types\";\nimport type { DbItem } from \"@webiny/db-dynamodb\";\nimport {\n createEntityWriteBatch,\n createStandardEntity,\n createTable,\n queryAll\n} from \"@webiny/db-dynamodb\";\n\ninterface AliasesStorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\ninterface CreatePartitionKeyParams {\n locale: string;\n tenant: string;\n id: string;\n}\n\nexport class AliasesStorageOperations implements FileManagerAliasesStorageOperations {\n private readonly aliasEntity: Entity<any>;\n private readonly table: Table<string, string, string>;\n\n constructor({ documentClient }: AliasesStorageOperationsConfig) {\n this.table = createTable({ documentClient });\n\n this.aliasEntity = createStandardEntity({\n table: this.table,\n name: \"FM.FileAlias\"\n });\n }\n\n async deleteAliases(file: File): Promise<void> {\n const aliasItems = await this.getExistingAliases(file);\n\n const batchWrite = createEntityWriteBatch({\n entity: this.aliasEntity,\n delete: aliasItems.map(item => {\n return {\n PK: this.createPartitionKey({\n id: item.fileId,\n tenant: item.tenant,\n locale: item.locale\n }),\n SK: `ALIAS#${item.alias}`\n };\n })\n });\n\n await batchWrite.execute();\n }\n\n async storeAliases(file: File): Promise<void> {\n const existingAliases = await this.getExistingAliases(file);\n const newAliases = this.createNewAliasesRecords(file, existingAliases);\n\n const batchWrite = createEntityWriteBatch({\n entity: this.aliasEntity\n });\n for (const alias of newAliases) {\n batchWrite.put(alias);\n }\n\n // Delete aliases that are in the DB but are NOT in the file.\n for (const data of existingAliases) {\n if (!file.aliases.some(alias => data.alias === alias)) {\n batchWrite.delete({\n PK: this.createPartitionKey(file),\n SK: `ALIAS#${data.alias}`\n });\n }\n }\n\n await batchWrite.execute();\n }\n\n private async getExistingAliases(file: File): Promise<FileAlias[]> {\n const aliases = await queryAll<{ data: FileAlias }>({\n entity: this.aliasEntity,\n partitionKey: this.createPartitionKey(file),\n options: {\n beginsWith: \"ALIAS#\"\n }\n });\n\n return aliases.map(alias => alias.data);\n }\n\n private createPartitionKey(params: CreatePartitionKeyParams): string {\n const { tenant, locale, id } = params;\n return `T#${tenant}#L#${locale}#FM#F${id}`;\n }\n\n private createNewAliasesRecords(\n file: File,\n existingAliases: FileAlias[] = []\n ): DbItem<FileAlias>[] {\n return (file.aliases || [])\n .map(alias => {\n // If alias is already in the DB, skip it.\n if (existingAliases.find(item => item.alias === alias)) {\n return null;\n }\n\n // Add a new alias.\n return {\n PK: this.createPartitionKey(file),\n SK: `ALIAS#${alias}`,\n GSI1_PK: `T#${file.tenant}#FM#FILE_ALIASES`,\n GSI1_SK: alias,\n TYPE: \"fm.fileAlias\",\n data: {\n alias,\n tenant: file.tenant,\n locale: file.locale,\n fileId: file.id,\n key: file.key\n }\n };\n })\n .filter(Boolean) as DbItem<FileAlias>[];\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { File, FileManagerFilesStorageOperations, FileManagerFilesStorageOperationsListResponse, FileManagerFilesStorageOperationsTagsResponse } from "@webiny/api-file-manager/types";
1
+ import type { File, FileManagerFilesStorageOperations, FileManagerFilesStorageOperationsListResponse, FileManagerFilesStorageOperationsTagsResponse } from "@webiny/api-file-manager/types";
2
2
  /**
3
3
  * This class is here to satisfy TS interface, but it will always be overridden by CMS storage operations
4
4
  * within the `api-file-manager` package itself. This will remain here until we find a better approach to organizing
@@ -32,4 +32,6 @@ class FilesStorageOperations {
32
32
  throw new Error("api-file-manager-ddb does not implement the Files storage operations.");
33
33
  }
34
34
  }
35
- exports.FilesStorageOperations = FilesStorageOperations;
35
+ exports.FilesStorageOperations = FilesStorageOperations;
36
+
37
+ //# sourceMappingURL=FilesStorageOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FilesStorageOperations","create","Error","createBatch","delete","get","list","tags","update"],"sources":["FilesStorageOperations.ts"],"sourcesContent":["import {\n File,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsResponse\n} from \"@webiny/api-file-manager/types\";\n\n/**\n * This class is here to satisfy TS interface, but it will always be overridden by CMS storage operations\n * within the `api-file-manager` package itself. This will remain here until we find a better approach to organizing\n * storage operations, and connecting app logic to CMS.\n */\nexport class FilesStorageOperations implements FileManagerFilesStorageOperations {\n create(): Promise<File> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n createBatch(): Promise<File[]> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n delete(): Promise<void> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n get(): Promise<File | null> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n list(): Promise<FileManagerFilesStorageOperationsListResponse> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n tags(): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n update(): Promise<File> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n}\n"],"mappings":";;;;;;AAOA;AACA;AACA;AACA;AACA;AACO,MAAMA,sBAAsB,CAA8C;EAC7EC,MAAM,GAAkB;IACpB,MAAM,IAAIC,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAC,WAAW,GAAoB;IAC3B,MAAM,IAAID,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAE,MAAM,GAAkB;IACpB,MAAM,IAAIF,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAG,GAAG,GAAyB;IACxB,MAAM,IAAIH,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAI,IAAI,GAA2D;IAC3D,MAAM,IAAIJ,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAK,IAAI,GAA6D;IAC7D,MAAM,IAAIL,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAM,MAAM,GAAkB;IACpB,MAAM,IAAIN,KAAK,CAAC,uEAAuE,CAAC;EAC5F;AACJ;AAAC"}
1
+ {"version":3,"names":["FilesStorageOperations","create","Error","createBatch","delete","get","list","tags","update","exports"],"sources":["FilesStorageOperations.ts"],"sourcesContent":["import type {\n File,\n FileManagerFilesStorageOperations,\n FileManagerFilesStorageOperationsListResponse,\n FileManagerFilesStorageOperationsTagsResponse\n} from \"@webiny/api-file-manager/types\";\n\n/**\n * This class is here to satisfy TS interface, but it will always be overridden by CMS storage operations\n * within the `api-file-manager` package itself. This will remain here until we find a better approach to organizing\n * storage operations, and connecting app logic to CMS.\n */\nexport class FilesStorageOperations implements FileManagerFilesStorageOperations {\n create(): Promise<File> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n createBatch(): Promise<File[]> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n delete(): Promise<void> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n get(): Promise<File | null> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n list(): Promise<FileManagerFilesStorageOperationsListResponse> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n tags(): Promise<FileManagerFilesStorageOperationsTagsResponse[]> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n\n update(): Promise<File> {\n throw new Error(\"api-file-manager-ddb does not implement the Files storage operations.\");\n }\n}\n"],"mappings":";;;;;;AAOA;AACA;AACA;AACA;AACA;AACO,MAAMA,sBAAsB,CAA8C;EAC7EC,MAAMA,CAAA,EAAkB;IACpB,MAAM,IAAIC,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAC,WAAWA,CAAA,EAAoB;IAC3B,MAAM,IAAID,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAE,MAAMA,CAAA,EAAkB;IACpB,MAAM,IAAIF,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAG,GAAGA,CAAA,EAAyB;IACxB,MAAM,IAAIH,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAI,IAAIA,CAAA,EAA2D;IAC3D,MAAM,IAAIJ,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAK,IAAIA,CAAA,EAA6D;IAC7D,MAAM,IAAIL,KAAK,CAAC,uEAAuE,CAAC;EAC5F;EAEAM,MAAMA,CAAA,EAAkB;IACpB,MAAM,IAAIN,KAAK,CAAC,uEAAuE,CAAC;EAC5F;AACJ;AAACO,OAAA,CAAAT,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { DocumentClient } from "aws-sdk/clients/dynamodb";
2
- import { FileManagerSettings, FileManagerSettingsStorageOperations, FileManagerSettingsStorageOperationsCreateParams, FileManagerSettingsStorageOperationsUpdateParams, FileManagerStorageOperationsDeleteSettings, FileManagerStorageOperationsGetSettingsParams } from "@webiny/api-file-manager/types";
1
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
+ import type { FileManagerSettings, FileManagerSettingsStorageOperations, FileManagerSettingsStorageOperationsCreateParams, FileManagerSettingsStorageOperationsUpdateParams, FileManagerStorageOperationsDeleteSettings, FileManagerStorageOperationsGetSettingsParams } from "@webiny/api-file-manager/types";
3
3
  interface SettingsStorageOperationsConfig {
4
- documentClient: DocumentClient;
4
+ documentClient: DynamoDBDocument;
5
5
  }
6
6
  export declare class SettingsStorageOperations implements FileManagerSettingsStorageOperations {
7
7
  private readonly _entity;
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.SettingsStorageOperations = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _error = _interopRequireDefault(require("@webiny/error"));
10
9
  var _dbDynamodb = require("@webiny/db-dynamodb");
11
10
  const SORT_KEY = "A";
@@ -13,7 +12,6 @@ class SettingsStorageOperations {
13
12
  constructor({
14
13
  documentClient
15
14
  }) {
16
- (0, _defineProperty2.default)(this, "_entity", void 0);
17
15
  this._entity = (0, _dbDynamodb.createStandardEntity)({
18
16
  table: (0, _dbDynamodb.createTable)({
19
17
  documentClient
@@ -32,7 +30,7 @@ class SettingsStorageOperations {
32
30
  SK: SORT_KEY
33
31
  }
34
32
  });
35
- return settings ? settings.data : null;
33
+ return settings?.data || null;
36
34
  } catch (ex) {
37
35
  throw new _error.default(ex.message || "Could not fetch the FileManager settings.", ex.code || "GET_SETTINGS_ERROR");
38
36
  }
@@ -50,11 +48,14 @@ class SettingsStorageOperations {
50
48
  });
51
49
  }
52
50
  try {
53
- await this._entity.put({
54
- PK: `T#${data.tenant}#FM#SETTINGS`,
55
- SK: SORT_KEY,
56
- TYPE: "fm.settings",
57
- data
51
+ await (0, _dbDynamodb.put)({
52
+ entity: this._entity,
53
+ item: {
54
+ PK: `T#${data.tenant}#FM#SETTINGS`,
55
+ SK: SORT_KEY,
56
+ TYPE: "fm.settings",
57
+ data
58
+ }
58
59
  });
59
60
  return data;
60
61
  } catch (ex) {
@@ -67,11 +68,14 @@ class SettingsStorageOperations {
67
68
  data
68
69
  }) {
69
70
  try {
70
- await this._entity.update({
71
- PK: `T#${data.tenant}#FM#SETTINGS`,
72
- SK: SORT_KEY,
73
- TYPE: "fm.settings",
74
- data
71
+ await (0, _dbDynamodb.put)({
72
+ entity: this._entity,
73
+ item: {
74
+ PK: `T#${data.tenant}#FM#SETTINGS`,
75
+ SK: SORT_KEY,
76
+ TYPE: "fm.settings",
77
+ data
78
+ }
75
79
  });
76
80
  return data;
77
81
  } catch (ex) {
@@ -83,10 +87,15 @@ class SettingsStorageOperations {
83
87
  async delete({
84
88
  tenant
85
89
  }) {
86
- return this._entity.delete({
87
- PK: `T#${tenant}#FM#SETTINGS`,
88
- SK: SORT_KEY
90
+ await (0, _dbDynamodb.deleteItem)({
91
+ entity: this._entity,
92
+ keys: {
93
+ PK: `T#${tenant}#FM#SETTINGS`,
94
+ SK: SORT_KEY
95
+ }
89
96
  });
90
97
  }
91
98
  }
92
- exports.SettingsStorageOperations = SettingsStorageOperations;
99
+ exports.SettingsStorageOperations = SettingsStorageOperations;
100
+
101
+ //# sourceMappingURL=SettingsStorageOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SORT_KEY","SettingsStorageOperations","constructor","documentClient","_entity","createStandardEntity","table","createTable","name","get","tenant","settings","entity","keys","PK","SK","data","ex","WebinyError","message","code","create","original","update","put","TYPE","delete"],"sources":["SettingsStorageOperations.ts"],"sourcesContent":["import { Entity } from \"dynamodb-toolbox\";\nimport { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport {\n FileManagerSettings,\n FileManagerSettingsStorageOperations,\n FileManagerSettingsStorageOperationsCreateParams,\n FileManagerSettingsStorageOperationsUpdateParams,\n FileManagerStorageOperationsDeleteSettings,\n FileManagerStorageOperationsGetSettingsParams\n} from \"@webiny/api-file-manager/types\";\nimport WebinyError from \"@webiny/error\";\nimport { get, createStandardEntity, createTable } from \"@webiny/db-dynamodb\";\n\ninterface SettingsStorageOperationsConfig {\n documentClient: DocumentClient;\n}\n\nconst SORT_KEY = \"A\";\n\nexport class SettingsStorageOperations implements FileManagerSettingsStorageOperations {\n private readonly _entity: Entity<any>;\n\n public constructor({ documentClient }: SettingsStorageOperationsConfig) {\n this._entity = createStandardEntity({\n table: createTable({ documentClient }),\n name: \"FM.Settings\"\n });\n }\n\n public async get({\n tenant\n }: FileManagerStorageOperationsGetSettingsParams): Promise<FileManagerSettings | null> {\n try {\n const settings = await get<{ data: FileManagerSettings }>({\n entity: this._entity,\n keys: {\n PK: `T#${tenant}#FM#SETTINGS`,\n SK: SORT_KEY\n }\n });\n\n return settings ? settings.data : null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not fetch the FileManager settings.\",\n ex.code || \"GET_SETTINGS_ERROR\"\n );\n }\n }\n\n public async create({\n data\n }: FileManagerSettingsStorageOperationsCreateParams): Promise<FileManagerSettings> {\n const original = await this.get({ tenant: data.tenant });\n\n if (original) {\n return await this.update({ original, data });\n }\n\n try {\n await this._entity.put({\n PK: `T#${data.tenant}#FM#SETTINGS`,\n SK: SORT_KEY,\n TYPE: \"fm.settings\",\n data\n });\n return data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Cannot create FileManager settings.\",\n ex.code || \"CREATE_FM_SETTINGS_ERROR\",\n {\n data\n }\n );\n }\n }\n\n public async update({\n data\n }: FileManagerSettingsStorageOperationsUpdateParams): Promise<FileManagerSettings> {\n try {\n await this._entity.update({\n PK: `T#${data.tenant}#FM#SETTINGS`,\n SK: SORT_KEY,\n TYPE: \"fm.settings\",\n data\n });\n return data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Cannot update FileManager settings.\",\n ex.code || \"UPDATE_FM_SETTINGS_ERROR\",\n {\n data\n }\n );\n }\n }\n\n public async delete({ tenant }: FileManagerStorageOperationsDeleteSettings): Promise<void> {\n return this._entity.delete({\n PK: `T#${tenant}#FM#SETTINGS`,\n SK: SORT_KEY\n });\n }\n}\n"],"mappings":";;;;;;;;AAUA;AACA;AAMA,MAAMA,QAAQ,GAAG,GAAG;AAEb,MAAMC,yBAAyB,CAAiD;EAG5EC,WAAW,CAAC;IAAEC;EAAgD,CAAC,EAAE;IAAA;IACpE,IAAI,CAACC,OAAO,GAAG,IAAAC,gCAAoB,EAAC;MAChCC,KAAK,EAAE,IAAAC,uBAAW,EAAC;QAAEJ;MAAe,CAAC,CAAC;MACtCK,IAAI,EAAE;IACV,CAAC,CAAC;EACN;EAEA,MAAaC,GAAG,CAAC;IACbC;EAC2C,CAAC,EAAuC;IACnF,IAAI;MACA,MAAMC,QAAQ,GAAG,MAAM,IAAAF,eAAG,EAAgC;QACtDG,MAAM,EAAE,IAAI,CAACR,OAAO;QACpBS,IAAI,EAAE;UACFC,EAAE,EAAG,KAAIJ,MAAO,cAAa;UAC7BK,EAAE,EAAEf;QACR;MACJ,CAAC,CAAC;MAEF,OAAOW,QAAQ,GAAGA,QAAQ,CAACK,IAAI,GAAG,IAAI;IAC1C,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,2CAA2C,EACzDF,EAAE,CAACG,IAAI,IAAI,oBAAoB,CAClC;IACL;EACJ;EAEA,MAAaC,MAAM,CAAC;IAChBL;EAC8C,CAAC,EAAgC;IAC/E,MAAMM,QAAQ,GAAG,MAAM,IAAI,CAACb,GAAG,CAAC;MAAEC,MAAM,EAAEM,IAAI,CAACN;IAAO,CAAC,CAAC;IAExD,IAAIY,QAAQ,EAAE;MACV,OAAO,MAAM,IAAI,CAACC,MAAM,CAAC;QAAED,QAAQ;QAAEN;MAAK,CAAC,CAAC;IAChD;IAEA,IAAI;MACA,MAAM,IAAI,CAACZ,OAAO,CAACoB,GAAG,CAAC;QACnBV,EAAE,EAAG,KAAIE,IAAI,CAACN,MAAO,cAAa;QAClCK,EAAE,EAAEf,QAAQ;QACZyB,IAAI,EAAE,aAAa;QACnBT;MACJ,CAAC,CAAC;MACF,OAAOA,IAAI;IACf,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,qCAAqC,EACnDF,EAAE,CAACG,IAAI,IAAI,0BAA0B,EACrC;QACIJ;MACJ,CAAC,CACJ;IACL;EACJ;EAEA,MAAaO,MAAM,CAAC;IAChBP;EAC8C,CAAC,EAAgC;IAC/E,IAAI;MACA,MAAM,IAAI,CAACZ,OAAO,CAACmB,MAAM,CAAC;QACtBT,EAAE,EAAG,KAAIE,IAAI,CAACN,MAAO,cAAa;QAClCK,EAAE,EAAEf,QAAQ;QACZyB,IAAI,EAAE,aAAa;QACnBT;MACJ,CAAC,CAAC;MACF,OAAOA,IAAI;IACf,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,qCAAqC,EACnDF,EAAE,CAACG,IAAI,IAAI,0BAA0B,EACrC;QACIJ;MACJ,CAAC,CACJ;IACL;EACJ;EAEA,MAAaU,MAAM,CAAC;IAAEhB;EAAmD,CAAC,EAAiB;IACvF,OAAO,IAAI,CAACN,OAAO,CAACsB,MAAM,CAAC;MACvBZ,EAAE,EAAG,KAAIJ,MAAO,cAAa;MAC7BK,EAAE,EAAEf;IACR,CAAC,CAAC;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_dbDynamodb","SORT_KEY","SettingsStorageOperations","constructor","documentClient","_entity","createStandardEntity","table","createTable","name","get","tenant","settings","entity","keys","PK","SK","data","ex","WebinyError","message","code","create","original","update","put","item","TYPE","delete","deleteItem","exports"],"sources":["SettingsStorageOperations.ts"],"sourcesContent":["import type { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport type {\n FileManagerSettings,\n FileManagerSettingsStorageOperations,\n FileManagerSettingsStorageOperationsCreateParams,\n FileManagerSettingsStorageOperationsUpdateParams,\n FileManagerStorageOperationsDeleteSettings,\n FileManagerStorageOperationsGetSettingsParams\n} from \"@webiny/api-file-manager/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createStandardEntity, createTable, deleteItem, get, put } from \"@webiny/db-dynamodb\";\n\ninterface SettingsStorageOperationsConfig {\n documentClient: DynamoDBDocument;\n}\n\nconst SORT_KEY = \"A\";\n\nexport class SettingsStorageOperations implements FileManagerSettingsStorageOperations {\n private readonly _entity: Entity<any>;\n\n public constructor({ documentClient }: SettingsStorageOperationsConfig) {\n this._entity = createStandardEntity({\n table: createTable({ documentClient }),\n name: \"FM.Settings\"\n });\n }\n\n public async get({\n tenant\n }: FileManagerStorageOperationsGetSettingsParams): Promise<FileManagerSettings | null> {\n try {\n const settings = await get<{ data: FileManagerSettings }>({\n entity: this._entity,\n keys: {\n PK: `T#${tenant}#FM#SETTINGS`,\n SK: SORT_KEY\n }\n });\n\n return settings?.data || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not fetch the FileManager settings.\",\n ex.code || \"GET_SETTINGS_ERROR\"\n );\n }\n }\n\n public async create({\n data\n }: FileManagerSettingsStorageOperationsCreateParams): Promise<FileManagerSettings> {\n const original = await this.get({ tenant: data.tenant });\n\n if (original) {\n return await this.update({ original, data });\n }\n\n try {\n await put({\n entity: this._entity,\n item: {\n PK: `T#${data.tenant}#FM#SETTINGS`,\n SK: SORT_KEY,\n TYPE: \"fm.settings\",\n data\n }\n });\n return data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Cannot create FileManager settings.\",\n ex.code || \"CREATE_FM_SETTINGS_ERROR\",\n {\n data\n }\n );\n }\n }\n\n public async update({\n data\n }: FileManagerSettingsStorageOperationsUpdateParams): Promise<FileManagerSettings> {\n try {\n await put({\n entity: this._entity,\n item: {\n PK: `T#${data.tenant}#FM#SETTINGS`,\n SK: SORT_KEY,\n TYPE: \"fm.settings\",\n data\n }\n });\n return data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Cannot update FileManager settings.\",\n ex.code || \"UPDATE_FM_SETTINGS_ERROR\",\n {\n data\n }\n );\n }\n }\n\n public async delete({ tenant }: FileManagerStorageOperationsDeleteSettings): Promise<void> {\n await deleteItem({\n entity: this._entity,\n keys: {\n PK: `T#${tenant}#FM#SETTINGS`,\n SK: SORT_KEY\n }\n });\n }\n}\n"],"mappings":";;;;;;;AAUA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAMA,MAAME,QAAQ,GAAG,GAAG;AAEb,MAAMC,yBAAyB,CAAiD;EAG5EC,WAAWA,CAAC;IAAEC;EAAgD,CAAC,EAAE;IACpE,IAAI,CAACC,OAAO,GAAG,IAAAC,gCAAoB,EAAC;MAChCC,KAAK,EAAE,IAAAC,uBAAW,EAAC;QAAEJ;MAAe,CAAC,CAAC;MACtCK,IAAI,EAAE;IACV,CAAC,CAAC;EACN;EAEA,MAAaC,GAAGA,CAAC;IACbC;EAC2C,CAAC,EAAuC;IACnF,IAAI;MACA,MAAMC,QAAQ,GAAG,MAAM,IAAAF,eAAG,EAAgC;QACtDG,MAAM,EAAE,IAAI,CAACR,OAAO;QACpBS,IAAI,EAAE;UACFC,EAAE,EAAE,KAAKJ,MAAM,cAAc;UAC7BK,EAAE,EAAEf;QACR;MACJ,CAAC,CAAC;MAEF,OAAOW,QAAQ,EAAEK,IAAI,IAAI,IAAI;IACjC,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,2CAA2C,EACzDF,EAAE,CAACG,IAAI,IAAI,oBACf,CAAC;IACL;EACJ;EAEA,MAAaC,MAAMA,CAAC;IAChBL;EAC8C,CAAC,EAAgC;IAC/E,MAAMM,QAAQ,GAAG,MAAM,IAAI,CAACb,GAAG,CAAC;MAAEC,MAAM,EAAEM,IAAI,CAACN;IAAO,CAAC,CAAC;IAExD,IAAIY,QAAQ,EAAE;MACV,OAAO,MAAM,IAAI,CAACC,MAAM,CAAC;QAAED,QAAQ;QAAEN;MAAK,CAAC,CAAC;IAChD;IAEA,IAAI;MACA,MAAM,IAAAQ,eAAG,EAAC;QACNZ,MAAM,EAAE,IAAI,CAACR,OAAO;QACpBqB,IAAI,EAAE;UACFX,EAAE,EAAE,KAAKE,IAAI,CAACN,MAAM,cAAc;UAClCK,EAAE,EAAEf,QAAQ;UACZ0B,IAAI,EAAE,aAAa;UACnBV;QACJ;MACJ,CAAC,CAAC;MACF,OAAOA,IAAI;IACf,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,qCAAqC,EACnDF,EAAE,CAACG,IAAI,IAAI,0BAA0B,EACrC;QACIJ;MACJ,CACJ,CAAC;IACL;EACJ;EAEA,MAAaO,MAAMA,CAAC;IAChBP;EAC8C,CAAC,EAAgC;IAC/E,IAAI;MACA,MAAM,IAAAQ,eAAG,EAAC;QACNZ,MAAM,EAAE,IAAI,CAACR,OAAO;QACpBqB,IAAI,EAAE;UACFX,EAAE,EAAE,KAAKE,IAAI,CAACN,MAAM,cAAc;UAClCK,EAAE,EAAEf,QAAQ;UACZ0B,IAAI,EAAE,aAAa;UACnBV;QACJ;MACJ,CAAC,CAAC;MACF,OAAOA,IAAI;IACf,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,qCAAqC,EACnDF,EAAE,CAACG,IAAI,IAAI,0BAA0B,EACrC;QACIJ;MACJ,CACJ,CAAC;IACL;EACJ;EAEA,MAAaW,MAAMA,CAAC;IAAEjB;EAAmD,CAAC,EAAiB;IACvF,MAAM,IAAAkB,sBAAU,EAAC;MACbhB,MAAM,EAAE,IAAI,CAACR,OAAO;MACpBS,IAAI,EAAE;QACFC,EAAE,EAAE,KAAKJ,MAAM,cAAc;QAC7BK,EAAE,EAAEf;MACR;IACJ,CAAC,CAAC;EACN;AACJ;AAAC6B,OAAA,CAAA5B,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { DocumentClient } from "aws-sdk/clients/dynamodb";
2
- import { FileManagerSystem, FileManagerSystemStorageOperations, FileManagerSystemStorageOperationsCreateParams, FileManagerSystemStorageOperationsGetParams, FileManagerSystemStorageOperationsUpdateParams } from "@webiny/api-file-manager/types";
1
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
+ import type { FileManagerSystem, FileManagerSystemStorageOperations, FileManagerSystemStorageOperationsCreateParams, FileManagerSystemStorageOperationsGetParams, FileManagerSystemStorageOperationsUpdateParams } from "@webiny/api-file-manager/types";
3
3
  interface SystemStorageOperationsConstructorParams {
4
- documentClient: DocumentClient;
4
+ documentClient: DynamoDBDocument;
5
5
  }
6
6
  export declare class SystemStorageOperations implements FileManagerSystemStorageOperations {
7
7
  private readonly _entity;
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.SystemStorageOperations = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
9
  var _dbDynamodb = require("@webiny/db-dynamodb");
12
10
  const SORT_KEY = "FM";
@@ -14,7 +12,6 @@ class SystemStorageOperations {
14
12
  constructor({
15
13
  documentClient
16
14
  }) {
17
- (0, _defineProperty2.default)(this, "_entity", void 0);
18
15
  this._entity = (0, _dbDynamodb.createLegacyEntity)({
19
16
  table: (0, _dbDynamodb.createTable)({
20
17
  documentClient
@@ -34,14 +31,14 @@ class SystemStorageOperations {
34
31
  tenant
35
32
  }) {
36
33
  try {
37
- const system = await this._entity.get({
38
- PK: `T#${tenant}#SYSTEM`,
39
- SK: SORT_KEY
34
+ const system = await (0, _dbDynamodb.get)({
35
+ entity: this._entity,
36
+ keys: {
37
+ PK: `T#${tenant}#SYSTEM`,
38
+ SK: SORT_KEY
39
+ }
40
40
  });
41
- if (!system || !system.Item) {
42
- return null;
43
- }
44
- return system.Item;
41
+ return system || null;
45
42
  } catch (ex) {
46
43
  throw new _error.default(ex.message || "Could not fetch the FileManager system.", ex.code || "GET_SYSTEM_ERROR");
47
44
  }
@@ -51,10 +48,14 @@ class SystemStorageOperations {
51
48
  data
52
49
  } = params;
53
50
  try {
54
- await this._entity.put((0, _objectSpread2.default)({
55
- PK: `T#${data.tenant}#SYSTEM`,
56
- SK: SORT_KEY
57
- }, data));
51
+ await (0, _dbDynamodb.put)({
52
+ entity: this._entity,
53
+ item: {
54
+ ...data,
55
+ PK: `T#${data.tenant}#SYSTEM`,
56
+ SK: SORT_KEY
57
+ }
58
+ });
58
59
  } catch (ex) {
59
60
  throw new _error.default("Could not insert new system data into DynamoDB", "CREATE_SYSTEM_ERROR", {
60
61
  data
@@ -68,16 +69,25 @@ class SystemStorageOperations {
68
69
  data
69
70
  } = params;
70
71
  try {
71
- await this._entity.update((0, _objectSpread2.default)({
72
- PK: `T#${data.tenant}#SYSTEM`,
73
- SK: SORT_KEY
74
- }, data));
72
+ await (0, _dbDynamodb.put)({
73
+ entity: this._entity,
74
+ item: {
75
+ ...data,
76
+ PK: `T#${data.tenant}#SYSTEM`,
77
+ SK: SORT_KEY
78
+ }
79
+ });
75
80
  } catch (ex) {
76
81
  throw new _error.default("Could not update system data in the DynamoDB.", "UPDATE_SYSTEM_ERROR", {
77
82
  data
78
83
  });
79
84
  }
80
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
85
+ return {
86
+ ...original,
87
+ ...data
88
+ };
81
89
  }
82
90
  }
83
- exports.SystemStorageOperations = SystemStorageOperations;
91
+ exports.SystemStorageOperations = SystemStorageOperations;
92
+
93
+ //# sourceMappingURL=SystemStorageOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SORT_KEY","SystemStorageOperations","constructor","documentClient","_entity","createLegacyEntity","table","createTable","name","attributes","version","type","tenant","get","system","PK","SK","Item","ex","WebinyError","message","code","create","params","data","put","update","original"],"sources":["SystemStorageOperations.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport {\n FileManagerSystem,\n FileManagerSystemStorageOperations,\n FileManagerSystemStorageOperationsCreateParams,\n FileManagerSystemStorageOperationsGetParams,\n FileManagerSystemStorageOperationsUpdateParams\n} from \"@webiny/api-file-manager/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createLegacyEntity, createTable } from \"@webiny/db-dynamodb\";\n\ninterface SystemStorageOperationsConstructorParams {\n documentClient: DocumentClient;\n}\n\nconst SORT_KEY = \"FM\";\n\nexport class SystemStorageOperations implements FileManagerSystemStorageOperations {\n private readonly _entity: Entity<any>;\n\n public constructor({ documentClient }: SystemStorageOperationsConstructorParams) {\n this._entity = createLegacyEntity({\n table: createTable({ documentClient }),\n name: \"System\",\n attributes: {\n version: {\n type: \"string\"\n },\n tenant: {\n type: \"string\"\n }\n }\n });\n }\n\n public async get({\n tenant\n }: FileManagerSystemStorageOperationsGetParams): Promise<FileManagerSystem | null> {\n try {\n const system = await this._entity.get({\n PK: `T#${tenant}#SYSTEM`,\n SK: SORT_KEY\n });\n if (!system || !system.Item) {\n return null;\n }\n return system.Item;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not fetch the FileManager system.\",\n ex.code || \"GET_SYSTEM_ERROR\"\n );\n }\n }\n\n public async create(\n params: FileManagerSystemStorageOperationsCreateParams\n ): Promise<FileManagerSystem> {\n const { data } = params;\n try {\n await this._entity.put({\n PK: `T#${data.tenant}#SYSTEM`,\n SK: SORT_KEY,\n ...data\n });\n } catch (ex) {\n throw new WebinyError(\n \"Could not insert new system data into DynamoDB\",\n \"CREATE_SYSTEM_ERROR\",\n {\n data\n }\n );\n }\n return data;\n }\n\n public async update(\n params: FileManagerSystemStorageOperationsUpdateParams\n ): Promise<FileManagerSystem> {\n const { original, data } = params;\n\n try {\n await this._entity.update({\n PK: `T#${data.tenant}#SYSTEM`,\n SK: SORT_KEY,\n ...data\n });\n } catch (ex) {\n throw new WebinyError(\n \"Could not update system data in the DynamoDB.\",\n \"UPDATE_SYSTEM_ERROR\",\n {\n data\n }\n );\n }\n return {\n ...original,\n ...data\n };\n }\n}\n"],"mappings":";;;;;;;;;AASA;AACA;AAMA,MAAMA,QAAQ,GAAG,IAAI;AAEd,MAAMC,uBAAuB,CAA+C;EAGxEC,WAAW,CAAC;IAAEC;EAAyD,CAAC,EAAE;IAAA;IAC7E,IAAI,CAACC,OAAO,GAAG,IAAAC,8BAAkB,EAAC;MAC9BC,KAAK,EAAE,IAAAC,uBAAW,EAAC;QAAEJ;MAAe,CAAC,CAAC;MACtCK,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAE;QACRC,OAAO,EAAE;UACLC,IAAI,EAAE;QACV,CAAC;QACDC,MAAM,EAAE;UACJD,IAAI,EAAE;QACV;MACJ;IACJ,CAAC,CAAC;EACN;EAEA,MAAaE,GAAG,CAAC;IACbD;EACyC,CAAC,EAAqC;IAC/E,IAAI;MACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACV,OAAO,CAACS,GAAG,CAAC;QAClCE,EAAE,EAAG,KAAIH,MAAO,SAAQ;QACxBI,EAAE,EAAEhB;MACR,CAAC,CAAC;MACF,IAAI,CAACc,MAAM,IAAI,CAACA,MAAM,CAACG,IAAI,EAAE;QACzB,OAAO,IAAI;MACf;MACA,OAAOH,MAAM,CAACG,IAAI;IACtB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,yCAAyC,EACvDF,EAAE,CAACG,IAAI,IAAI,kBAAkB,CAChC;IACL;EACJ;EAEA,MAAaC,MAAM,CACfC,MAAsD,EAC5B;IAC1B,MAAM;MAAEC;IAAK,CAAC,GAAGD,MAAM;IACvB,IAAI;MACA,MAAM,IAAI,CAACnB,OAAO,CAACqB,GAAG;QAClBV,EAAE,EAAG,KAAIS,IAAI,CAACZ,MAAO,SAAQ;QAC7BI,EAAE,EAAEhB;MAAQ,GACTwB,IAAI,EACT;IACN,CAAC,CAAC,OAAON,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,gDAAgD,EAChD,qBAAqB,EACrB;QACIK;MACJ,CAAC,CACJ;IACL;IACA,OAAOA,IAAI;EACf;EAEA,MAAaE,MAAM,CACfH,MAAsD,EAC5B;IAC1B,MAAM;MAAEI,QAAQ;MAAEH;IAAK,CAAC,GAAGD,MAAM;IAEjC,IAAI;MACA,MAAM,IAAI,CAACnB,OAAO,CAACsB,MAAM;QACrBX,EAAE,EAAG,KAAIS,IAAI,CAACZ,MAAO,SAAQ;QAC7BI,EAAE,EAAEhB;MAAQ,GACTwB,IAAI,EACT;IACN,CAAC,CAAC,OAAON,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,+CAA+C,EAC/C,qBAAqB,EACrB;QACIK;MACJ,CAAC,CACJ;IACL;IACA,mEACOG,QAAQ,GACRH,IAAI;EAEf;AACJ;AAAC"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_dbDynamodb","SORT_KEY","SystemStorageOperations","constructor","documentClient","_entity","createLegacyEntity","table","createTable","name","attributes","version","type","tenant","get","system","entity","keys","PK","SK","ex","WebinyError","message","code","create","params","data","put","item","update","original","exports"],"sources":["SystemStorageOperations.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport type { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport type {\n FileManagerSystem,\n FileManagerSystemStorageOperations,\n FileManagerSystemStorageOperationsCreateParams,\n FileManagerSystemStorageOperationsGetParams,\n FileManagerSystemStorageOperationsUpdateParams\n} from \"@webiny/api-file-manager/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createLegacyEntity, createTable, get, put } from \"@webiny/db-dynamodb\";\n\ninterface SystemStorageOperationsConstructorParams {\n documentClient: DynamoDBDocument;\n}\n\nconst SORT_KEY = \"FM\";\n\nexport class SystemStorageOperations implements FileManagerSystemStorageOperations {\n private readonly _entity: Entity<any>;\n\n public constructor({ documentClient }: SystemStorageOperationsConstructorParams) {\n this._entity = createLegacyEntity({\n table: createTable({ documentClient }),\n name: \"System\",\n attributes: {\n version: {\n type: \"string\"\n },\n tenant: {\n type: \"string\"\n }\n }\n });\n }\n\n public async get({\n tenant\n }: FileManagerSystemStorageOperationsGetParams): Promise<FileManagerSystem | null> {\n try {\n const system = await get<FileManagerSystem>({\n entity: this._entity,\n keys: {\n PK: `T#${tenant}#SYSTEM`,\n SK: SORT_KEY\n }\n });\n return system || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not fetch the FileManager system.\",\n ex.code || \"GET_SYSTEM_ERROR\"\n );\n }\n }\n\n public async create(\n params: FileManagerSystemStorageOperationsCreateParams\n ): Promise<FileManagerSystem> {\n const { data } = params;\n try {\n await put({\n entity: this._entity,\n item: {\n ...data,\n PK: `T#${data.tenant}#SYSTEM`,\n SK: SORT_KEY\n }\n });\n } catch (ex) {\n throw new WebinyError(\n \"Could not insert new system data into DynamoDB\",\n \"CREATE_SYSTEM_ERROR\",\n {\n data\n }\n );\n }\n return data;\n }\n\n public async update(\n params: FileManagerSystemStorageOperationsUpdateParams\n ): Promise<FileManagerSystem> {\n const { original, data } = params;\n\n try {\n await put({\n entity: this._entity,\n item: {\n ...data,\n PK: `T#${data.tenant}#SYSTEM`,\n SK: SORT_KEY\n }\n });\n } catch (ex) {\n throw new WebinyError(\n \"Could not update system data in the DynamoDB.\",\n \"UPDATE_SYSTEM_ERROR\",\n {\n data\n }\n );\n }\n return {\n ...original,\n ...data\n };\n }\n}\n"],"mappings":";;;;;;;AASA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAMA,MAAME,QAAQ,GAAG,IAAI;AAEd,MAAMC,uBAAuB,CAA+C;EAGxEC,WAAWA,CAAC;IAAEC;EAAyD,CAAC,EAAE;IAC7E,IAAI,CAACC,OAAO,GAAG,IAAAC,8BAAkB,EAAC;MAC9BC,KAAK,EAAE,IAAAC,uBAAW,EAAC;QAAEJ;MAAe,CAAC,CAAC;MACtCK,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAE;QACRC,OAAO,EAAE;UACLC,IAAI,EAAE;QACV,CAAC;QACDC,MAAM,EAAE;UACJD,IAAI,EAAE;QACV;MACJ;IACJ,CAAC,CAAC;EACN;EAEA,MAAaE,GAAGA,CAAC;IACbD;EACyC,CAAC,EAAqC;IAC/E,IAAI;MACA,MAAME,MAAM,GAAG,MAAM,IAAAD,eAAG,EAAoB;QACxCE,MAAM,EAAE,IAAI,CAACX,OAAO;QACpBY,IAAI,EAAE;UACFC,EAAE,EAAE,KAAKL,MAAM,SAAS;UACxBM,EAAE,EAAElB;QACR;MACJ,CAAC,CAAC;MACF,OAAOc,MAAM,IAAI,IAAI;IACzB,CAAC,CAAC,OAAOK,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,yCAAyC,EACvDF,EAAE,CAACG,IAAI,IAAI,kBACf,CAAC;IACL;EACJ;EAEA,MAAaC,MAAMA,CACfC,MAAsD,EAC5B;IAC1B,MAAM;MAAEC;IAAK,CAAC,GAAGD,MAAM;IACvB,IAAI;MACA,MAAM,IAAAE,eAAG,EAAC;QACNX,MAAM,EAAE,IAAI,CAACX,OAAO;QACpBuB,IAAI,EAAE;UACF,GAAGF,IAAI;UACPR,EAAE,EAAE,KAAKQ,IAAI,CAACb,MAAM,SAAS;UAC7BM,EAAE,EAAElB;QACR;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOmB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,gDAAgD,EAChD,qBAAqB,EACrB;QACIK;MACJ,CACJ,CAAC;IACL;IACA,OAAOA,IAAI;EACf;EAEA,MAAaG,MAAMA,CACfJ,MAAsD,EAC5B;IAC1B,MAAM;MAAEK,QAAQ;MAAEJ;IAAK,CAAC,GAAGD,MAAM;IAEjC,IAAI;MACA,MAAM,IAAAE,eAAG,EAAC;QACNX,MAAM,EAAE,IAAI,CAACX,OAAO;QACpBuB,IAAI,EAAE;UACF,GAAGF,IAAI;UACPR,EAAE,EAAE,KAAKQ,IAAI,CAACb,MAAM,SAAS;UAC7BM,EAAE,EAAElB;QACR;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,OAAOmB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,+CAA+C,EAC/C,qBAAqB,EACrB;QACIK;MACJ,CACJ,CAAC;IACL;IACA,OAAO;MACH,GAAGI,QAAQ;MACX,GAAGJ;IACP,CAAC;EACL;AACJ;AAACK,OAAA,CAAA7B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-file-manager-ddb",
3
- "version": "0.0.0-unstable.99666aeb00",
3
+ "version": "0.0.0-unstable.9bd236cf5e",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "@webiny/api-file-manager",
@@ -20,37 +20,28 @@
20
20
  ],
21
21
  "license": "MIT",
22
22
  "dependencies": {
23
- "@babel/runtime": "7.20.13",
24
- "@webiny/api-file-manager": "0.0.0-unstable.99666aeb00",
25
- "@webiny/db-dynamodb": "0.0.0-unstable.99666aeb00",
26
- "@webiny/error": "0.0.0-unstable.99666aeb00",
27
- "@webiny/plugins": "0.0.0-unstable.99666aeb00",
28
- "@webiny/project-utils": "0.0.0-unstable.99666aeb00",
29
- "aws-sdk": "2.1310.0",
30
- "dynamodb-toolbox": "0.3.5"
23
+ "@webiny/api": "0.0.0-unstable.9bd236cf5e",
24
+ "@webiny/api-file-manager": "0.0.0-unstable.9bd236cf5e",
25
+ "@webiny/aws-sdk": "0.0.0-unstable.9bd236cf5e",
26
+ "@webiny/db-dynamodb": "0.0.0-unstable.9bd236cf5e",
27
+ "@webiny/error": "0.0.0-unstable.9bd236cf5e",
28
+ "@webiny/plugins": "0.0.0-unstable.9bd236cf5e",
29
+ "@webiny/project-utils": "0.0.0-unstable.9bd236cf5e"
31
30
  },
32
31
  "devDependencies": {
33
- "@babel/cli": "7.20.7",
34
- "@babel/core": "7.20.12",
35
- "@babel/plugin-proposal-object-rest-spread": "7.20.7",
36
- "@babel/plugin-transform-runtime": "7.19.6",
37
- "@babel/preset-env": "7.20.2",
38
- "@babel/preset-typescript": "7.18.6",
39
- "@webiny/cli": "0.0.0-unstable.99666aeb00",
40
- "jest": "29.5.0",
32
+ "jest": "29.7.0",
41
33
  "jest-dynalite": "3.6.1",
42
34
  "jsonpack": "1.1.5",
43
- "rimraf": "3.0.2",
44
- "ttypescript": "1.5.15",
45
- "typescript": "4.7.4"
35
+ "rimraf": "6.0.1",
36
+ "typescript": "5.3.3"
46
37
  },
47
38
  "publishConfig": {
48
39
  "access": "public",
49
40
  "directory": "dist"
50
41
  },
51
42
  "scripts": {
52
- "watch": "yarn webiny run watch",
53
- "build": "yarn webiny run build"
43
+ "watch": "node ../cli/bin.js run watch",
44
+ "build": "node ../cli/bin.js run build"
54
45
  },
55
46
  "adio": {
56
47
  "ignoreDirs": [
@@ -58,10 +49,9 @@
58
49
  ],
59
50
  "ignore": {
60
51
  "src": [
61
- "aws-sdk",
62
52
  "sharp"
63
53
  ]
64
54
  }
65
55
  },
66
- "gitHead": "99666aeb00056c56292eeb5dbb6aba7fda2439e2"
56
+ "gitHead": "9bd236cf5e689f209a11bec089207dcc2d41a53c"
67
57
  }
@@ -1,4 +1,5 @@
1
- import { AttributePlugin, AttributePluginParams } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
1
+ import type { AttributePluginParams } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
+ import { AttributePlugin } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
3
  export declare class SettingsAttributePlugin extends AttributePlugin {
3
4
  constructor(params: Omit<AttributePluginParams, "entity">);
4
5
  }
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.SettingsAttributePlugin = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _AttributePlugin = require("@webiny/db-dynamodb/plugins/definitions/AttributePlugin");
10
8
  class SettingsAttributePlugin extends _AttributePlugin.AttributePlugin {
11
9
  constructor(params) {
12
- super((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
10
+ super({
11
+ ...params,
13
12
  entity: "FM.Settings"
14
- }));
13
+ });
15
14
  }
16
15
  }
17
- exports.SettingsAttributePlugin = SettingsAttributePlugin;
16
+ exports.SettingsAttributePlugin = SettingsAttributePlugin;
17
+
18
+ //# sourceMappingURL=SettingsAttributePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SettingsAttributePlugin","AttributePlugin","constructor","params","entity"],"sources":["SettingsAttributePlugin.ts"],"sourcesContent":["import {\n AttributePlugin,\n AttributePluginParams\n} from \"@webiny/db-dynamodb/plugins/definitions/AttributePlugin\";\n\nexport class SettingsAttributePlugin extends AttributePlugin {\n public constructor(params: Omit<AttributePluginParams, \"entity\">) {\n super({\n ...params,\n entity: \"FM.Settings\"\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAKO,MAAMA,uBAAuB,SAASC,gCAAe,CAAC;EAClDC,WAAW,CAACC,MAA6C,EAAE;IAC9D,KAAK,6DACEA,MAAM;MACTC,MAAM,EAAE;IAAa,GACvB;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["_AttributePlugin","require","SettingsAttributePlugin","AttributePlugin","constructor","params","entity","exports"],"sources":["SettingsAttributePlugin.ts"],"sourcesContent":["import type { AttributePluginParams } from \"@webiny/db-dynamodb/plugins/definitions/AttributePlugin\";\nimport { AttributePlugin } from \"@webiny/db-dynamodb/plugins/definitions/AttributePlugin\";\n\nexport class SettingsAttributePlugin extends AttributePlugin {\n public constructor(params: Omit<AttributePluginParams, \"entity\">) {\n super({\n ...params,\n entity: \"FM.Settings\"\n });\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEO,MAAMC,uBAAuB,SAASC,gCAAe,CAAC;EAClDC,WAAWA,CAACC,MAA6C,EAAE;IAC9D,KAAK,CAAC;MACF,GAAGA,MAAM;MACTC,MAAM,EAAE;IACZ,CAAC,CAAC;EACN;AACJ;AAACC,OAAA,CAAAL,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { AttributePlugin, AttributePluginParams } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
1
+ import type { AttributePluginParams } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
+ import { AttributePlugin } from "@webiny/db-dynamodb/plugins/definitions/AttributePlugin";
2
3
  export declare class SystemAttributePlugin extends AttributePlugin {
3
4
  constructor(params: Omit<AttributePluginParams, "entity">);
4
5
  }
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.SystemAttributePlugin = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _AttributePlugin = require("@webiny/db-dynamodb/plugins/definitions/AttributePlugin");
10
8
  class SystemAttributePlugin extends _AttributePlugin.AttributePlugin {
11
9
  constructor(params) {
12
- super((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
10
+ super({
11
+ ...params,
13
12
  entity: "System"
14
- }));
13
+ });
15
14
  }
16
15
  }
17
- exports.SystemAttributePlugin = SystemAttributePlugin;
16
+ exports.SystemAttributePlugin = SystemAttributePlugin;
17
+
18
+ //# sourceMappingURL=SystemAttributePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SystemAttributePlugin","AttributePlugin","constructor","params","entity"],"sources":["SystemAttributePlugin.ts"],"sourcesContent":["import {\n AttributePlugin,\n AttributePluginParams\n} from \"@webiny/db-dynamodb/plugins/definitions/AttributePlugin\";\n\nexport class SystemAttributePlugin extends AttributePlugin {\n public constructor(params: Omit<AttributePluginParams, \"entity\">) {\n super({\n ...params,\n entity: \"System\"\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAKO,MAAMA,qBAAqB,SAASC,gCAAe,CAAC;EAChDC,WAAW,CAACC,MAA6C,EAAE;IAC9D,KAAK,6DACEA,MAAM;MACTC,MAAM,EAAE;IAAQ,GAClB;EACN;AACJ;AAAC"}
1
+ {"version":3,"names":["_AttributePlugin","require","SystemAttributePlugin","AttributePlugin","constructor","params","entity","exports"],"sources":["SystemAttributePlugin.ts"],"sourcesContent":["import type { AttributePluginParams } from \"@webiny/db-dynamodb/plugins/definitions/AttributePlugin\";\nimport { AttributePlugin } from \"@webiny/db-dynamodb/plugins/definitions/AttributePlugin\";\n\nexport class SystemAttributePlugin extends AttributePlugin {\n public constructor(params: Omit<AttributePluginParams, \"entity\">) {\n super({\n ...params,\n entity: \"System\"\n });\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEO,MAAMC,qBAAqB,SAASC,gCAAe,CAAC;EAChDC,WAAWA,CAACC,MAA6C,EAAE;IAC9D,KAAK,CAAC;MACF,GAAGA,MAAM;MACTC,MAAM,EAAE;IACZ,CAAC,CAAC;EACN;AACJ;AAACC,OAAA,CAAAL,qBAAA,GAAAA,qBAAA","ignoreList":[]}
package/plugins/index.js CHANGED
@@ -24,4 +24,6 @@ Object.keys(_SystemAttributePlugin).forEach(function (key) {
24
24
  return _SystemAttributePlugin[key];
25
25
  }
26
26
  });
27
- });
27
+ });
28
+
29
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./SettingsAttributePlugin\";\nexport * from \"./SystemAttributePlugin\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":["_SettingsAttributePlugin","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_SystemAttributePlugin"],"sources":["index.ts"],"sourcesContent":["export * from \"./SettingsAttributePlugin\";\nexport * from \"./SystemAttributePlugin\";\n"],"mappings":";;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,wBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,wBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,wBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,sBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,sBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,sBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,sBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}