@webiny/api-page-builder-so-ddb-es 5.41.4-beta.3 → 5.41.4-beta.5

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.
@@ -27,6 +27,9 @@ const createPageElasticsearchEntity = params => {
27
27
  data: {
28
28
  type: "map"
29
29
  },
30
+ TYPE: {
31
+ type: "string"
32
+ },
30
33
  ...(attributes || {})
31
34
  }
32
35
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_toolbox","require","createPageElasticsearchEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","index","type","data","exports"],"sources":["pageElasticsearchEntity.ts"],"sourcesContent":["import { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport { Attributes } from \"~/types\";\n\ninterface Params {\n table: Table<string, string, string>;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createPageElasticsearchEntity = (params: Params): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n index: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AASO,MAAMC,6BAA6B,GAAIC,MAAc,IAAkB;EAC1E,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAAGH,MAAM;EAChD,OAAO,IAAII,eAAM,CAAC;IACdC,IAAI,EAAEJ,UAAU;IAChBE,KAAK;IACLD,UAAU,EAAE;MACRI,EAAE,EAAE;QACAC,YAAY,EAAE;MAClB,CAAC;MACDC,EAAE,EAAE;QACAC,OAAO,EAAE;MACb,CAAC;MACDC,KAAK,EAAE;QACHC,IAAI,EAAE;MACV,CAAC;MACDC,IAAI,EAAE;QACFD,IAAI,EAAE;MACV,CAAC;MACD,IAAIT,UAAU,IAAI,CAAC,CAAC;IACxB;EACJ,CAAC,CAAC;AACN,CAAC;AAACW,OAAA,CAAAd,6BAAA,GAAAA,6BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_toolbox","require","createPageElasticsearchEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","index","type","data","TYPE","exports"],"sources":["pageElasticsearchEntity.ts"],"sourcesContent":["import { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport { Attributes } from \"~/types\";\n\ninterface Params {\n table: Table<string, string, string>;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createPageElasticsearchEntity = (params: Params): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n index: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n TYPE: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AASO,MAAMC,6BAA6B,GAAIC,MAAc,IAAkB;EAC1E,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAAGH,MAAM;EAChD,OAAO,IAAII,eAAM,CAAC;IACdC,IAAI,EAAEJ,UAAU;IAChBE,KAAK;IACLD,UAAU,EAAE;MACRI,EAAE,EAAE;QACAC,YAAY,EAAE;MAClB,CAAC;MACDC,EAAE,EAAE;QACAC,OAAO,EAAE;MACb,CAAC;MACDC,KAAK,EAAE;QACHC,IAAI,EAAE;MACV,CAAC;MACDC,IAAI,EAAE;QACFD,IAAI,EAAE;MACV,CAAC;MACDE,IAAI,EAAE;QACFF,IAAI,EAAE;MACV,CAAC;MACD,IAAIT,UAAU,IAAI,CAAC,CAAC;IACxB;EACJ,CAAC,CAAC;AACN,CAAC;AAACY,OAAA,CAAAf,6BAAA,GAAAA,6BAAA","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.BlockCategoryDataLoader = void 0;
8
8
  var _dataloader = _interopRequireDefault(require("dataloader"));
9
- var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
9
+ var _dbDynamodb = require("@webiny/db-dynamodb");
10
10
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
11
11
  var _keys = require("./keys");
12
12
  class BlockCategoryDataLoader {
@@ -35,7 +35,7 @@ class BlockCategoryDataLoader {
35
35
  SK: (0, _keys.createSortKey)(item)
36
36
  });
37
37
  });
38
- const records = await (0, _batchRead.batchReadAll)({
38
+ const records = await (0, _dbDynamodb.batchReadAll)({
39
39
  table: this.entity.table,
40
40
  items: batched
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_cleanup","_keys","BlockCategoryDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","slug","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { BlockCategory } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<BlockCategory, \"slug\" | \"tenant\" | \"locale\">;\n\nexport class BlockCategoryDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<BlockCategory> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<BlockCategory[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader(): DataLoader<any, any> {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.slug}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey(item)\n });\n });\n\n const records = await batchReadAll<BlockCategory>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as BlockCategory;\n return collection;\n }, {} as Record<string, BlockCategory>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,uBAAuB,CAAgC;EACxDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAA0B;IACjE,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAA4B;IACtE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAyB;IAC1C,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,IAAK,EAAC;MACxD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAACpB,IAAI;UAC1B,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMqB,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAAgB;UAC9CC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAkB;UACnE,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAAkC,CAAC;QACvC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dataloader","_interopRequireDefault","require","_dbDynamodb","_cleanup","_keys","BlockCategoryDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","slug","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb\";\nimport { BlockCategory } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<BlockCategory, \"slug\" | \"tenant\" | \"locale\">;\n\nexport class BlockCategoryDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<BlockCategory> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<BlockCategory[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader(): DataLoader<any, any> {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.slug}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey(item)\n });\n });\n\n const records = await batchReadAll<BlockCategory>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as BlockCategory;\n return collection;\n }, {} as Record<string, BlockCategory>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,uBAAuB,CAAgC;EACxDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAA0B;IACjE,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAA4B;IACtE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAyB;IAC1C,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,IAAK,EAAC;MACxD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAACpB,IAAI;UAC1B,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMqB,OAAO,GAAG,MAAM,IAAAC,wBAAY,EAAgB;UAC9CC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAkB;UACnE,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAAkC,CAAC;QACvC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.CategoryDataLoader = void 0;
8
8
  var _dataloader = _interopRequireDefault(require("dataloader"));
9
- var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
9
+ var _dbDynamodb = require("@webiny/db-dynamodb");
10
10
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
11
11
  var _keys = require("./keys");
12
12
  class CategoryDataLoader {
@@ -35,7 +35,7 @@ class CategoryDataLoader {
35
35
  SK: (0, _keys.createSortKey)(item)
36
36
  });
37
37
  });
38
- const records = await (0, _batchRead.batchReadAll)({
38
+ const records = await (0, _dbDynamodb.batchReadAll)({
39
39
  table: this.entity.table,
40
40
  items: batched
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_cleanup","_keys","CategoryDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","slug","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { Category } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<Category, \"slug\" | \"tenant\" | \"locale\">;\n\nexport class CategoryDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<Category> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<Category[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader(): DataLoader<any, any> {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.slug}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey(item)\n });\n });\n\n const records = await batchReadAll<Category>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as Category;\n return collection;\n }, {} as Record<string, Category>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,kBAAkB,CAAgC;EACnDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAqB;IAC5D,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAAuB;IACjE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAyB;IAC1C,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,IAAK,EAAC;MACxD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAACpB,IAAI;UAC1B,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMqB,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAAW;UACzCC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAa;UAC9D,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAA6B,CAAC;QAClC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dataloader","_interopRequireDefault","require","_dbDynamodb","_cleanup","_keys","CategoryDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","slug","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb\";\nimport { Category } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<Category, \"slug\" | \"tenant\" | \"locale\">;\n\nexport class CategoryDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<Category> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<Category[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader(): DataLoader<any, any> {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.slug}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey(item)\n });\n });\n\n const records = await batchReadAll<Category>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as Category;\n return collection;\n }, {} as Record<string, Category>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,kBAAkB,CAAgC;EACnDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAqB;IAC5D,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAAuB;IACjE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAyB;IAC1C,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,IAAK,EAAC;MACxD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAACpB,IAAI;UAC1B,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMqB,OAAO,GAAG,MAAM,IAAAC,wBAAY,EAAW;UACzCC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAa;UAC9D,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAA6B,CAAC;QAClC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.PageBlockDataLoader = void 0;
8
8
  var _dataloader = _interopRequireDefault(require("dataloader"));
9
- var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
9
+ var _dbDynamodb = require("@webiny/db-dynamodb");
10
10
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
11
11
  var _keys = require("./keys");
12
12
  class PageBlockDataLoader {
@@ -35,7 +35,7 @@ class PageBlockDataLoader {
35
35
  SK: (0, _keys.createSortKey)()
36
36
  });
37
37
  });
38
- const records = await (0, _batchRead.batchReadAll)({
38
+ const records = await (0, _dbDynamodb.batchReadAll)({
39
39
  table: this.entity.table,
40
40
  items: batched
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_cleanup","_keys","PageBlockDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageBlock, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageBlockDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageBlock> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageBlock[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey()\n });\n });\n\n const records = await batchReadAll<PageBlock>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as PageBlock;\n return collection;\n }, {} as Record<string, PageBlock>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,mBAAmB,CAAgC;EACpDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAsB;IAC7D,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAAwB;IAClE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAAC;UACtB,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAAY;UAC1CC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAc;UAC/D,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAA8B,CAAC;QACnC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dataloader","_interopRequireDefault","require","_dbDynamodb","_cleanup","_keys","PageBlockDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPartitionKey","SK","createSortKey","records","batchReadAll","table","results","reduce","collection","result","cleanupItem","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb\";\nimport { PageBlock } from \"@webiny/api-page-builder/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPartitionKey, createSortKey } from \"./keys\";\nimport { DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageBlock, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageBlockDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageBlock> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageBlock[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPartitionKey(item),\n SK: createSortKey()\n });\n });\n\n const records = await batchReadAll<PageBlock>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result);\n collection[key] = cleanupItem(this.entity, result) as PageBlock;\n return collection;\n }, {} as Record<string, PageBlock>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AASO,MAAMI,mBAAmB,CAAgC;EACpDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAsB;IAC7D,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAAwB;IAClE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,wBAAkB,EAAClB,IAAI,CAAC;YAC5BmB,EAAE,EAAE,IAAAC,mBAAa,EAAC;UACtB,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,wBAAY,EAAY;UAC1CC,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACyB,KAAK;UACxBnB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMU,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMjB,GAAG,GAAGD,UAAU,CAACmB,MAAM,CAAC;UAC9BD,UAAU,CAACjB,GAAG,CAAC,GAAG,IAAAmB,oBAAW,EAAC,IAAI,CAAC9B,MAAM,EAAE6B,MAAM,CAAc;UAC/D,OAAOD,UAAU;QACrB,CAAC,EAAE,CAAC,CAA8B,CAAC;QACnC,OAAOtB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOwB,OAAO,CAACf,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACmC,OAAA,CAAApC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.PageTemplateDataLoader = void 0;
8
8
  var _dataloader = _interopRequireDefault(require("dataloader"));
9
- var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
9
+ var _dbDynamodb = require("@webiny/db-dynamodb");
10
10
  var _keys = require("./keys");
11
11
  class PageTemplateDataLoader {
12
12
  _getDataLoader = undefined;
@@ -34,7 +34,7 @@ class PageTemplateDataLoader {
34
34
  SK: "A"
35
35
  });
36
36
  });
37
- const records = await (0, _batchRead.batchReadAll)({
37
+ const records = await (0, _dbDynamodb.batchReadAll)({
38
38
  table: this.entity.table,
39
39
  items: batched
40
40
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_dataloader","_interopRequireDefault","require","_batchRead","_keys","PageTemplateDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPrimaryPK","SK","records","batchReadAll","table","results","reduce","collection","result","data","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { PageTemplate } from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPrimaryPK } from \"./keys\";\nimport { DataContainer, DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageTemplate, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageTemplateDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageTemplate> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageTemplate[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPrimaryPK(item),\n SK: \"A\"\n });\n });\n\n const records = await batchReadAll<DataContainer<PageTemplate>>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result.data);\n collection[key] = result.data as PageTemplate;\n return collection;\n }, {} as Record<string, PageTemplate>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AASO,MAAMG,sBAAsB,CAAgC;EACvDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAyB;IAChE,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAA2B;IACrE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,qBAAe,EAAClB,IAAI,CAAC;YACzBmB,EAAE,EAAE;UACR,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,uBAAY,EAA8B;UAC5DC,KAAK,EAAE,IAAI,CAACxB,MAAM,CAACwB,KAAK;UACxBlB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMS,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMhB,GAAG,GAAGD,UAAU,CAACkB,MAAM,CAACC,IAAI,CAAC;UACnCF,UAAU,CAAChB,GAAG,CAAC,GAAGiB,MAAM,CAACC,IAAoB;UAC7C,OAAOF,UAAU;QACrB,CAAC,EAAE,CAAC,CAAiC,CAAC;QACtC,OAAOrB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOuB,OAAO,CAACd,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACkC,OAAA,CAAAnC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dataloader","_interopRequireDefault","require","_dbDynamodb","_keys","PageTemplateDataLoader","_getDataLoader","undefined","constructor","params","entity","getOne","item","getDataLoader","load","getAll","items","loadMany","clear","clearAll","cacheKeyFn","key","tenant","locale","id","DataLoader","batched","map","getBatch","PK","createPrimaryPK","SK","records","batchReadAll","table","results","reduce","collection","result","data","exports"],"sources":["dataLoader.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { batchReadAll } from \"@webiny/db-dynamodb\";\nimport { PageTemplate } from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { createPrimaryPK } from \"./keys\";\nimport { DataContainer, DataLoaderInterface } from \"~/types\";\n\ninterface Params {\n entity: Entity<any>;\n}\n\ntype DataLoaderGetItem = Pick<PageTemplate, \"id\" | \"tenant\" | \"locale\">;\n\nexport class PageTemplateDataLoader implements DataLoaderInterface {\n private _getDataLoader: DataLoader<any, any> | undefined = undefined;\n\n private readonly entity: Entity<any>;\n\n constructor(params: Params) {\n this.entity = params.entity;\n }\n\n public async getOne(item: DataLoaderGetItem): Promise<PageTemplate> {\n return await this.getDataLoader().load(item);\n }\n\n public async getAll(items: DataLoaderGetItem[]): Promise<PageTemplate[]> {\n return await this.getDataLoader().loadMany(items);\n }\n\n public clear(): void {\n this.getDataLoader().clearAll();\n }\n\n private getDataLoader() {\n if (!this._getDataLoader) {\n const cacheKeyFn = (key: DataLoaderGetItem) => {\n return `T#${key.tenant}#L#${key.locale}#${key.id}`;\n };\n this._getDataLoader = new DataLoader(\n async items => {\n const batched = items.map(item => {\n return this.entity.getBatch({\n PK: createPrimaryPK(item),\n SK: \"A\"\n });\n });\n\n const records = await batchReadAll<DataContainer<PageTemplate>>({\n table: this.entity.table,\n items: batched\n });\n\n const results = records.reduce((collection, result) => {\n if (!result) {\n return collection;\n }\n const key = cacheKeyFn(result.data);\n collection[key] = result.data as PageTemplate;\n return collection;\n }, {} as Record<string, PageTemplate>);\n return items.map(item => {\n const key = cacheKeyFn(item);\n return results[key] || null;\n });\n },\n {\n cacheKeyFn\n }\n );\n }\n return this._getDataLoader;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AASO,MAAMG,sBAAsB,CAAgC;EACvDC,cAAc,GAAqCC,SAAS;EAIpEC,WAAWA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,MAAMA,CAACC,IAAuB,EAAyB;IAChE,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC,CAACC,IAAI,CAACF,IAAI,CAAC;EAChD;EAEA,MAAaG,MAAMA,CAACC,KAA0B,EAA2B;IACrE,OAAO,MAAM,IAAI,CAACH,aAAa,CAAC,CAAC,CAACI,QAAQ,CAACD,KAAK,CAAC;EACrD;EAEOE,KAAKA,CAAA,EAAS;IACjB,IAAI,CAACL,aAAa,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACnC;EAEQN,aAAaA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACP,cAAc,EAAE;MACtB,MAAMc,UAAU,GAAIC,GAAsB,IAAK;QAC3C,OAAQ,KAAIA,GAAG,CAACC,MAAO,MAAKD,GAAG,CAACE,MAAO,IAAGF,GAAG,CAACG,EAAG,EAAC;MACtD,CAAC;MACD,IAAI,CAAClB,cAAc,GAAG,IAAImB,mBAAU,CAChC,MAAMT,KAAK,IAAI;QACX,MAAMU,OAAO,GAAGV,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UAC9B,OAAO,IAAI,CAACF,MAAM,CAACkB,QAAQ,CAAC;YACxBC,EAAE,EAAE,IAAAC,qBAAe,EAAClB,IAAI,CAAC;YACzBmB,EAAE,EAAE;UACR,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,MAAMC,OAAO,GAAG,MAAM,IAAAC,wBAAY,EAA8B;UAC5DC,KAAK,EAAE,IAAI,CAACxB,MAAM,CAACwB,KAAK;UACxBlB,KAAK,EAAEU;QACX,CAAC,CAAC;QAEF,MAAMS,OAAO,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,UAAU,EAAEC,MAAM,KAAK;UACnD,IAAI,CAACA,MAAM,EAAE;YACT,OAAOD,UAAU;UACrB;UACA,MAAMhB,GAAG,GAAGD,UAAU,CAACkB,MAAM,CAACC,IAAI,CAAC;UACnCF,UAAU,CAAChB,GAAG,CAAC,GAAGiB,MAAM,CAACC,IAAoB;UAC7C,OAAOF,UAAU;QACrB,CAAC,EAAE,CAAC,CAAiC,CAAC;QACtC,OAAOrB,KAAK,CAACW,GAAG,CAACf,IAAI,IAAI;UACrB,MAAMS,GAAG,GAAGD,UAAU,CAACR,IAAI,CAAC;UAC5B,OAAOuB,OAAO,CAACd,GAAG,CAAC,IAAI,IAAI;QAC/B,CAAC,CAAC;MACN,CAAC,EACD;QACID;MACJ,CACJ,CAAC;IACL;IACA,OAAO,IAAI,CAACd,cAAc;EAC9B;AACJ;AAACkC,OAAA,CAAAnC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { PageStorageOperations } from "@webiny/api-page-builder/types";
2
- import { Entity } from "@webiny/db-dynamodb/toolbox";
3
- import { Client } from "@elastic/elasticsearch";
4
- import { PluginsContainer } from "@webiny/plugins";
1
+ import type { PageStorageOperations } from "@webiny/api-page-builder/types";
2
+ import type { Entity } from "@webiny/db-dynamodb/toolbox";
3
+ import type { Client } from "@elastic/elasticsearch";
4
+ import type { PluginsContainer } from "@webiny/plugins";
5
5
  export interface CreatePageStorageOperationsParams {
6
6
  entity: Entity<any>;
7
7
  esEntity: Entity<any>;
@@ -13,13 +13,10 @@ var _apiElasticsearch = require("@webiny/api-elasticsearch");
13
13
  var _elasticsearchQueryBody = require("./elasticsearchQueryBody");
14
14
  var _SearchLatestPagesPlugin = require("../../plugins/definitions/SearchLatestPagesPlugin");
15
15
  var _SearchPublishedPagesPlugin = require("../../plugins/definitions/SearchPublishedPagesPlugin");
16
- var _query = require("@webiny/db-dynamodb/utils/query");
17
- var _batchWrite = require("@webiny/db-dynamodb/utils/batchWrite");
16
+ var _dbDynamodb = require("@webiny/db-dynamodb");
18
17
  var _helpers = require("./helpers");
19
18
  var _keys = require("./keys");
20
- var _sort = require("@webiny/db-dynamodb/utils/sort");
21
19
  var _PageDynamoDbElasticsearchFieldPlugin = require("../../plugins/definitions/PageDynamoDbElasticsearchFieldPlugin");
22
- var _dbDynamodb = require("@webiny/db-dynamodb");
23
20
  var _shouldIgnoreEsResponseError = require("./shouldIgnoreEsResponseError");
24
21
  var _logIgnoredEsResponseError = require("./logIgnoredEsResponseError");
25
22
  /**
@@ -48,21 +45,21 @@ const createPageStorageOperations = params => {
48
45
  ...versionKeys,
49
46
  SK: (0, _keys.createLatestSortKey)()
50
47
  };
51
- const items = [entity.putBatch({
52
- ...page,
53
- ...versionKeys,
54
- TYPE: (0, _keys.createBasicType)()
55
- }), entity.putBatch({
56
- ...page,
57
- ...latestKeys,
58
- TYPE: (0, _keys.createLatestType)()
59
- })];
48
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
49
+ entity,
50
+ put: [{
51
+ ...page,
52
+ ...versionKeys,
53
+ TYPE: (0, _keys.createBasicType)()
54
+ }, {
55
+ ...page,
56
+ ...latestKeys,
57
+ TYPE: (0, _keys.createLatestType)()
58
+ }]
59
+ });
60
60
  const esData = (0, _helpers.getESLatestPageData)(plugins, page, input);
61
61
  try {
62
- await (0, _batchWrite.batchWriteAll)({
63
- table: entity.table,
64
- items: items
65
- });
62
+ await entityBatch.execute();
66
63
  await (0, _dbDynamodb.put)({
67
64
  entity: esEntity,
68
65
  item: {
@@ -94,21 +91,21 @@ const createPageStorageOperations = params => {
94
91
  ...versionKeys,
95
92
  SK: (0, _keys.createLatestSortKey)()
96
93
  };
97
- const items = [entity.putBatch({
98
- ...page,
99
- TYPE: (0, _keys.createBasicType)(),
100
- ...versionKeys
101
- }), entity.putBatch({
102
- ...page,
103
- TYPE: (0, _keys.createLatestType)(),
104
- ...latestKeys
105
- })];
94
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
95
+ entity,
96
+ put: [{
97
+ ...page,
98
+ TYPE: (0, _keys.createBasicType)(),
99
+ ...versionKeys
100
+ }, {
101
+ ...page,
102
+ TYPE: (0, _keys.createLatestType)(),
103
+ ...latestKeys
104
+ }]
105
+ });
106
106
  const esData = (0, _helpers.getESLatestPageData)(plugins, page);
107
107
  try {
108
- await (0, _batchWrite.batchWriteAll)({
109
- table: entity.table,
110
- items
111
- });
108
+ await entityBatch.execute();
112
109
  await (0, _dbDynamodb.put)({
113
110
  entity: esEntity,
114
111
  item: {
@@ -146,30 +143,30 @@ const createPageStorageOperations = params => {
146
143
  entity,
147
144
  keys: latestKeys
148
145
  });
149
- const items = [entity.putBatch({
150
- ...page,
151
- TYPE: (0, _keys.createBasicType)(),
152
- ...keys
153
- })];
146
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
147
+ entity,
148
+ put: [{
149
+ ...page,
150
+ TYPE: (0, _keys.createBasicType)(),
151
+ ...keys
152
+ }]
153
+ });
154
154
  const esData = (0, _helpers.getESLatestPageData)(plugins, page, input);
155
155
  if (latestPage && latestPage?.id === page.id) {
156
156
  /**
157
157
  * We also update the regular record.
158
158
  */
159
- items.push(entity.putBatch({
159
+ entityBatch.put({
160
160
  ...page,
161
161
  TYPE: (0, _keys.createLatestType)(),
162
162
  ...latestKeys
163
- }));
163
+ });
164
164
  }
165
165
  /**
166
166
  * Unfortunately we cannot push regular and es record in the batch write because they are two separate tables.
167
167
  */
168
168
  try {
169
- await (0, _batchWrite.batchWriteAll)({
170
- table: entity.table,
171
- items
172
- });
169
+ await entityBatch.execute();
173
170
  await (0, _dbDynamodb.put)({
174
171
  entity: esEntity,
175
172
  item: {
@@ -204,28 +201,33 @@ const createPageStorageOperations = params => {
204
201
  publishedPage
205
202
  } = params;
206
203
  const partitionKey = (0, _keys.createPartitionKey)(page);
207
- const items = [entity.deleteBatch({
208
- PK: partitionKey,
209
- SK: (0, _keys.createSortKey)(page)
210
- })];
211
- const esItems = [];
204
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
205
+ entity,
206
+ delete: [{
207
+ PK: partitionKey,
208
+ SK: (0, _keys.createSortKey)(page)
209
+ }]
210
+ });
211
+ const elasticsearchEntityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
212
+ entity: esEntity
213
+ });
212
214
  if (publishedPage && publishedPage.id === page.id) {
213
- items.push(entity.deleteBatch({
215
+ entityBatch.delete({
214
216
  PK: partitionKey,
215
217
  SK: (0, _keys.createPublishedSortKey)()
216
- }));
217
- items.push(entity.deleteBatch({
218
+ });
219
+ entityBatch.delete({
218
220
  PK: (0, _keys.createPathPartitionKey)(page),
219
221
  SK: (0, _keys.createPathSortKey)(page)
220
- }));
221
- esItems.push(esEntity.deleteBatch({
222
+ });
223
+ elasticsearchEntityBatch.delete({
222
224
  PK: partitionKey,
223
225
  SK: (0, _keys.createPublishedSortKey)()
224
- }));
226
+ });
225
227
  }
226
228
  let previousLatestPage = null;
227
229
  if (latestPage && latestPage.id === page.id) {
228
- const previousLatestRecord = await (0, _query.queryOne)({
230
+ const previousLatestRecord = await (0, _dbDynamodb.queryOne)({
229
231
  entity,
230
232
  partitionKey,
231
233
  options: {
@@ -234,37 +236,28 @@ const createPageStorageOperations = params => {
234
236
  }
235
237
  });
236
238
  if (previousLatestRecord) {
237
- items.push(entity.putBatch({
239
+ entityBatch.put({
238
240
  ...previousLatestRecord,
239
241
  TYPE: (0, _keys.createLatestType)(),
240
242
  PK: partitionKey,
241
243
  SK: (0, _keys.createLatestSortKey)()
242
- }));
243
- esItems.push(esEntity.putBatch({
244
+ });
245
+ elasticsearchEntityBatch.put({
244
246
  PK: partitionKey,
245
247
  SK: (0, _keys.createLatestSortKey)(),
246
248
  index: _configurations.configurations.es(page).index,
247
249
  data: (0, _helpers.getESLatestPageData)(plugins, previousLatestRecord)
248
- }));
250
+ });
249
251
  previousLatestPage = (0, _cleanup.cleanupItem)(entity, previousLatestRecord);
250
252
  }
251
253
  }
252
254
  try {
253
- await (0, _batchWrite.batchWriteAll)({
254
- table: entity.table,
255
- items
256
- });
255
+ await entityBatch.execute();
257
256
  } catch (ex) {
258
257
  throw new _error.default(ex.message || "Could not batch write all the page records.", ex.code || "BATCH_WRITE_RECORDS_ERROR");
259
258
  }
260
- if (esItems.length === 0) {
261
- return [page, previousLatestPage];
262
- }
263
259
  try {
264
- await (0, _batchWrite.batchWriteAll)({
265
- table: entity.table,
266
- items: esItems
267
- });
260
+ await elasticsearchEntityBatch.execute();
268
261
  } catch (ex) {
269
262
  throw new _error.default(ex.message || "Could not batch write all the page Elasticsearch records.", ex.code || "BATCH_WRITE_ELASTICSEARCH_RECORDS_ERROR");
270
263
  }
@@ -294,7 +287,7 @@ const createPageStorageOperations = params => {
294
287
  };
295
288
  let revisions;
296
289
  try {
297
- revisions = await (0, _query.queryAll)(queryAllParams);
290
+ revisions = await (0, _dbDynamodb.queryAll)(queryAllParams);
298
291
  } catch (ex) {
299
292
  throw new _error.default(ex.message || "Could not query for all revisions of the page.", ex.code || "LIST_REVISIONS_ERROR", {
300
293
  params: queryAllParams
@@ -305,47 +298,48 @@ const createPageStorageOperations = params => {
305
298
  * We need to go through all possible entries and delete them.
306
299
  * Also, delete the published entry path record.
307
300
  */
308
- const items = [];
301
+
302
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
303
+ entity
304
+ });
305
+ const elasticsearchEntityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
306
+ entity: esEntity
307
+ });
309
308
  let publishedPathEntryDeleted = false;
310
309
  for (const revision of revisions) {
311
310
  if (revision.status === "published" && !publishedPathEntryDeleted) {
312
311
  publishedPathEntryDeleted = true;
313
- items.push(entity.deleteBatch({
312
+ entityBatch.delete({
314
313
  PK: (0, _keys.createPathPartitionKey)(page),
315
314
  SK: revision.path
316
- }));
315
+ });
317
316
  }
318
- items.push(entity.deleteBatch({
317
+ entityBatch.delete({
319
318
  PK: revision.PK,
320
319
  SK: revision.SK
321
- }));
320
+ });
322
321
  }
323
- const esItems = [esEntity.deleteBatch({
322
+ elasticsearchEntityBatch.delete({
324
323
  PK: partitionKey,
325
324
  SK: (0, _keys.createLatestSortKey)()
326
- })];
325
+ });
326
+
327
327
  /**
328
328
  * Delete published record if it is published.
329
329
  */
330
330
  if (publishedPathEntryDeleted) {
331
- esItems.push(esEntity.deleteBatch({
331
+ elasticsearchEntityBatch.delete({
332
332
  PK: partitionKey,
333
333
  SK: (0, _keys.createPublishedSortKey)()
334
- }));
334
+ });
335
335
  }
336
336
  try {
337
- await (0, _batchWrite.batchWriteAll)({
338
- table: entity.table,
339
- items
340
- });
337
+ await entityBatch.execute();
341
338
  } catch (ex) {
342
339
  throw new _error.default(ex.message || "Could not delete all the page records.", ex.code || "DELETE_RECORDS_ERROR");
343
340
  }
344
341
  try {
345
- await (0, _batchWrite.batchWriteAll)({
346
- table: entity.table,
347
- items: esItems
348
- });
342
+ await elasticsearchEntityBatch.execute();
349
343
  } catch (ex) {
350
344
  throw new _error.default(ex.message || "Could not delete all the page Elasticsearch records.", ex.code || "DELETE_ELASTICSEARCH_RECORDS_ERROR");
351
345
  }
@@ -362,96 +356,91 @@ const createPageStorageOperations = params => {
362
356
  /**
363
357
  * Update the given revision of the page.
364
358
  */
365
- const items = [entity.putBatch({
366
- ...page,
367
- TYPE: (0, _keys.createBasicType)(),
368
- PK: (0, _keys.createPartitionKey)(page),
369
- SK: (0, _keys.createSortKey)(page)
370
- })];
371
- const esItems = [];
359
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
360
+ entity,
361
+ put: [{
362
+ ...page,
363
+ TYPE: (0, _keys.createBasicType)(),
364
+ PK: (0, _keys.createPartitionKey)(page),
365
+ SK: (0, _keys.createSortKey)(page)
366
+ }]
367
+ });
368
+ const elasticsearchEntityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
369
+ entity: esEntity
370
+ });
372
371
  /**
373
372
  * If we are publishing the latest revision, update the latest revision
374
373
  * status in ES. We also need to update the latest page revision entry in ES.
375
374
  */
376
375
  if (latestPage.id === page.id) {
377
- items.push(entity.putBatch({
376
+ entityBatch.put({
378
377
  ...page,
379
378
  TYPE: (0, _keys.createLatestType)(),
380
379
  PK: (0, _keys.createPartitionKey)(page),
381
380
  SK: (0, _keys.createLatestSortKey)()
382
- }));
383
- esItems.push(esEntity.putBatch({
381
+ });
382
+ elasticsearchEntityBatch.put({
384
383
  PK: (0, _keys.createPartitionKey)(page),
385
384
  SK: (0, _keys.createLatestSortKey)(),
386
385
  index: _configurations.configurations.es(page).index,
387
386
  data: (0, _helpers.getESLatestPageData)(plugins, page)
388
- }));
387
+ });
389
388
  }
390
389
  /**
391
390
  * If we already have a published revision, and it's not the revision being published:
392
391
  * - set the existing published revision to "unpublished"
393
392
  */
394
393
  if (publishedPage && publishedPage.id !== page.id) {
395
- items.push(entity.putBatch({
394
+ entityBatch.put({
396
395
  ...publishedPage,
397
396
  status: "unpublished",
398
397
  PK: (0, _keys.createPartitionKey)(publishedPage),
399
398
  SK: (0, _keys.createSortKey)(publishedPage)
400
- }));
399
+ });
400
+
401
401
  /**
402
402
  * Remove old published path if required.
403
403
  */
404
404
  if (publishedPage.path !== page.path) {
405
- items.push(entity.deleteBatch({
405
+ entityBatch.delete({
406
406
  PK: (0, _keys.createPathPartitionKey)(page),
407
407
  SK: publishedPage.path
408
- }));
408
+ });
409
409
  }
410
410
  }
411
- esItems.push(esEntity.putBatch({
411
+ elasticsearchEntityBatch.put({
412
412
  PK: (0, _keys.createPartitionKey)(page),
413
413
  SK: (0, _keys.createPublishedSortKey)(),
414
414
  index: _configurations.configurations.es(page).index,
415
415
  data: (0, _helpers.getESPublishedPageData)(plugins, page)
416
- }));
416
+ });
417
417
 
418
418
  /**
419
419
  * Update or insert published path.
420
420
  */
421
- items.push(entity.putBatch({
421
+ entityBatch.put({
422
422
  ...page,
423
423
  TYPE: (0, _keys.createPublishedPathType)(),
424
424
  PK: (0, _keys.createPathPartitionKey)(page),
425
425
  SK: (0, _keys.createPathSortKey)(page)
426
- }));
426
+ });
427
+
427
428
  /**
428
429
  * Update or insert published page.
429
430
  */
430
- items.push(entity.putBatch({
431
+ entityBatch.put({
431
432
  ...page,
432
433
  TYPE: (0, _keys.createPublishedType)(),
433
434
  PK: (0, _keys.createPartitionKey)(page),
434
435
  SK: (0, _keys.createPublishedSortKey)()
435
- }));
436
+ });
436
437
  try {
437
- await (0, _batchWrite.batchWriteAll)({
438
- table: entity.table,
439
- items
440
- });
438
+ await entityBatch.execute();
441
439
  } catch (ex) {
442
440
  throw new _error.default(ex.message || "Could not update all the page records when publishing.", ex.code || "UPDATE_RECORDS_ERROR");
443
441
  }
444
- /**
445
- * No point in continuing if there are no items in Elasticsearch data
446
- */
447
- if (esItems.length === 0) {
448
- return page;
449
- }
450
442
  try {
451
- await (0, _batchWrite.batchWriteAll)({
452
- table: esEntity.table,
453
- items: esItems
454
- });
443
+ await elasticsearchEntityBatch.execute();
455
444
  } catch (ex) {
456
445
  throw new _error.default(ex.message || "Could not update all the page Elasticsearch records when publishing.", ex.code || "UPDATE_ELASTICSEARCH_RECORDS_ERROR");
457
446
  }
@@ -463,59 +452,53 @@ const createPageStorageOperations = params => {
463
452
  latestPage
464
453
  } = params;
465
454
  page.status = "unpublished";
466
- const items = [entity.deleteBatch({
467
- PK: (0, _keys.createPartitionKey)(page),
468
- SK: (0, _keys.createPublishedSortKey)()
469
- }), entity.deleteBatch({
470
- PK: (0, _keys.createPathPartitionKey)(page),
471
- SK: (0, _keys.createPathSortKey)(page)
472
- }), entity.putBatch({
473
- ...page,
474
- TYPE: (0, _keys.createBasicType)(),
475
- PK: (0, _keys.createPartitionKey)(page),
476
- SK: (0, _keys.createSortKey)(page)
477
- })];
478
- const esItems = [];
455
+ const entityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
456
+ entity,
457
+ delete: [{
458
+ PK: (0, _keys.createPartitionKey)(page),
459
+ SK: (0, _keys.createPublishedSortKey)()
460
+ }, {
461
+ PK: (0, _keys.createPathPartitionKey)(page),
462
+ SK: (0, _keys.createPathSortKey)(page)
463
+ }],
464
+ put: [{
465
+ ...page,
466
+ TYPE: (0, _keys.createBasicType)(),
467
+ PK: (0, _keys.createPartitionKey)(page),
468
+ SK: (0, _keys.createSortKey)(page)
469
+ }]
470
+ });
471
+ const elasticsearchEntityBatch = (0, _dbDynamodb.createEntityWriteBatch)({
472
+ entity: esEntity,
473
+ delete: [{
474
+ PK: (0, _keys.createPartitionKey)(page),
475
+ SK: (0, _keys.createPublishedSortKey)()
476
+ }]
477
+ });
479
478
  /*
480
479
  * If we are unpublishing the latest revision, let's also update the latest revision entry's status in ES.
481
480
  */
482
481
  if (latestPage.id === page.id) {
483
- items.push(entity.putBatch({
482
+ entityBatch.put({
484
483
  ...page,
485
484
  TYPE: (0, _keys.createLatestType)(),
486
485
  PK: (0, _keys.createPartitionKey)(page),
487
486
  SK: (0, _keys.createLatestSortKey)()
488
- }));
489
- esItems.push(esEntity.putBatch({
487
+ });
488
+ elasticsearchEntityBatch.put({
490
489
  PK: (0, _keys.createPartitionKey)(page),
491
490
  SK: (0, _keys.createLatestSortKey)(),
492
491
  index: _configurations.configurations.es(page).index,
493
492
  data: (0, _helpers.getESLatestPageData)(plugins, page)
494
- }));
493
+ });
495
494
  }
496
- esItems.push(esEntity.deleteBatch({
497
- PK: (0, _keys.createPartitionKey)(page),
498
- SK: (0, _keys.createPublishedSortKey)()
499
- }));
500
495
  try {
501
- await (0, _batchWrite.batchWriteAll)({
502
- table: entity.table,
503
- items
504
- });
496
+ await entityBatch.execute();
505
497
  } catch (ex) {
506
498
  throw new _error.default(ex.message || "Could not update all the page records when unpublishing.", ex.code || "UPDATE_RECORDS_ERROR");
507
499
  }
508
- /**
509
- * No need to go further if no Elasticsearch items to be applied.
510
- */
511
- if (esItems.length === 0) {
512
- return page;
513
- }
514
500
  try {
515
- await (0, _batchWrite.batchWriteAll)({
516
- table: esEntity.table,
517
- items: esItems
518
- });
501
+ await elasticsearchEntityBatch.execute();
519
502
  } catch (ex) {
520
503
  throw new _error.default(ex.message || "Could not update all the page Elasticsearch records when unpublishing.", ex.code || "UPDATE_ELASTICSEARCH_RECORDS_ERROR");
521
504
  }
@@ -762,14 +745,14 @@ const createPageStorageOperations = params => {
762
745
  };
763
746
  let items = [];
764
747
  try {
765
- items = await (0, _query.queryAll)(queryAllParams);
748
+ items = await (0, _dbDynamodb.queryAll)(queryAllParams);
766
749
  } catch (ex) {
767
750
  throw new _error.default(ex.message || "Could not load all the revisions from requested page.", ex.code || "LOAD_PAGE_REVISIONS_ERROR", {
768
751
  params
769
752
  });
770
753
  }
771
754
  const fields = plugins.byType(_PageDynamoDbElasticsearchFieldPlugin.PageDynamoDbElasticsearchFieldPlugin.type);
772
- return (0, _sort.sortItems)({
755
+ return (0, _dbDynamodb.sortItems)({
773
756
  items: items.map(item => removePageAttributes(item)),
774
757
  fields,
775
758
  sort
@@ -1 +1 @@
1
- {"version":3,"names":["_omit","_interopRequireDefault","require","_error","_cleanup","_configurations","_apiElasticsearch","_elasticsearchQueryBody","_SearchLatestPagesPlugin","_SearchPublishedPagesPlugin","_query","_batchWrite","_helpers","_keys","_sort","_PageDynamoDbElasticsearchFieldPlugin","_dbDynamodb","_shouldIgnoreEsResponseError","_logIgnoredEsResponseError","removePageAttributes","item","omit","createPageStorageOperations","params","entity","esEntity","elasticsearch","plugins","create","page","input","versionKeys","PK","createPartitionKey","SK","createSortKey","latestKeys","createLatestSortKey","items","putBatch","TYPE","createBasicType","createLatestType","esData","getESLatestPageData","batchWriteAll","table","put","index","configurations","es","data","ex","WebinyError","message","code","createFrom","latestPage","original","update","keys","getClean","id","push","deleteOne","publishedPage","partitionKey","deleteBatch","esItems","createPublishedSortKey","createPathPartitionKey","createPathSortKey","previousLatestPage","previousLatestRecord","queryOne","options","lt","reverse","cleanupItem","length","deleteAll","queryAllParams","gte","revisions","queryAll","publishedPathEntryDeleted","revision","status","path","publish","getESPublishedPageData","createPublishedPathType","createPublishedType","unpublish","get","where","pid","published","version","includes","Number","split","pop","sortKey","list","latest","after","previousCursor","limit","initialLimit","createLimit","body","createElasticsearchQueryBody","searchPlugins","byType","SearchPublishedPagesPlugin","type","SearchLatestPagesPlugin","plugin","modifyQuery","query","args","modifySort","sort","response","esConfig","search","shouldIgnoreEsResponseError","logIgnoredEsResponseError","error","indexName","meta","hasMoreItems","totalCount","cursor","hits","total","map","_source","encodeCursor","value","listTags","tenant","locale","undefined","size","aggs","tags","terms","field","include","aggregations","Array","isArray","buckets","key","listRevisions","beginsWith","fields","PageDynamoDbElasticsearchFieldPlugin","sortItems","delete","exports"],"sources":["index.ts"],"sourcesContent":["import {\n Page,\n PageStorageOperations,\n PageStorageOperationsCreateFromParams,\n PageStorageOperationsCreateParams,\n PageStorageOperationsDeleteAllParams,\n PageStorageOperationsDeleteParams,\n PageStorageOperationsGetParams,\n PageStorageOperationsListParams,\n PageStorageOperationsListResponse,\n PageStorageOperationsListRevisionsParams,\n PageStorageOperationsListTagsParams,\n PageStorageOperationsPublishParams,\n PageStorageOperationsUnpublishParams,\n PageStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { Client } from \"@elastic/elasticsearch\";\nimport {\n ElasticsearchBoolQueryConfig,\n ElasticsearchSearchResponse\n} from \"@webiny/api-elasticsearch/types\";\nimport { configurations } from \"~/configurations\";\nimport { createLimit, encodeCursor } from \"@webiny/api-elasticsearch\";\nimport { createElasticsearchQueryBody } from \"./elasticsearchQueryBody\";\nimport { SearchLatestPagesPlugin } from \"~/plugins/definitions/SearchLatestPagesPlugin\";\nimport { SearchPublishedPagesPlugin } from \"~/plugins/definitions/SearchPublishedPagesPlugin\";\nimport { DbItem, queryAll, QueryAllParams, queryOne } from \"@webiny/db-dynamodb/utils/query\";\nimport { SearchPagesPlugin } from \"~/plugins/definitions/SearchPagesPlugin\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { getESLatestPageData, getESPublishedPageData } from \"./helpers\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport {\n createBasicType,\n createLatestSortKey,\n createLatestType,\n createPartitionKey,\n createPathPartitionKey,\n createPathSortKey,\n createPublishedPathType,\n createPublishedSortKey,\n createPublishedType,\n createSortKey\n} from \"./keys\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { PageDynamoDbElasticsearchFieldPlugin } from \"~/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin\";\nimport { getClean, put } from \"@webiny/db-dynamodb\";\nimport { shouldIgnoreEsResponseError } from \"~/operations/pages/shouldIgnoreEsResponseError\";\nimport { logIgnoredEsResponseError } from \"~/operations/pages/logIgnoredEsResponseError\";\n\n/**\n * This function removes attributes that were once present in the Page record, which we no longer need.\n */\nfunction removePageAttributes(item: Page): Page {\n return omit(item, [\"home\", \"notFound\", \"visibility\"]) as Page;\n}\n\nexport interface CreatePageStorageOperationsParams {\n entity: Entity<any>;\n esEntity: Entity<any>;\n elasticsearch: Client;\n plugins: PluginsContainer;\n}\nexport const createPageStorageOperations = (\n params: CreatePageStorageOperationsParams\n): PageStorageOperations => {\n const { entity, esEntity, elasticsearch, plugins } = params;\n\n const create = async (params: PageStorageOperationsCreateParams): Promise<Page> => {\n const { page, input } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...page,\n ...versionKeys,\n TYPE: createBasicType()\n }),\n entity.putBatch({\n ...page,\n ...latestKeys,\n TYPE: createLatestType()\n })\n ];\n const esData = getESLatestPageData(plugins, page, input);\n try {\n await batchWriteAll({\n table: entity.table,\n items: items\n });\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page.\",\n ex.code || \"CREATE_PAGE_ERROR\",\n {\n versionKeys,\n latestKeys,\n page\n }\n );\n }\n };\n\n const createFrom = async (params: PageStorageOperationsCreateFromParams): Promise<Page> => {\n const { page, latestPage, original } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n ...versionKeys\n }),\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n })\n ];\n\n const esData = getESLatestPageData(plugins, page);\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page from existing page.\",\n ex.code || \"CREATE_PAGE_FROM_ERROR\",\n {\n versionKeys,\n latestKeys,\n latestPage,\n original,\n page\n }\n );\n }\n };\n\n const update = async (params: PageStorageOperationsUpdateParams): Promise<Page> => {\n const { original, page, input } = params;\n\n const keys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n\n const latestKeys = {\n ...keys,\n SK: createLatestSortKey()\n };\n const latestPage = await getClean<Page>({\n entity,\n keys: latestKeys\n });\n\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n ...keys\n })\n ];\n\n const esData = getESLatestPageData(plugins, page, input);\n\n if (latestPage && latestPage?.id === page.id) {\n /**\n * We also update the regular record.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n })\n );\n }\n /**\n * Unfortunately we cannot push regular and es record in the batch write because they are two separate tables.\n */\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update existing page.\",\n ex.code || \"UPDATE_PAGE_ERROR\",\n {\n original,\n page,\n latestPage,\n latestKeys,\n keys\n }\n );\n }\n };\n\n /**\n * In case of delete, we must delete records:\n * - revision\n * - path if published\n * Update:\n * - latest\n */\n const deleteOne = async (\n params: PageStorageOperationsDeleteParams\n ): Promise<[Page, Page | null]> => {\n const { page, latestPage, publishedPage } = params;\n\n const partitionKey = createPartitionKey(page);\n\n const items = [\n entity.deleteBatch({\n PK: partitionKey,\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n if (publishedPage && publishedPage.id === page.id) {\n items.push(\n entity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n })\n );\n esItems.push(\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n }\n let previousLatestPage: Page | null = null;\n if (latestPage && latestPage.id === page.id) {\n const previousLatestRecord = await queryOne<Page>({\n entity,\n partitionKey,\n options: {\n lt: createSortKey(latestPage),\n reverse: true\n }\n });\n if (previousLatestRecord) {\n items.push(\n entity.putBatch({\n ...previousLatestRecord,\n TYPE: createLatestType(),\n PK: partitionKey,\n SK: createLatestSortKey()\n })\n );\n esItems.push(\n esEntity.putBatch({\n PK: partitionKey,\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, previousLatestRecord)\n })\n );\n previousLatestPage = cleanupItem(entity, previousLatestRecord);\n }\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page records.\",\n ex.code || \"BATCH_WRITE_RECORDS_ERROR\"\n );\n }\n if (esItems.length === 0) {\n return [page, previousLatestPage];\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page Elasticsearch records.\",\n ex.code || \"BATCH_WRITE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page, previousLatestPage];\n };\n\n /**\n * In case of deleteAll, we must delete records:\n * - latest\n * - published\n * - path if published\n * - revision\n * - es latest\n * - es published\n */\n const deleteAll = async (params: PageStorageOperationsDeleteAllParams): Promise<[Page]> => {\n const { page } = params;\n\n const partitionKey = createPartitionKey(page);\n const queryAllParams = {\n entity,\n partitionKey,\n options: {\n gte: \" \"\n }\n };\n let revisions: DbItem<Page>[];\n try {\n revisions = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query for all revisions of the page.\",\n ex.code || \"LIST_REVISIONS_ERROR\",\n {\n params: queryAllParams\n }\n );\n }\n\n /**\n * We need to go through all possible entries and delete them.\n * Also, delete the published entry path record.\n */\n const items = [];\n let publishedPathEntryDeleted = false;\n for (const revision of revisions) {\n if (revision.status === \"published\" && !publishedPathEntryDeleted) {\n publishedPathEntryDeleted = true;\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: revision.path\n })\n );\n }\n items.push(\n entity.deleteBatch({\n PK: revision.PK,\n SK: revision.SK\n })\n );\n }\n const esItems = [\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createLatestSortKey()\n })\n ];\n /**\n * Delete published record if it is published.\n */\n if (publishedPathEntryDeleted) {\n esItems.push(\n esEntity.deleteBatch({\n PK: partitionKey,\n SK: createPublishedSortKey()\n })\n );\n }\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page records.\",\n ex.code || \"DELETE_RECORDS_ERROR\"\n );\n }\n try {\n await batchWriteAll({\n table: entity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page Elasticsearch records.\",\n ex.code || \"DELETE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page];\n };\n\n const publish = async (params: PageStorageOperationsPublishParams): Promise<Page> => {\n const { page, latestPage, publishedPage } = params;\n\n page.status = \"published\";\n\n /**\n * Update the given revision of the page.\n */\n const items = [\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n /**\n * If we are publishing the latest revision, update the latest revision\n * status in ES. We also need to update the latest page revision entry in ES.\n */\n if (latestPage.id === page.id) {\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n })\n );\n\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n })\n );\n }\n /**\n * If we already have a published revision, and it's not the revision being published:\n * - set the existing published revision to \"unpublished\"\n */\n if (publishedPage && publishedPage.id !== page.id) {\n items.push(\n entity.putBatch({\n ...publishedPage,\n status: \"unpublished\",\n PK: createPartitionKey(publishedPage),\n SK: createSortKey(publishedPage)\n })\n );\n /**\n * Remove old published path if required.\n */\n if (publishedPage.path !== page.path) {\n items.push(\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: publishedPage.path\n })\n );\n }\n }\n\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey(),\n index: configurations.es(page).index,\n data: getESPublishedPageData(plugins, page)\n })\n );\n\n /**\n * Update or insert published path.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createPublishedPathType(),\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n })\n );\n /**\n * Update or insert published page.\n */\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createPublishedType(),\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n })\n );\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when publishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n /**\n * No point in continuing if there are no items in Elasticsearch data\n */\n if (esItems.length === 0) {\n return page;\n }\n try {\n await batchWriteAll({\n table: esEntity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when publishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const unpublish = async (params: PageStorageOperationsUnpublishParams): Promise<Page> => {\n const { page, latestPage } = params;\n\n page.status = \"unpublished\";\n\n const items = [\n entity.deleteBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n }),\n entity.deleteBatch({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n }),\n entity.putBatch({\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n })\n ];\n const esItems = [];\n /*\n * If we are unpublishing the latest revision, let's also update the latest revision entry's status in ES.\n */\n if (latestPage.id === page.id) {\n items.push(\n entity.putBatch({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n })\n );\n esItems.push(\n esEntity.putBatch({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n })\n );\n }\n\n esItems.push(\n esEntity.deleteBatch({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n })\n );\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when unpublishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n /**\n * No need to go further if no Elasticsearch items to be applied.\n */\n if (esItems.length === 0) {\n return page;\n }\n try {\n await batchWriteAll({\n table: esEntity.table,\n items: esItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when unpublishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const get = async (params: PageStorageOperationsGetParams): Promise<Page | null> => {\n const { where } = params;\n const { pid, id, path, published } = where;\n let { version } = where;\n /**\n * In case of having full ID and not having version we can take the version from the id.\n */\n if (id && id.includes(\"#\") && !version) {\n version = Number(id.split(\"#\").pop());\n }\n let partitionKey: string | null = null;\n let sortKey: string;\n if (path) {\n partitionKey = createPathPartitionKey(where);\n sortKey = path;\n } else if (published) {\n sortKey = createPublishedSortKey();\n } else if (version) {\n sortKey = createSortKey({\n version\n });\n } else {\n sortKey = createLatestSortKey();\n }\n /**\n * If partition key is still undefined, create one with id or pid\n */\n if (!partitionKey) {\n partitionKey = createPartitionKey({\n ...where,\n id: pid || (id as string)\n });\n }\n const keys = {\n PK: partitionKey,\n SK: sortKey\n };\n try {\n return await getClean({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page by given params.\",\n ex.code || \"GET_PAGE_ERROR\",\n {\n where,\n keys\n }\n );\n }\n };\n\n const list = async (\n params: PageStorageOperationsListParams\n ): Promise<PageStorageOperationsListResponse> => {\n /**\n * We do not allow loading both published and latest at the same time.\n * @see PageStorageOperationsListWhere\n */\n if (params.where.published && params.where.latest) {\n throw new WebinyError(\n \"Both published and latest cannot be defined at the same time.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n const { after: previousCursor = null, limit: initialLimit } = params;\n\n const limit = createLimit(initialLimit, 50);\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n ...params.where\n },\n limit,\n after: previousCursor,\n plugins\n });\n\n let searchPlugins: SearchPagesPlugin[] = [];\n if (params.where.published) {\n searchPlugins = plugins.byType<SearchPublishedPagesPlugin>(\n SearchPublishedPagesPlugin.type\n );\n } else if (params.where.latest) {\n searchPlugins = plugins.byType<SearchLatestPagesPlugin>(SearchLatestPagesPlugin.type);\n } else {\n throw new WebinyError(\n \"Only published or latest can be listed. Missing where condition.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n for (const plugin of searchPlugins) {\n /**\n * Apply query modifications\n */\n plugin.modifyQuery({\n query: body.query as unknown as ElasticsearchBoolQueryConfig,\n args: params,\n plugins\n });\n\n /**\n * Apply sort modifications\n */\n plugin.modifySort({\n sort: body.sort,\n args: params,\n plugins\n });\n }\n\n let response: ElasticsearchSearchResponse<Page>;\n const esConfig = configurations.es(params.where);\n try {\n response = await elasticsearch.search({\n ...esConfig,\n body\n });\n } catch (ex) {\n /**\n * Do not throw the error if Elasticsearch index does not exist.\n * In some CRUDs we try to get list of pages but index was not created yet.\n */\n if (shouldIgnoreEsResponseError(ex)) {\n logIgnoredEsResponseError({\n error: ex,\n indexName: esConfig.index\n });\n return {\n items: [],\n meta: {\n hasMoreItems: false,\n totalCount: 0,\n cursor: null\n }\n };\n }\n throw new WebinyError(\n ex.message || \"Could not load pages by given Elasticsearch body.\",\n ex.code || \"LIST_PAGES_ERROR\",\n {\n body\n }\n );\n }\n const { hits, total } = response.body.hits;\n const items = hits.map(item => item._source).map(item => removePageAttributes(item));\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n /**\n * Remove the last item from results, we don't want to include it.\n */\n items.pop();\n }\n /**\n * Cursor is the `sort` value of the last item in the array.\n * https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after\n */\n const cursor =\n items.length > 0 && hasMoreItems\n ? encodeCursor(hits[items.length - 1].sort) || null\n : null;\n return {\n items,\n meta: {\n hasMoreItems,\n totalCount: total.value,\n cursor\n }\n };\n };\n\n const listTags = async (params: PageStorageOperationsListTagsParams): Promise<string[]> => {\n const { where } = params;\n\n const tenant: string = where.tenant;\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n locale: where.locale,\n search: undefined,\n tenant\n },\n sort: [],\n after: null,\n limit: 100000,\n plugins\n });\n\n const esConfig = configurations.es(where);\n\n try {\n const response: ElasticsearchSearchResponse<string> = await elasticsearch.search({\n ...esConfig,\n body: {\n ...body,\n sort: undefined,\n limit: undefined,\n size: 0,\n aggs: {\n tags: {\n terms: {\n field: \"tags.keyword\",\n include: `.*${where.search}.*`,\n size: 10\n }\n }\n }\n }\n });\n\n const tags = response.body.aggregations[\"tags\"];\n if (!tags || Array.isArray(tags.buckets) === false) {\n return [];\n }\n return tags.buckets.map(item => item.key);\n } catch (ex) {\n if (shouldIgnoreEsResponseError(ex)) {\n logIgnoredEsResponseError({\n error: ex,\n indexName: esConfig.index\n });\n return [];\n }\n throw new WebinyError(\n ex.message || \"Could not list tags by given parameters.\",\n ex.code || \"LIST_TAGS_ERROR\",\n {\n body,\n where\n }\n );\n }\n };\n\n const listRevisions = async (\n params: PageStorageOperationsListRevisionsParams\n ): Promise<Page[]> => {\n const { where, sort } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n ...where,\n id: where.pid\n }),\n options: {\n beginsWith: \"REV#\",\n reverse: false\n }\n };\n\n let items: Page[] = [];\n try {\n items = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load all the revisions from requested page.\",\n ex.code || \"LOAD_PAGE_REVISIONS_ERROR\",\n {\n params\n }\n );\n }\n\n const fields = plugins.byType<PageDynamoDbElasticsearchFieldPlugin>(\n PageDynamoDbElasticsearchFieldPlugin.type\n );\n\n return sortItems({\n items: items.map(item => removePageAttributes(item)),\n fields,\n sort\n });\n };\n\n return {\n create,\n createFrom,\n update,\n delete: deleteOne,\n deleteAll: deleteAll,\n publish,\n unpublish,\n get,\n list,\n listRevisions,\n listTags\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_omit","_interopRequireDefault","require","_error","_cleanup","_configurations","_apiElasticsearch","_elasticsearchQueryBody","_SearchLatestPagesPlugin","_SearchPublishedPagesPlugin","_dbDynamodb","_helpers","_keys","_PageDynamoDbElasticsearchFieldPlugin","_shouldIgnoreEsResponseError","_logIgnoredEsResponseError","removePageAttributes","item","omit","createPageStorageOperations","params","entity","esEntity","elasticsearch","plugins","create","page","input","versionKeys","PK","createPartitionKey","SK","createSortKey","latestKeys","createLatestSortKey","entityBatch","createEntityWriteBatch","put","TYPE","createBasicType","createLatestType","esData","getESLatestPageData","execute","index","configurations","es","data","ex","WebinyError","message","code","createFrom","latestPage","original","update","keys","getClean","id","deleteOne","publishedPage","partitionKey","delete","elasticsearchEntityBatch","createPublishedSortKey","createPathPartitionKey","createPathSortKey","previousLatestPage","previousLatestRecord","queryOne","options","lt","reverse","cleanupItem","deleteAll","queryAllParams","gte","revisions","queryAll","publishedPathEntryDeleted","revision","status","path","publish","getESPublishedPageData","createPublishedPathType","createPublishedType","unpublish","get","where","pid","published","version","includes","Number","split","pop","sortKey","list","latest","after","previousCursor","limit","initialLimit","createLimit","body","createElasticsearchQueryBody","searchPlugins","byType","SearchPublishedPagesPlugin","type","SearchLatestPagesPlugin","plugin","modifyQuery","query","args","modifySort","sort","response","esConfig","search","shouldIgnoreEsResponseError","logIgnoredEsResponseError","error","indexName","items","meta","hasMoreItems","totalCount","cursor","hits","total","map","_source","length","encodeCursor","value","listTags","tenant","locale","undefined","size","aggs","tags","terms","field","include","aggregations","Array","isArray","buckets","key","listRevisions","beginsWith","fields","PageDynamoDbElasticsearchFieldPlugin","sortItems","exports"],"sources":["index.ts"],"sourcesContent":["import type {\n Page,\n PageStorageOperations,\n PageStorageOperationsCreateFromParams,\n PageStorageOperationsCreateParams,\n PageStorageOperationsDeleteAllParams,\n PageStorageOperationsDeleteParams,\n PageStorageOperationsGetParams,\n PageStorageOperationsListParams,\n PageStorageOperationsListResponse,\n PageStorageOperationsListRevisionsParams,\n PageStorageOperationsListTagsParams,\n PageStorageOperationsPublishParams,\n PageStorageOperationsUnpublishParams,\n PageStorageOperationsUpdateParams\n} from \"@webiny/api-page-builder/types\";\nimport type { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport type { Client } from \"@elastic/elasticsearch\";\nimport type {\n ElasticsearchBoolQueryConfig,\n ElasticsearchSearchResponse\n} from \"@webiny/api-elasticsearch/types\";\nimport { configurations } from \"~/configurations\";\nimport { createLimit, encodeCursor } from \"@webiny/api-elasticsearch\";\nimport { createElasticsearchQueryBody } from \"./elasticsearchQueryBody\";\nimport { SearchLatestPagesPlugin } from \"~/plugins/definitions/SearchLatestPagesPlugin\";\nimport { SearchPublishedPagesPlugin } from \"~/plugins/definitions/SearchPublishedPagesPlugin\";\nimport {\n createEntityWriteBatch,\n getClean,\n put,\n queryAll,\n QueryAllParams,\n queryOne,\n sortItems\n} from \"@webiny/db-dynamodb\";\nimport { SearchPagesPlugin } from \"~/plugins/definitions/SearchPagesPlugin\";\nimport { getESLatestPageData, getESPublishedPageData } from \"./helpers\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport {\n createBasicType,\n createLatestSortKey,\n createLatestType,\n createPartitionKey,\n createPathPartitionKey,\n createPathSortKey,\n createPublishedPathType,\n createPublishedSortKey,\n createPublishedType,\n createSortKey\n} from \"./keys\";\nimport { PageDynamoDbElasticsearchFieldPlugin } from \"~/plugins/definitions/PageDynamoDbElasticsearchFieldPlugin\";\nimport { shouldIgnoreEsResponseError } from \"~/operations/pages/shouldIgnoreEsResponseError\";\nimport { logIgnoredEsResponseError } from \"~/operations/pages/logIgnoredEsResponseError\";\n\n/**\n * This function removes attributes that were once present in the Page record, which we no longer need.\n */\nfunction removePageAttributes(item: Page): Page {\n return omit(item, [\"home\", \"notFound\", \"visibility\"]) as Page;\n}\n\nexport interface CreatePageStorageOperationsParams {\n entity: Entity<any>;\n esEntity: Entity<any>;\n elasticsearch: Client;\n plugins: PluginsContainer;\n}\nexport const createPageStorageOperations = (\n params: CreatePageStorageOperationsParams\n): PageStorageOperations => {\n const { entity, esEntity, elasticsearch, plugins } = params;\n\n const create = async (params: PageStorageOperationsCreateParams): Promise<Page> => {\n const { page, input } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...page,\n ...versionKeys,\n TYPE: createBasicType()\n },\n {\n ...page,\n ...latestKeys,\n TYPE: createLatestType()\n }\n ]\n });\n\n const esData = getESLatestPageData(plugins, page, input);\n try {\n await entityBatch.execute();\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page.\",\n ex.code || \"CREATE_PAGE_ERROR\",\n {\n versionKeys,\n latestKeys,\n page\n }\n );\n }\n };\n\n const createFrom = async (params: PageStorageOperationsCreateFromParams): Promise<Page> => {\n const { page, latestPage, original } = params;\n\n const versionKeys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n const latestKeys = {\n ...versionKeys,\n SK: createLatestSortKey()\n };\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...page,\n TYPE: createBasicType(),\n ...versionKeys\n },\n {\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n }\n ]\n });\n\n const esData = getESLatestPageData(plugins, page);\n\n try {\n await entityBatch.execute();\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create new page from existing page.\",\n ex.code || \"CREATE_PAGE_FROM_ERROR\",\n {\n versionKeys,\n latestKeys,\n latestPage,\n original,\n page\n }\n );\n }\n };\n\n const update = async (params: PageStorageOperationsUpdateParams): Promise<Page> => {\n const { original, page, input } = params;\n\n const keys = {\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n };\n\n const latestKeys = {\n ...keys,\n SK: createLatestSortKey()\n };\n const latestPage = await getClean<Page>({\n entity,\n keys: latestKeys\n });\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...page,\n TYPE: createBasicType(),\n ...keys\n }\n ]\n });\n\n const esData = getESLatestPageData(plugins, page, input);\n\n if (latestPage && latestPage?.id === page.id) {\n /**\n * We also update the regular record.\n */\n entityBatch.put({\n ...page,\n TYPE: createLatestType(),\n ...latestKeys\n });\n }\n /**\n * Unfortunately we cannot push regular and es record in the batch write because they are two separate tables.\n */\n try {\n await entityBatch.execute();\n\n await put({\n entity: esEntity,\n item: {\n index: configurations.es(page).index,\n data: esData,\n ...latestKeys\n }\n });\n\n return page;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update existing page.\",\n ex.code || \"UPDATE_PAGE_ERROR\",\n {\n original,\n page,\n latestPage,\n latestKeys,\n keys\n }\n );\n }\n };\n\n /**\n * In case of delete, we must delete records:\n * - revision\n * - path if published\n * Update:\n * - latest\n */\n const deleteOne = async (\n params: PageStorageOperationsDeleteParams\n ): Promise<[Page, Page | null]> => {\n const { page, latestPage, publishedPage } = params;\n\n const partitionKey = createPartitionKey(page);\n\n const entityBatch = createEntityWriteBatch({\n entity,\n delete: [\n {\n PK: partitionKey,\n SK: createSortKey(page)\n }\n ]\n });\n\n const elasticsearchEntityBatch = createEntityWriteBatch({\n entity: esEntity\n });\n\n if (publishedPage && publishedPage.id === page.id) {\n entityBatch.delete({\n PK: partitionKey,\n SK: createPublishedSortKey()\n });\n\n entityBatch.delete({\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n });\n\n elasticsearchEntityBatch.delete({\n PK: partitionKey,\n SK: createPublishedSortKey()\n });\n }\n let previousLatestPage: Page | null = null;\n if (latestPage && latestPage.id === page.id) {\n const previousLatestRecord = await queryOne<Page>({\n entity,\n partitionKey,\n options: {\n lt: createSortKey(latestPage),\n reverse: true\n }\n });\n if (previousLatestRecord) {\n entityBatch.put({\n ...previousLatestRecord,\n TYPE: createLatestType(),\n PK: partitionKey,\n SK: createLatestSortKey()\n });\n\n elasticsearchEntityBatch.put({\n PK: partitionKey,\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, previousLatestRecord)\n });\n\n previousLatestPage = cleanupItem(entity, previousLatestRecord);\n }\n }\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page records.\",\n ex.code || \"BATCH_WRITE_RECORDS_ERROR\"\n );\n }\n\n try {\n await elasticsearchEntityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch write all the page Elasticsearch records.\",\n ex.code || \"BATCH_WRITE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page, previousLatestPage];\n };\n\n /**\n * In case of deleteAll, we must delete records:\n * - latest\n * - published\n * - path if published\n * - revision\n * - es latest\n * - es published\n */\n const deleteAll = async (params: PageStorageOperationsDeleteAllParams): Promise<[Page]> => {\n const { page } = params;\n\n const partitionKey = createPartitionKey(page);\n const queryAllParams = {\n entity,\n partitionKey,\n options: {\n gte: \" \"\n }\n };\n let revisions: Awaited<ReturnType<typeof queryAll<Page>>>;\n try {\n revisions = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query for all revisions of the page.\",\n ex.code || \"LIST_REVISIONS_ERROR\",\n {\n params: queryAllParams\n }\n );\n }\n\n /**\n * We need to go through all possible entries and delete them.\n * Also, delete the published entry path record.\n */\n\n const entityBatch = createEntityWriteBatch({\n entity\n });\n const elasticsearchEntityBatch = createEntityWriteBatch({\n entity: esEntity\n });\n\n let publishedPathEntryDeleted = false;\n for (const revision of revisions) {\n if (revision.status === \"published\" && !publishedPathEntryDeleted) {\n publishedPathEntryDeleted = true;\n entityBatch.delete({\n PK: createPathPartitionKey(page),\n SK: revision.path\n });\n }\n entityBatch.delete({\n PK: revision.PK,\n SK: revision.SK\n });\n }\n elasticsearchEntityBatch.delete({\n PK: partitionKey,\n SK: createLatestSortKey()\n });\n\n /**\n * Delete published record if it is published.\n */\n if (publishedPathEntryDeleted) {\n elasticsearchEntityBatch.delete({\n PK: partitionKey,\n SK: createPublishedSortKey()\n });\n }\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page records.\",\n ex.code || \"DELETE_RECORDS_ERROR\"\n );\n }\n try {\n await elasticsearchEntityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete all the page Elasticsearch records.\",\n ex.code || \"DELETE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return [page];\n };\n\n const publish = async (params: PageStorageOperationsPublishParams): Promise<Page> => {\n const { page, latestPage, publishedPage } = params;\n\n page.status = \"published\";\n\n /**\n * Update the given revision of the page.\n */\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n }\n ]\n });\n const elasticsearchEntityBatch = createEntityWriteBatch({\n entity: esEntity\n });\n /**\n * If we are publishing the latest revision, update the latest revision\n * status in ES. We also need to update the latest page revision entry in ES.\n */\n if (latestPage.id === page.id) {\n entityBatch.put({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n });\n\n elasticsearchEntityBatch.put({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n });\n }\n /**\n * If we already have a published revision, and it's not the revision being published:\n * - set the existing published revision to \"unpublished\"\n */\n if (publishedPage && publishedPage.id !== page.id) {\n entityBatch.put({\n ...publishedPage,\n status: \"unpublished\",\n PK: createPartitionKey(publishedPage),\n SK: createSortKey(publishedPage)\n });\n\n /**\n * Remove old published path if required.\n */\n if (publishedPage.path !== page.path) {\n entityBatch.delete({\n PK: createPathPartitionKey(page),\n SK: publishedPage.path\n });\n }\n }\n\n elasticsearchEntityBatch.put({\n PK: createPartitionKey(page),\n SK: createPublishedSortKey(),\n index: configurations.es(page).index,\n data: getESPublishedPageData(plugins, page)\n });\n\n /**\n * Update or insert published path.\n */\n entityBatch.put({\n ...page,\n TYPE: createPublishedPathType(),\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n });\n\n /**\n * Update or insert published page.\n */\n entityBatch.put({\n ...page,\n TYPE: createPublishedType(),\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n });\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when publishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n\n try {\n await elasticsearchEntityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when publishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const unpublish = async (params: PageStorageOperationsUnpublishParams): Promise<Page> => {\n const { page, latestPage } = params;\n\n page.status = \"unpublished\";\n\n const entityBatch = createEntityWriteBatch({\n entity,\n delete: [\n {\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n },\n {\n PK: createPathPartitionKey(page),\n SK: createPathSortKey(page)\n }\n ],\n put: [\n {\n ...page,\n TYPE: createBasicType(),\n PK: createPartitionKey(page),\n SK: createSortKey(page)\n }\n ]\n });\n\n const elasticsearchEntityBatch = createEntityWriteBatch({\n entity: esEntity,\n delete: [\n {\n PK: createPartitionKey(page),\n SK: createPublishedSortKey()\n }\n ]\n });\n /*\n * If we are unpublishing the latest revision, let's also update the latest revision entry's status in ES.\n */\n if (latestPage.id === page.id) {\n entityBatch.put({\n ...page,\n TYPE: createLatestType(),\n PK: createPartitionKey(page),\n SK: createLatestSortKey()\n });\n\n elasticsearchEntityBatch.put({\n PK: createPartitionKey(page),\n SK: createLatestSortKey(),\n index: configurations.es(page).index,\n data: getESLatestPageData(plugins, page)\n });\n }\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update all the page records when unpublishing.\",\n ex.code || \"UPDATE_RECORDS_ERROR\"\n );\n }\n\n try {\n await elasticsearchEntityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not update all the page Elasticsearch records when unpublishing.\",\n ex.code || \"UPDATE_ELASTICSEARCH_RECORDS_ERROR\"\n );\n }\n return page;\n };\n\n const get = async (params: PageStorageOperationsGetParams): Promise<Page | null> => {\n const { where } = params;\n const { pid, id, path, published } = where;\n let { version } = where;\n /**\n * In case of having full ID and not having version we can take the version from the id.\n */\n if (id && id.includes(\"#\") && !version) {\n version = Number(id.split(\"#\").pop());\n }\n let partitionKey: string | null = null;\n let sortKey: string;\n if (path) {\n partitionKey = createPathPartitionKey(where);\n sortKey = path;\n } else if (published) {\n sortKey = createPublishedSortKey();\n } else if (version) {\n sortKey = createSortKey({\n version\n });\n } else {\n sortKey = createLatestSortKey();\n }\n /**\n * If partition key is still undefined, create one with id or pid\n */\n if (!partitionKey) {\n partitionKey = createPartitionKey({\n ...where,\n id: pid || (id as string)\n });\n }\n const keys = {\n PK: partitionKey,\n SK: sortKey\n };\n try {\n return await getClean({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load page by given params.\",\n ex.code || \"GET_PAGE_ERROR\",\n {\n where,\n keys\n }\n );\n }\n };\n\n const list = async (\n params: PageStorageOperationsListParams\n ): Promise<PageStorageOperationsListResponse> => {\n /**\n * We do not allow loading both published and latest at the same time.\n * @see PageStorageOperationsListWhere\n */\n if (params.where.published && params.where.latest) {\n throw new WebinyError(\n \"Both published and latest cannot be defined at the same time.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n const { after: previousCursor = null, limit: initialLimit } = params;\n\n const limit = createLimit(initialLimit, 50);\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n ...params.where\n },\n limit,\n after: previousCursor,\n plugins\n });\n\n let searchPlugins: SearchPagesPlugin[] = [];\n if (params.where.published) {\n searchPlugins = plugins.byType<SearchPublishedPagesPlugin>(\n SearchPublishedPagesPlugin.type\n );\n } else if (params.where.latest) {\n searchPlugins = plugins.byType<SearchLatestPagesPlugin>(SearchLatestPagesPlugin.type);\n } else {\n throw new WebinyError(\n \"Only published or latest can be listed. Missing where condition.\",\n \"MALFORMED_WHERE_ERROR\",\n {\n where: params.where\n }\n );\n }\n\n for (const plugin of searchPlugins) {\n /**\n * Apply query modifications\n */\n plugin.modifyQuery({\n query: body.query as unknown as ElasticsearchBoolQueryConfig,\n args: params,\n plugins\n });\n\n /**\n * Apply sort modifications\n */\n plugin.modifySort({\n sort: body.sort,\n args: params,\n plugins\n });\n }\n\n let response: ElasticsearchSearchResponse<Page>;\n const esConfig = configurations.es(params.where);\n try {\n response = await elasticsearch.search({\n ...esConfig,\n body\n });\n } catch (ex) {\n /**\n * Do not throw the error if Elasticsearch index does not exist.\n * In some CRUDs we try to get list of pages but index was not created yet.\n */\n if (shouldIgnoreEsResponseError(ex)) {\n logIgnoredEsResponseError({\n error: ex,\n indexName: esConfig.index\n });\n return {\n items: [],\n meta: {\n hasMoreItems: false,\n totalCount: 0,\n cursor: null\n }\n };\n }\n throw new WebinyError(\n ex.message || \"Could not load pages by given Elasticsearch body.\",\n ex.code || \"LIST_PAGES_ERROR\",\n {\n body\n }\n );\n }\n const { hits, total } = response.body.hits;\n const items = hits.map(item => item._source).map(item => removePageAttributes(item));\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n /**\n * Remove the last item from results, we don't want to include it.\n */\n items.pop();\n }\n /**\n * Cursor is the `sort` value of the last item in the array.\n * https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after\n */\n const cursor =\n items.length > 0 && hasMoreItems\n ? encodeCursor(hits[items.length - 1].sort) || null\n : null;\n return {\n items,\n meta: {\n hasMoreItems,\n totalCount: total.value,\n cursor\n }\n };\n };\n\n const listTags = async (params: PageStorageOperationsListTagsParams): Promise<string[]> => {\n const { where } = params;\n\n const tenant: string = where.tenant;\n const body = createElasticsearchQueryBody({\n ...params,\n where: {\n locale: where.locale,\n search: undefined,\n tenant\n },\n sort: [],\n after: null,\n limit: 100000,\n plugins\n });\n\n const esConfig = configurations.es(where);\n\n try {\n const response: ElasticsearchSearchResponse<string> = await elasticsearch.search({\n ...esConfig,\n body: {\n ...body,\n sort: undefined,\n limit: undefined,\n size: 0,\n aggs: {\n tags: {\n terms: {\n field: \"tags.keyword\",\n include: `.*${where.search}.*`,\n size: 10\n }\n }\n }\n }\n });\n\n const tags = response.body.aggregations[\"tags\"];\n if (!tags || Array.isArray(tags.buckets) === false) {\n return [];\n }\n return tags.buckets.map(item => item.key);\n } catch (ex) {\n if (shouldIgnoreEsResponseError(ex)) {\n logIgnoredEsResponseError({\n error: ex,\n indexName: esConfig.index\n });\n return [];\n }\n throw new WebinyError(\n ex.message || \"Could not list tags by given parameters.\",\n ex.code || \"LIST_TAGS_ERROR\",\n {\n body,\n where\n }\n );\n }\n };\n\n const listRevisions = async (\n params: PageStorageOperationsListRevisionsParams\n ): Promise<Page[]> => {\n const { where, sort } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n ...where,\n id: where.pid\n }),\n options: {\n beginsWith: \"REV#\",\n reverse: false\n }\n };\n\n let items: Page[] = [];\n try {\n items = await queryAll<Page>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load all the revisions from requested page.\",\n ex.code || \"LOAD_PAGE_REVISIONS_ERROR\",\n {\n params\n }\n );\n }\n\n const fields = plugins.byType<PageDynamoDbElasticsearchFieldPlugin>(\n PageDynamoDbElasticsearchFieldPlugin.type\n );\n\n return sortItems({\n items: items.map(item => removePageAttributes(item)),\n fields,\n sort\n });\n };\n\n return {\n create,\n createFrom,\n update,\n delete: deleteOne,\n deleteAll: deleteAll,\n publish,\n unpublish,\n get,\n list,\n listRevisions,\n listTags\n };\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-page-builder-so-ddb-es",
3
- "version": "5.41.4-beta.3",
3
+ "version": "5.41.4-beta.5",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "@webiny/api-page-builder",
@@ -23,15 +23,15 @@
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
25
  "@babel/runtime": "7.24.1",
26
- "@webiny/api-elasticsearch": "5.41.4-beta.3",
27
- "@webiny/api-elasticsearch-tasks": "5.41.4-beta.3",
28
- "@webiny/api-page-builder": "5.41.4-beta.3",
29
- "@webiny/aws-sdk": "5.41.4-beta.3",
30
- "@webiny/db-dynamodb": "5.41.4-beta.3",
31
- "@webiny/error": "5.41.4-beta.3",
32
- "@webiny/handler-db": "5.41.4-beta.3",
33
- "@webiny/plugins": "5.41.4-beta.3",
34
- "@webiny/utils": "5.41.4-beta.3",
26
+ "@webiny/api-elasticsearch": "5.41.4-beta.5",
27
+ "@webiny/api-elasticsearch-tasks": "5.41.4-beta.5",
28
+ "@webiny/api-page-builder": "5.41.4-beta.5",
29
+ "@webiny/aws-sdk": "5.41.4-beta.5",
30
+ "@webiny/db-dynamodb": "5.41.4-beta.5",
31
+ "@webiny/error": "5.41.4-beta.5",
32
+ "@webiny/handler-db": "5.41.4-beta.5",
33
+ "@webiny/plugins": "5.41.4-beta.5",
34
+ "@webiny/utils": "5.41.4-beta.5",
35
35
  "dataloader": "2.2.1",
36
36
  "elastic-ts": "0.8.0",
37
37
  "lodash": "4.17.21"
@@ -43,25 +43,25 @@
43
43
  "@babel/preset-typescript": "7.24.1",
44
44
  "@elastic/elasticsearch": "7.12.0",
45
45
  "@elastic/elasticsearch-mock": "0.3.0",
46
- "@webiny/api": "5.41.4-beta.3",
47
- "@webiny/api-aco": "5.41.4-beta.3",
48
- "@webiny/api-dynamodb-to-elasticsearch": "5.41.4-beta.3",
49
- "@webiny/api-headless-cms": "5.41.4-beta.3",
50
- "@webiny/api-headless-cms-ddb-es": "5.41.4-beta.3",
51
- "@webiny/api-i18n": "5.41.4-beta.3",
52
- "@webiny/api-i18n-ddb": "5.41.4-beta.3",
53
- "@webiny/api-page-builder-aco": "5.41.4-beta.3",
54
- "@webiny/api-prerendering-service": "5.41.4-beta.3",
55
- "@webiny/api-security": "5.41.4-beta.3",
56
- "@webiny/api-security-so-ddb": "5.41.4-beta.3",
57
- "@webiny/api-tenancy": "5.41.4-beta.3",
58
- "@webiny/api-tenancy-so-ddb": "5.41.4-beta.3",
59
- "@webiny/api-wcp": "5.41.4-beta.3",
60
- "@webiny/cli": "5.41.4-beta.3",
61
- "@webiny/handler": "5.41.4-beta.3",
62
- "@webiny/handler-aws": "5.41.4-beta.3",
63
- "@webiny/handler-graphql": "5.41.4-beta.3",
64
- "@webiny/project-utils": "5.41.4-beta.3",
46
+ "@webiny/api": "5.41.4-beta.5",
47
+ "@webiny/api-aco": "5.41.4-beta.5",
48
+ "@webiny/api-dynamodb-to-elasticsearch": "5.41.4-beta.5",
49
+ "@webiny/api-headless-cms": "5.41.4-beta.5",
50
+ "@webiny/api-headless-cms-ddb-es": "5.41.4-beta.5",
51
+ "@webiny/api-i18n": "5.41.4-beta.5",
52
+ "@webiny/api-i18n-ddb": "5.41.4-beta.5",
53
+ "@webiny/api-page-builder-aco": "5.41.4-beta.5",
54
+ "@webiny/api-prerendering-service": "5.41.4-beta.5",
55
+ "@webiny/api-security": "5.41.4-beta.5",
56
+ "@webiny/api-security-so-ddb": "5.41.4-beta.5",
57
+ "@webiny/api-tenancy": "5.41.4-beta.5",
58
+ "@webiny/api-tenancy-so-ddb": "5.41.4-beta.5",
59
+ "@webiny/api-wcp": "5.41.4-beta.5",
60
+ "@webiny/cli": "5.41.4-beta.5",
61
+ "@webiny/handler": "5.41.4-beta.5",
62
+ "@webiny/handler-aws": "5.41.4-beta.5",
63
+ "@webiny/handler-graphql": "5.41.4-beta.5",
64
+ "@webiny/project-utils": "5.41.4-beta.5",
65
65
  "graphql": "15.8.0",
66
66
  "jest": "29.7.0",
67
67
  "jest-dynalite": "3.6.1",
@@ -77,5 +77,5 @@
77
77
  "build": "yarn webiny run build",
78
78
  "watch": "yarn webiny run watch"
79
79
  },
80
- "gitHead": "1be3b755403a5151fd830e72ec31c6b83f49e292"
80
+ "gitHead": "e3f273ea63f0c426c2ddde0794d303bc8ffaa6c4"
81
81
  }