@webiny/api-headless-cms-ddb 6.4.5 → 6.6.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/abstractions/CmsDdbDataLoaders.d.ts +5 -0
  2. package/abstractions/CmsDdbDataLoaders.js +5 -0
  3. package/abstractions/CmsDdbDataLoaders.js.map +1 -0
  4. package/abstractions/CmsDdbEntryEntity.d.ts +5 -0
  5. package/abstractions/CmsDdbEntryEntity.js +5 -0
  6. package/abstractions/CmsDdbEntryEntity.js.map +1 -0
  7. package/abstractions/CmsDdbGroupEntity.d.ts +5 -0
  8. package/abstractions/CmsDdbGroupEntity.js +5 -0
  9. package/abstractions/CmsDdbGroupEntity.js.map +1 -0
  10. package/abstractions/CmsDdbModelEntity.d.ts +5 -0
  11. package/abstractions/CmsDdbModelEntity.js +5 -0
  12. package/abstractions/CmsDdbModelEntity.js.map +1 -0
  13. package/abstractions/CmsDdbTable.d.ts +5 -0
  14. package/abstractions/CmsDdbTable.js +5 -0
  15. package/abstractions/CmsDdbTable.js.map +1 -0
  16. package/index.d.ts +13 -2
  17. package/index.js +31 -71
  18. package/index.js.map +1 -1
  19. package/operations/entry/DdbCreateEntry.d.ts +16 -0
  20. package/operations/entry/DdbCreateEntry.js +77 -0
  21. package/operations/entry/DdbCreateEntry.js.map +1 -0
  22. package/operations/entry/DdbCreateEntryRevisionFrom.d.ts +16 -0
  23. package/operations/entry/DdbCreateEntryRevisionFrom.js +85 -0
  24. package/operations/entry/DdbCreateEntryRevisionFrom.js.map +1 -0
  25. package/operations/entry/DdbDeleteEntry.d.ts +16 -0
  26. package/operations/entry/DdbDeleteEntry.js +65 -0
  27. package/operations/entry/DdbDeleteEntry.js.map +1 -0
  28. package/operations/entry/DdbDeleteEntryRevision.d.ts +17 -0
  29. package/operations/entry/DdbDeleteEntryRevision.js +91 -0
  30. package/operations/entry/DdbDeleteEntryRevision.js.map +1 -0
  31. package/operations/entry/DdbDeleteMultipleEntries.d.ts +16 -0
  32. package/operations/entry/DdbDeleteMultipleEntries.js +56 -0
  33. package/operations/entry/DdbDeleteMultipleEntries.js.map +1 -0
  34. package/operations/entry/DdbGetEntriesByIds.d.ts +14 -0
  35. package/operations/entry/DdbGetEntriesByIds.js +31 -0
  36. package/operations/entry/DdbGetEntriesByIds.js.map +1 -0
  37. package/operations/entry/DdbGetEntry.d.ts +14 -0
  38. package/operations/entry/DdbGetEntry.js +27 -0
  39. package/operations/entry/DdbGetEntry.js.map +1 -0
  40. package/operations/entry/DdbGetLatestEntriesByIds.d.ts +14 -0
  41. package/operations/entry/DdbGetLatestEntriesByIds.js +31 -0
  42. package/operations/entry/DdbGetLatestEntriesByIds.js.map +1 -0
  43. package/operations/entry/DdbGetLatestRevisionByEntryId.d.ts +14 -0
  44. package/operations/entry/DdbGetLatestRevisionByEntryId.js +35 -0
  45. package/operations/entry/DdbGetLatestRevisionByEntryId.js.map +1 -0
  46. package/operations/entry/DdbGetPreviousRevision.d.ts +14 -0
  47. package/operations/entry/DdbGetPreviousRevision.js +53 -0
  48. package/operations/entry/DdbGetPreviousRevision.js.map +1 -0
  49. package/operations/entry/DdbGetPublishedEntriesByIds.d.ts +14 -0
  50. package/operations/entry/DdbGetPublishedEntriesByIds.js +31 -0
  51. package/operations/entry/DdbGetPublishedEntriesByIds.js.map +1 -0
  52. package/operations/entry/DdbGetPublishedRevisionByEntryId.d.ts +14 -0
  53. package/operations/entry/DdbGetPublishedRevisionByEntryId.js +35 -0
  54. package/operations/entry/DdbGetPublishedRevisionByEntryId.js.map +1 -0
  55. package/operations/entry/DdbGetRevisionById.d.ts +14 -0
  56. package/operations/entry/DdbGetRevisionById.js +34 -0
  57. package/operations/entry/DdbGetRevisionById.js.map +1 -0
  58. package/operations/entry/DdbGetRevisions.d.ts +14 -0
  59. package/operations/entry/DdbGetRevisions.js +33 -0
  60. package/operations/entry/DdbGetRevisions.js.map +1 -0
  61. package/operations/entry/DdbGetUniqueFieldValues.d.ts +12 -0
  62. package/operations/entry/DdbGetUniqueFieldValues.js +31 -0
  63. package/operations/entry/DdbGetUniqueFieldValues.js.map +1 -0
  64. package/operations/entry/DdbListEntries.d.ts +28 -0
  65. package/operations/entry/DdbListEntries.js +124 -0
  66. package/operations/entry/DdbListEntries.js.map +1 -0
  67. package/operations/entry/DdbMoveEntry.d.ts +14 -0
  68. package/operations/entry/DdbMoveEntry.js +57 -0
  69. package/operations/entry/DdbMoveEntry.js.map +1 -0
  70. package/operations/entry/DdbMoveToBin.d.ts +16 -0
  71. package/operations/entry/DdbMoveToBin.js +77 -0
  72. package/operations/entry/DdbMoveToBin.js.map +1 -0
  73. package/operations/entry/DdbPublishEntry.d.ts +18 -0
  74. package/operations/entry/DdbPublishEntry.js +161 -0
  75. package/operations/entry/DdbPublishEntry.js.map +1 -0
  76. package/operations/entry/DdbRestoreFromBin.d.ts +16 -0
  77. package/operations/entry/DdbRestoreFromBin.js +78 -0
  78. package/operations/entry/DdbRestoreFromBin.js.map +1 -0
  79. package/operations/entry/DdbUnpublishEntry.d.ts +17 -0
  80. package/operations/entry/DdbUnpublishEntry.js +112 -0
  81. package/operations/entry/DdbUnpublishEntry.js.map +1 -0
  82. package/operations/entry/DdbUpdateEntry.d.ts +17 -0
  83. package/operations/entry/DdbUpdateEntry.js +110 -0
  84. package/operations/entry/DdbUpdateEntry.js.map +1 -0
  85. package/operations/entry/dataLoaders.d.ts +7 -6
  86. package/operations/entry/dataLoaders.js +11 -3
  87. package/operations/entry/dataLoaders.js.map +1 -1
  88. package/operations/entry/feature.d.ts +4 -0
  89. package/operations/entry/feature.js +55 -0
  90. package/operations/entry/feature.js.map +1 -0
  91. package/operations/entry/storageEntryUtils.d.ts +8 -0
  92. package/operations/entry/storageEntryUtils.js +25 -0
  93. package/operations/entry/storageEntryUtils.js.map +1 -0
  94. package/operations/group/DdbCreateGroup.d.ts +12 -0
  95. package/operations/group/DdbCreateGroup.js +35 -0
  96. package/operations/group/DdbCreateGroup.js.map +1 -0
  97. package/operations/group/DdbDeleteGroup.d.ts +12 -0
  98. package/operations/group/DdbDeleteGroup.js +31 -0
  99. package/operations/group/DdbDeleteGroup.js.map +1 -0
  100. package/operations/group/DdbGetGroup.d.ts +12 -0
  101. package/operations/group/DdbGetGroup.js +31 -0
  102. package/operations/group/DdbGetGroup.js.map +1 -0
  103. package/operations/group/DdbListGroups.d.ts +14 -0
  104. package/operations/group/DdbListGroups.js +52 -0
  105. package/operations/group/DdbListGroups.js.map +1 -0
  106. package/operations/group/DdbUpdateGroup.d.ts +12 -0
  107. package/operations/group/DdbUpdateGroup.js +35 -0
  108. package/operations/group/DdbUpdateGroup.js.map +1 -0
  109. package/operations/group/feature.d.ts +4 -0
  110. package/operations/group/feature.js +19 -0
  111. package/operations/group/feature.js.map +1 -0
  112. package/operations/group/keys.d.ts +15 -0
  113. package/operations/group/keys.js +17 -0
  114. package/operations/group/keys.js.map +1 -0
  115. package/operations/model/DdbCreateModel.d.ts +12 -0
  116. package/operations/model/DdbCreateModel.js +37 -0
  117. package/operations/model/DdbCreateModel.js.map +1 -0
  118. package/operations/model/DdbDeleteModel.d.ts +12 -0
  119. package/operations/model/DdbDeleteModel.js +31 -0
  120. package/operations/model/DdbDeleteModel.js.map +1 -0
  121. package/operations/model/DdbGetModel.d.ts +12 -0
  122. package/operations/model/DdbGetModel.js +30 -0
  123. package/operations/model/DdbGetModel.js.map +1 -0
  124. package/operations/model/DdbListModels.d.ts +12 -0
  125. package/operations/model/DdbListModels.js +36 -0
  126. package/operations/model/DdbListModels.js.map +1 -0
  127. package/operations/model/DdbUpdateModel.d.ts +12 -0
  128. package/operations/model/DdbUpdateModel.js +36 -0
  129. package/operations/model/DdbUpdateModel.js.map +1 -0
  130. package/operations/model/feature.d.ts +4 -0
  131. package/operations/model/feature.js +19 -0
  132. package/operations/model/feature.js.map +1 -0
  133. package/operations/model/keys.d.ts +15 -0
  134. package/operations/model/keys.js +16 -0
  135. package/operations/model/keys.js.map +1 -0
  136. package/package.json +15 -17
  137. package/types.d.ts +9 -49
  138. package/types.js.map +1 -1
  139. package/dynamoDb/index.d.ts +0 -2
  140. package/dynamoDb/index.js +0 -11
  141. package/dynamoDb/index.js.map +0 -1
  142. package/dynamoDb/path/locationFolderId.d.ts +0 -2
  143. package/dynamoDb/path/locationFolderId.js +0 -21
  144. package/dynamoDb/path/locationFolderId.js.map +0 -1
  145. package/dynamoDb/path/plainObject.d.ts +0 -2
  146. package/dynamoDb/path/plainObject.js +0 -16
  147. package/dynamoDb/path/plainObject.js.map +0 -1
  148. package/dynamoDb/transformValue/datetime.d.ts +0 -5
  149. package/dynamoDb/transformValue/datetime.js +0 -29
  150. package/dynamoDb/transformValue/datetime.js.map +0 -1
  151. package/operations/entry/filtering/createExpressions.d.ts +0 -27
  152. package/operations/entry/filtering/createExpressions.js +0 -124
  153. package/operations/entry/filtering/createExpressions.js.map +0 -1
  154. package/operations/entry/filtering/createFields.d.ts +0 -16
  155. package/operations/entry/filtering/createFields.js +0 -93
  156. package/operations/entry/filtering/createFields.js.map +0 -1
  157. package/operations/entry/filtering/extractSort.d.ts +0 -17
  158. package/operations/entry/filtering/extractSort.js +0 -60
  159. package/operations/entry/filtering/extractSort.js.map +0 -1
  160. package/operations/entry/filtering/filter.d.ts +0 -16
  161. package/operations/entry/filtering/filter.js +0 -85
  162. package/operations/entry/filtering/filter.js.map +0 -1
  163. package/operations/entry/filtering/fullTextSearch.d.ts +0 -14
  164. package/operations/entry/filtering/fullTextSearch.js +0 -25
  165. package/operations/entry/filtering/fullTextSearch.js.map +0 -1
  166. package/operations/entry/filtering/getValue.d.ts +0 -5
  167. package/operations/entry/filtering/getValue.js +0 -37
  168. package/operations/entry/filtering/getValue.js.map +0 -1
  169. package/operations/entry/filtering/index.d.ts +0 -2
  170. package/operations/entry/filtering/index.js +0 -2
  171. package/operations/entry/filtering/mapPlugins.d.ts +0 -8
  172. package/operations/entry/filtering/mapPlugins.js +0 -18
  173. package/operations/entry/filtering/mapPlugins.js.map +0 -1
  174. package/operations/entry/filtering/plugins/defaultFilterCreate.d.ts +0 -2
  175. package/operations/entry/filtering/plugins/defaultFilterCreate.js +0 -33
  176. package/operations/entry/filtering/plugins/defaultFilterCreate.js.map +0 -1
  177. package/operations/entry/filtering/plugins/index.d.ts +0 -1
  178. package/operations/entry/filtering/plugins/index.js +0 -13
  179. package/operations/entry/filtering/plugins/index.js.map +0 -1
  180. package/operations/entry/filtering/plugins/objectFilterCreate.d.ts +0 -2
  181. package/operations/entry/filtering/plugins/objectFilterCreate.js +0 -68
  182. package/operations/entry/filtering/plugins/objectFilterCreate.js.map +0 -1
  183. package/operations/entry/filtering/plugins/refFilterCreate.d.ts +0 -3
  184. package/operations/entry/filtering/plugins/refFilterCreate.js +0 -63
  185. package/operations/entry/filtering/plugins/refFilterCreate.js.map +0 -1
  186. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.d.ts +0 -2
  187. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js +0 -56
  188. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js.map +0 -1
  189. package/operations/entry/filtering/sort.d.ts +0 -12
  190. package/operations/entry/filtering/sort.js +0 -41
  191. package/operations/entry/filtering/sort.js.map +0 -1
  192. package/operations/entry/filtering/systemFields.d.ts +0 -2
  193. package/operations/entry/filtering/systemFields.js +0 -149
  194. package/operations/entry/filtering/systemFields.js.map +0 -1
  195. package/operations/entry/filtering/transform.d.ts +0 -6
  196. package/operations/entry/filtering/transform.js +0 -7
  197. package/operations/entry/filtering/transform.js.map +0 -1
  198. package/operations/entry/filtering/types.d.ts +0 -40
  199. package/operations/entry/filtering/types.js +0 -0
  200. package/operations/entry/filtering/values.d.ts +0 -2
  201. package/operations/entry/filtering/values.js +0 -15
  202. package/operations/entry/filtering/values.js.map +0 -1
  203. package/operations/entry/filtering/where.d.ts +0 -5
  204. package/operations/entry/filtering/where.js +0 -22
  205. package/operations/entry/filtering/where.js.map +0 -1
  206. package/operations/entry/index.d.ts +0 -9
  207. package/operations/entry/index.js +0 -943
  208. package/operations/entry/index.js.map +0 -1
  209. package/operations/group/index.d.ts +0 -8
  210. package/operations/group/index.js +0 -121
  211. package/operations/group/index.js.map +0 -1
  212. package/operations/model/index.d.ts +0 -7
  213. package/operations/model/index.js +0 -106
  214. package/operations/model/index.js.map +0 -1
  215. package/plugins/CmsEntryFieldFilterPathPlugin.d.ts +0 -23
  216. package/plugins/CmsEntryFieldFilterPathPlugin.js +0 -30
  217. package/plugins/CmsEntryFieldFilterPathPlugin.js.map +0 -1
  218. package/plugins/CmsEntryFieldFilterPlugin.d.ts +0 -43
  219. package/plugins/CmsEntryFieldFilterPlugin.js +0 -20
  220. package/plugins/CmsEntryFieldFilterPlugin.js.map +0 -1
  221. package/plugins/CmsEntryFieldSortingPlugin.d.ts +0 -42
  222. package/plugins/CmsEntryFieldSortingPlugin.js +0 -20
  223. package/plugins/CmsEntryFieldSortingPlugin.js.map +0 -1
  224. package/plugins/CmsFieldFilterValueTransformPlugin.d.ts +0 -11
  225. package/plugins/CmsFieldFilterValueTransformPlugin.js +0 -19
  226. package/plugins/CmsFieldFilterValueTransformPlugin.js.map +0 -1
  227. package/plugins/index.d.ts +0 -4
  228. package/plugins/index.js +0 -4
@@ -0,0 +1,14 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsGetRevisionParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetRevisionByIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js";
3
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ declare class DdbGetRevisionByIdImpl implements GetRevisionByIdStorageOperation.Interface {
6
+ private dataLoaders;
7
+ private storageModelProvider;
8
+ constructor(dataLoaders: CmsDdbDataLoaders.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
9
+ execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, params: CmsEntryStorageOperationsGetRevisionParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsStorageEntry<T> | null>;
10
+ }
11
+ export declare const DdbGetRevisionById: typeof DdbGetRevisionByIdImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js").IGetRevisionByIdStorageOperation>;
13
+ };
14
+ export {};
@@ -0,0 +1,34 @@
1
+ import { GetRevisionByIdStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js";
2
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
3
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ import { convertFromStorageEntry } from "./storageEntryUtils.js";
5
+ class DdbGetRevisionByIdImpl {
6
+ constructor(dataLoaders, storageModelProvider){
7
+ this.dataLoaders = dataLoaders;
8
+ this.storageModelProvider = storageModelProvider;
9
+ }
10
+ async execute(initialModel, params) {
11
+ const model = this.storageModelProvider.getModel(initialModel);
12
+ const [entry] = await this.dataLoaders.getRevisionById({
13
+ model,
14
+ ids: [
15
+ params.id
16
+ ]
17
+ });
18
+ if (!entry) return null;
19
+ return convertFromStorageEntry({
20
+ model,
21
+ storageEntry: entry
22
+ });
23
+ }
24
+ }
25
+ const DdbGetRevisionById = GetRevisionByIdStorageOperation.createImplementation({
26
+ implementation: DdbGetRevisionByIdImpl,
27
+ dependencies: [
28
+ CmsDdbDataLoaders,
29
+ CmsStorageModelProvider
30
+ ]
31
+ });
32
+ export { DdbGetRevisionById };
33
+
34
+ //# sourceMappingURL=DdbGetRevisionById.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbGetRevisionById.js","sources":["../../../src/operations/entry/DdbGetRevisionById.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsGetRevisionParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetRevisionByIdStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js\";\nimport { CmsDdbDataLoaders } from \"~/abstractions/CmsDdbDataLoaders.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { convertFromStorageEntry } from \"./storageEntryUtils.js\";\n\nclass DdbGetRevisionByIdImpl implements GetRevisionByIdStorageOperation.Interface {\n constructor(\n private dataLoaders: CmsDdbDataLoaders.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n params: CmsEntryStorageOperationsGetRevisionParams\n ) {\n const model = this.storageModelProvider.getModel<T>(initialModel);\n\n const [entry] = await this.dataLoaders.getRevisionById<T>({\n model,\n ids: [params.id]\n });\n if (!entry) {\n return null;\n }\n return convertFromStorageEntry<T>({ model, storageEntry: entry });\n }\n}\n\nexport const DdbGetRevisionById = GetRevisionByIdStorageOperation.createImplementation({\n implementation: DdbGetRevisionByIdImpl,\n dependencies: [CmsDdbDataLoaders, CmsStorageModelProvider]\n});\n"],"names":["DdbGetRevisionByIdImpl","dataLoaders","storageModelProvider","initialModel","params","model","entry","convertFromStorageEntry","DdbGetRevisionById","GetRevisionByIdStorageOperation","CmsDdbDataLoaders","CmsStorageModelProvider"],"mappings":";;;;AAUA,MAAMA;IACF,YACYC,WAAwC,EACxCC,oBAAuD,CACjE;aAFUD,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;IACT;IAEH,MAAM,QACFC,YAAsB,EACtBC,MAAkD,EACpD;QACE,MAAMC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAIF;QAEpD,MAAM,CAACG,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAI;YACtDD;YACA,KAAK;gBAACD,OAAO,EAAE;aAAC;QACpB;QACA,IAAI,CAACE,OACD,OAAO;QAEX,OAAOC,wBAA2B;YAAEF;YAAO,cAAcC;QAAM;IACnE;AACJ;AAEO,MAAME,qBAAqBC,gCAAgC,oBAAoB,CAAC;IACnF,gBAAgBT;IAChB,cAAc;QAACU;QAAmBC;KAAwB;AAC9D"}
@@ -0,0 +1,14 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsGetRevisionsParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetRevisionsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js";
3
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ declare class DdbGetRevisionsImpl implements GetRevisionsStorageOperation.Interface {
6
+ private dataLoaders;
7
+ private storageModelProvider;
8
+ constructor(dataLoaders: CmsDdbDataLoaders.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
9
+ execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, params: CmsEntryStorageOperationsGetRevisionsParams): Promise<import("@webiny/api-headless-cms/types/types.js").CmsStorageEntry<T>[]>;
10
+ }
11
+ export declare const DdbGetRevisions: typeof DdbGetRevisionsImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js").IGetRevisionsStorageOperation>;
13
+ };
14
+ export {};
@@ -0,0 +1,33 @@
1
+ import { GetRevisionsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js";
2
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
3
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
4
+ import { convertFromStorageEntry } from "./storageEntryUtils.js";
5
+ class DdbGetRevisionsImpl {
6
+ constructor(dataLoaders, storageModelProvider){
7
+ this.dataLoaders = dataLoaders;
8
+ this.storageModelProvider = storageModelProvider;
9
+ }
10
+ async execute(initialModel, params) {
11
+ const model = this.storageModelProvider.getModel(initialModel);
12
+ const items = await this.dataLoaders.getAllEntryRevisions({
13
+ model,
14
+ ids: [
15
+ params.id
16
+ ]
17
+ });
18
+ return items.map((item)=>convertFromStorageEntry({
19
+ storageEntry: item,
20
+ model
21
+ }));
22
+ }
23
+ }
24
+ const DdbGetRevisions = GetRevisionsStorageOperation.createImplementation({
25
+ implementation: DdbGetRevisionsImpl,
26
+ dependencies: [
27
+ CmsDdbDataLoaders,
28
+ CmsStorageModelProvider
29
+ ]
30
+ });
31
+ export { DdbGetRevisions };
32
+
33
+ //# sourceMappingURL=DdbGetRevisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbGetRevisions.js","sources":["../../../src/operations/entry/DdbGetRevisions.ts"],"sourcesContent":["import type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsGetRevisionsParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetRevisionsStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js\";\nimport { CmsDdbDataLoaders } from \"~/abstractions/CmsDdbDataLoaders.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { convertFromStorageEntry } from \"./storageEntryUtils.js\";\n\nclass DdbGetRevisionsImpl implements GetRevisionsStorageOperation.Interface {\n constructor(\n private dataLoaders: CmsDdbDataLoaders.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n params: CmsEntryStorageOperationsGetRevisionsParams\n ) {\n const model = this.storageModelProvider.getModel<T>(initialModel);\n\n const items = await this.dataLoaders.getAllEntryRevisions<T>({\n model,\n ids: [params.id]\n });\n\n return items.map(item => {\n return convertFromStorageEntry<T>({\n storageEntry: item,\n model\n });\n });\n }\n}\n\nexport const DdbGetRevisions = GetRevisionsStorageOperation.createImplementation({\n implementation: DdbGetRevisionsImpl,\n dependencies: [CmsDdbDataLoaders, CmsStorageModelProvider]\n});\n"],"names":["DdbGetRevisionsImpl","dataLoaders","storageModelProvider","initialModel","params","model","items","item","convertFromStorageEntry","DdbGetRevisions","GetRevisionsStorageOperation","CmsDdbDataLoaders","CmsStorageModelProvider"],"mappings":";;;;AAUA,MAAMA;IACF,YACYC,WAAwC,EACxCC,oBAAuD,CACjE;aAFUD,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;IACT;IAEH,MAAM,QACFC,YAAsB,EACtBC,MAAmD,EACrD;QACE,MAAMC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAIF;QAEpD,MAAMG,QAAQ,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAI;YACzDD;YACA,KAAK;gBAACD,OAAO,EAAE;aAAC;QACpB;QAEA,OAAOE,MAAM,GAAG,CAACC,CAAAA,OACNC,wBAA2B;gBAC9B,cAAcD;gBACdF;YACJ;IAER;AACJ;AAEO,MAAMI,kBAAkBC,6BAA6B,oBAAoB,CAAC;IAC7E,gBAAgBV;IAChB,cAAc;QAACW;QAAmBC;KAAwB;AAC9D"}
@@ -0,0 +1,12 @@
1
+ import type { CmsModel, CmsEntryStorageOperationsGetUniqueFieldValuesParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetUniqueFieldValuesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js";
3
+ import { ListEntriesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js";
4
+ declare class DdbGetUniqueFieldValuesImpl implements GetUniqueFieldValuesStorageOperation.Interface {
5
+ private listEntries;
6
+ constructor(listEntries: ListEntriesStorageOperation.Interface);
7
+ execute(model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams): Promise<import("@webiny/api-headless-cms/types/types").CmsEntryUniqueValue[]>;
8
+ }
9
+ export declare const DdbGetUniqueFieldValues: typeof DdbGetUniqueFieldValuesImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js").IGetUniqueFieldValuesStorageOperation>;
11
+ };
12
+ export {};
@@ -0,0 +1,31 @@
1
+ import error from "@webiny/error";
2
+ import { GetUniqueFieldValuesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js";
3
+ import { ListEntriesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js";
4
+ import { aggregateUniqueFieldValues } from "@webiny/api-headless-cms-storage";
5
+ const MAX_LIST_LIMIT = 1000000;
6
+ class DdbGetUniqueFieldValuesImpl {
7
+ constructor(listEntries){
8
+ this.listEntries = listEntries;
9
+ }
10
+ async execute(model, params) {
11
+ const { where, fieldId } = params;
12
+ const field = model.fields.find((f)=>f.fieldId === fieldId);
13
+ if (!field) throw new error('Could not find field with given "fieldId" value.', "FIELD_NOT_FOUND", {
14
+ fieldId
15
+ });
16
+ const { items } = await this.listEntries.execute(model, {
17
+ where,
18
+ limit: MAX_LIST_LIMIT
19
+ });
20
+ return aggregateUniqueFieldValues(items, field.fieldId);
21
+ }
22
+ }
23
+ const DdbGetUniqueFieldValues = GetUniqueFieldValuesStorageOperation.createImplementation({
24
+ implementation: DdbGetUniqueFieldValuesImpl,
25
+ dependencies: [
26
+ ListEntriesStorageOperation
27
+ ]
28
+ });
29
+ export { DdbGetUniqueFieldValues };
30
+
31
+ //# sourceMappingURL=DdbGetUniqueFieldValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbGetUniqueFieldValues.js","sources":["../../../src/operations/entry/DdbGetUniqueFieldValues.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsModel,\n CmsEntryStorageOperationsGetUniqueFieldValuesParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetUniqueFieldValuesStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js\";\nimport { ListEntriesStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js\";\nimport { aggregateUniqueFieldValues } from \"@webiny/api-headless-cms-storage\";\n\nconst MAX_LIST_LIMIT = 1000000;\n\nclass DdbGetUniqueFieldValuesImpl implements GetUniqueFieldValuesStorageOperation.Interface {\n constructor(private listEntries: ListEntriesStorageOperation.Interface) {}\n\n async execute(model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams) {\n const { where, fieldId } = params;\n\n const field = model.fields.find(f => f.fieldId === fieldId);\n if (!field) {\n throw new WebinyError(\n `Could not find field with given \"fieldId\" value.`,\n \"FIELD_NOT_FOUND\",\n { fieldId }\n );\n }\n\n const { items } = await this.listEntries.execute(model, {\n where,\n limit: MAX_LIST_LIMIT\n });\n\n return aggregateUniqueFieldValues(items, field.fieldId);\n }\n}\n\nexport const DdbGetUniqueFieldValues = GetUniqueFieldValuesStorageOperation.createImplementation({\n implementation: DdbGetUniqueFieldValuesImpl,\n dependencies: [ListEntriesStorageOperation]\n});\n"],"names":["MAX_LIST_LIMIT","DdbGetUniqueFieldValuesImpl","listEntries","model","params","where","fieldId","field","f","WebinyError","items","aggregateUniqueFieldValues","DdbGetUniqueFieldValues","GetUniqueFieldValuesStorageOperation","ListEntriesStorageOperation"],"mappings":";;;;AASA,MAAMA,iBAAiB;AAEvB,MAAMC;IACF,YAAoBC,WAAkD,CAAE;aAApDA,WAAW,GAAXA;IAAqD;IAEzE,MAAM,QAAQC,KAAe,EAAEC,MAA2D,EAAE;QACxF,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAE,GAAGF;QAE3B,MAAMG,QAAQJ,MAAM,MAAM,CAAC,IAAI,CAACK,CAAAA,IAAKA,EAAE,OAAO,KAAKF;QACnD,IAAI,CAACC,OACD,MAAM,IAAIE,MACN,oDACA,mBACA;YAAEH;QAAQ;QAIlB,MAAM,EAAEI,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACP,OAAO;YACpDE;YACA,OAAOL;QACX;QAEA,OAAOW,2BAA2BD,OAAOH,MAAM,OAAO;IAC1D;AACJ;AAEO,MAAMK,0BAA0BC,qCAAqC,oBAAoB,CAAC;IAC7F,gBAAgBZ;IAChB,cAAc;QAACa;KAA4B;AAC/C"}
@@ -0,0 +1,28 @@
1
+ import type { CmsEntry, CmsEntryStorageOperationsListParams, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { ListEntriesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ import { StorageTransformRegistry } from "@webiny/api-headless-cms/exports/api/cms/storage.js";
6
+ import { ValueFilterRegistry } from "@webiny/db-utils";
7
+ import { FieldFilterPathRegistry, FieldFilterValueTransformRegistry, FieldFilterCreateRegistry, FieldSortingRegistry } from "@webiny/api-headless-cms-storage";
8
+ declare class DdbListEntriesImpl implements ListEntriesStorageOperation.Interface {
9
+ private entity;
10
+ private storageModelProvider;
11
+ private storageTransformRegistry;
12
+ private pathRegistry;
13
+ private transformRegistry;
14
+ private filterCreateRegistry;
15
+ private sortingRegistry;
16
+ private valueFilterRegistry;
17
+ constructor(entity: CmsDdbEntryEntity.Interface, storageModelProvider: CmsStorageModelProvider.Interface, storageTransformRegistry: StorageTransformRegistry.Interface, pathRegistry: FieldFilterPathRegistry.Interface, transformRegistry: FieldFilterValueTransformRegistry.Interface, filterCreateRegistry: FieldFilterCreateRegistry.Interface, sortingRegistry: FieldSortingRegistry.Interface, valueFilterRegistry: ValueFilterRegistry.Interface);
18
+ execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, params: CmsEntryStorageOperationsListParams): Promise<{
19
+ hasMoreItems: boolean;
20
+ totalCount: number;
21
+ cursor: import("@webiny/utils").CursorOutput;
22
+ items: CmsEntry<T>[];
23
+ }>;
24
+ }
25
+ export declare const DdbListEntries: typeof DdbListEntriesImpl & {
26
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js").IListEntriesStorageOperation>;
27
+ };
28
+ export {};
@@ -0,0 +1,124 @@
1
+ import error from "@webiny/error";
2
+ import { ListEntriesStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ import { StorageTransformRegistry } from "@webiny/api-headless-cms/exports/api/cms/storage.js";
6
+ import { createGSIPartitionKey } from "./keys.js";
7
+ import { decodeCursor, encodeCursor } from "@webiny/utils";
8
+ import { ValueFilterRegistry } from "@webiny/db-utils";
9
+ import { FieldFilterCreateRegistry, FieldFilterPathRegistry, FieldFilterValueTransformRegistry, FieldSortingRegistry, createFields, createStorageTransformCallable, filter, sort } from "@webiny/api-headless-cms-storage";
10
+ import { convertFromStorageEntry } from "./storageEntryUtils.js";
11
+ const MAX_LIST_LIMIT = 1000000;
12
+ class DdbListEntriesImpl {
13
+ constructor(entity, storageModelProvider, storageTransformRegistry, pathRegistry, transformRegistry, filterCreateRegistry, sortingRegistry, valueFilterRegistry){
14
+ this.entity = entity;
15
+ this.storageModelProvider = storageModelProvider;
16
+ this.storageTransformRegistry = storageTransformRegistry;
17
+ this.pathRegistry = pathRegistry;
18
+ this.transformRegistry = transformRegistry;
19
+ this.filterCreateRegistry = filterCreateRegistry;
20
+ this.sortingRegistry = sortingRegistry;
21
+ this.valueFilterRegistry = valueFilterRegistry;
22
+ }
23
+ async execute(initialModel, params) {
24
+ const model = this.storageModelProvider.getModel(initialModel);
25
+ const { limit: initialLimit = 10, where: initialWhere, after, sort: sortBy, fields, search } = params;
26
+ const limit = initialLimit <= 0 || initialLimit >= MAX_LIST_LIMIT ? MAX_LIST_LIMIT : initialLimit;
27
+ const type = initialWhere.published ? "P" : "L";
28
+ const partitionKey = createGSIPartitionKey(model, type);
29
+ const options = {
30
+ index: "GSI1",
31
+ gte: " "
32
+ };
33
+ let storageEntries = [];
34
+ try {
35
+ storageEntries = await this.entity.queryAll({
36
+ partitionKey,
37
+ options
38
+ });
39
+ } catch (ex) {
40
+ throw new error(ex.message, "QUERY_ENTRIES_ERROR", {
41
+ error: ex,
42
+ partitionKey,
43
+ options
44
+ });
45
+ }
46
+ if (0 === storageEntries.length) return {
47
+ hasMoreItems: false,
48
+ totalCount: 0,
49
+ cursor: null,
50
+ items: []
51
+ };
52
+ const where = {
53
+ ...initialWhere
54
+ };
55
+ delete where["published"];
56
+ delete where["latest"];
57
+ const pathRegistry = this.pathRegistry;
58
+ const transformRegistry = this.transformRegistry;
59
+ const filterCreateRegistry = this.filterCreateRegistry;
60
+ const sortingRegistry = this.sortingRegistry;
61
+ const modelFields = createFields({
62
+ pathRegistry,
63
+ transformRegistry,
64
+ fields: model.fields
65
+ });
66
+ const fromStorage = createStorageTransformCallable(this.storageTransformRegistry, model);
67
+ const records = await Promise.all(storageEntries.map(async (storageEntry)=>{
68
+ const entry = convertFromStorageEntry({
69
+ storageEntry: storageEntry.data,
70
+ model
71
+ });
72
+ for (const field of model.fields)entry.values[field.fieldId] = await fromStorage(field, entry.values[field.fieldId]);
73
+ return entry;
74
+ }));
75
+ const valueFilterRegistry = this.valueFilterRegistry;
76
+ const filteredItems = filter({
77
+ items: records,
78
+ where,
79
+ filterCreateRegistry,
80
+ transformRegistry,
81
+ fields: modelFields,
82
+ fullTextSearch: {
83
+ term: search,
84
+ fields: fields || []
85
+ },
86
+ valueFilterRegistry
87
+ });
88
+ const totalCount = filteredItems.length;
89
+ const sortedItems = sort({
90
+ model,
91
+ items: filteredItems,
92
+ sort: sortBy,
93
+ fields: modelFields,
94
+ sortingRegistry
95
+ });
96
+ const start = parseInt(decodeCursor(after) || "0") || 0;
97
+ const hasMoreItems = totalCount > start + limit;
98
+ const end = limit > totalCount + start + limit ? void 0 : start + limit;
99
+ const slicedItems = sortedItems.slice(start, end);
100
+ const cursor = encodeCursor(`${start + limit}`);
101
+ return {
102
+ hasMoreItems,
103
+ totalCount,
104
+ cursor,
105
+ items: slicedItems
106
+ };
107
+ }
108
+ }
109
+ const DdbListEntries = ListEntriesStorageOperation.createImplementation({
110
+ implementation: DdbListEntriesImpl,
111
+ dependencies: [
112
+ CmsDdbEntryEntity,
113
+ CmsStorageModelProvider,
114
+ StorageTransformRegistry,
115
+ FieldFilterPathRegistry,
116
+ FieldFilterValueTransformRegistry,
117
+ FieldFilterCreateRegistry,
118
+ FieldSortingRegistry,
119
+ ValueFilterRegistry
120
+ ]
121
+ });
122
+ export { DdbListEntries };
123
+
124
+ //# sourceMappingURL=DdbListEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbListEntries.js","sources":["../../../src/operations/entry/DdbListEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsEntry,\n CmsEntryListWhere,\n CmsEntryStorageOperationsListParams,\n CmsEntryValues,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { ListEntriesStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/ListEntriesStorageOperation.js\";\nimport { CmsDdbEntryEntity } from \"~/abstractions/CmsDdbEntryEntity.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { StorageTransformRegistry } from \"@webiny/api-headless-cms/exports/api/cms/storage.js\";\nimport { createGSIPartitionKey } from \"~/operations/entry/keys.js\";\nimport { decodeCursor, encodeCursor } from \"@webiny/utils\";\nimport { ValueFilterRegistry } from \"@webiny/db-utils\";\nimport {\n createFields,\n filter,\n sort,\n createStorageTransformCallable,\n FieldFilterPathRegistry,\n FieldFilterValueTransformRegistry,\n FieldFilterCreateRegistry,\n FieldSortingRegistry\n} from \"@webiny/api-headless-cms-storage\";\nimport { convertFromStorageEntry } from \"./storageEntryUtils.js\";\n\nconst MAX_LIST_LIMIT = 1000000;\n\nclass DdbListEntriesImpl implements ListEntriesStorageOperation.Interface {\n constructor(\n private entity: CmsDdbEntryEntity.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface,\n private storageTransformRegistry: StorageTransformRegistry.Interface,\n private pathRegistry: FieldFilterPathRegistry.Interface,\n private transformRegistry: FieldFilterValueTransformRegistry.Interface,\n private filterCreateRegistry: FieldFilterCreateRegistry.Interface,\n private sortingRegistry: FieldSortingRegistry.Interface,\n private valueFilterRegistry: ValueFilterRegistry.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n params: CmsEntryStorageOperationsListParams\n ) {\n const model = this.storageModelProvider.getModel(initialModel);\n\n const {\n limit: initialLimit = 10,\n where: initialWhere,\n after,\n sort: sortBy,\n fields,\n search\n } = params;\n const limit =\n initialLimit <= 0 || initialLimit >= MAX_LIST_LIMIT ? MAX_LIST_LIMIT : initialLimit;\n\n const type = initialWhere.published ? \"P\" : \"L\";\n\n const partitionKey = createGSIPartitionKey(model, type);\n const options = {\n index: \"GSI1\",\n gte: \" \"\n };\n\n let storageEntries: Awaited<ReturnType<typeof this.entity.queryAll>> = [];\n try {\n storageEntries = await this.entity.queryAll({\n partitionKey,\n options\n });\n } catch (ex) {\n throw new WebinyError(ex.message, \"QUERY_ENTRIES_ERROR\", {\n error: ex,\n partitionKey,\n options\n });\n }\n if (storageEntries.length === 0) {\n return {\n hasMoreItems: false,\n totalCount: 0,\n cursor: null,\n items: []\n };\n }\n const where: Partial<CmsEntryListWhere> = {\n ...initialWhere\n };\n delete where[\"published\"];\n delete where[\"latest\"];\n /**\n * We need an object containing field, transformers and paths.\n * Just build it here and pass on into other methods that require it to avoid mapping multiple times.\n */\n const pathRegistry = this.pathRegistry;\n const transformRegistry = this.transformRegistry;\n const filterCreateRegistry = this.filterCreateRegistry;\n const sortingRegistry = this.sortingRegistry;\n\n const modelFields = createFields({\n pathRegistry,\n transformRegistry,\n fields: model.fields\n });\n\n const fromStorage = createStorageTransformCallable(this.storageTransformRegistry, model);\n /**\n * Let's transform records from storage ones to regular ones, so we do not need to do it later.\n *\n * This is always being done, but at least its in parallel.\n */\n const records = await Promise.all(\n storageEntries.map(async storageEntry => {\n const entry = convertFromStorageEntry({\n storageEntry: storageEntry.data,\n model\n });\n\n for (const field of model.fields) {\n entry.values[field.fieldId] = await fromStorage(\n field,\n entry.values[field.fieldId]\n );\n }\n\n return entry as CmsEntry<T>;\n })\n );\n /* Resolve the registry once. */\n const valueFilterRegistry = this.valueFilterRegistry;\n\n /**\n * Filter the read items via the code.\n * It will build the filters out of the where input and transform the values it is using.\n */\n const filteredItems = filter<T>({\n items: records,\n where,\n filterCreateRegistry,\n transformRegistry,\n fields: modelFields,\n fullTextSearch: {\n term: search,\n fields: fields || []\n },\n valueFilterRegistry\n });\n\n const totalCount = filteredItems.length;\n\n /**\n * Sorting is also done via the code.\n * It takes the sort input and sorts by it via the lodash sortBy method.\n */\n const sortedItems = sort<T>({\n model,\n items: filteredItems,\n sort: sortBy,\n fields: modelFields,\n sortingRegistry\n });\n\n const start = parseInt((decodeCursor(after) as string) || \"0\") || 0;\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const slicedItems = sortedItems.slice(start, end);\n /**\n * Although we do not need a cursor here, we will use it as such to keep it standardized.\n * Number is simply encoded.\n */\n const cursor = encodeCursor(`${start + limit}`);\n return {\n hasMoreItems,\n totalCount,\n cursor,\n items: slicedItems\n };\n }\n}\n\nexport const DdbListEntries = ListEntriesStorageOperation.createImplementation({\n implementation: DdbListEntriesImpl,\n dependencies: [\n CmsDdbEntryEntity,\n CmsStorageModelProvider,\n StorageTransformRegistry,\n FieldFilterPathRegistry,\n FieldFilterValueTransformRegistry,\n FieldFilterCreateRegistry,\n FieldSortingRegistry,\n ValueFilterRegistry\n ]\n});\n"],"names":["MAX_LIST_LIMIT","DdbListEntriesImpl","entity","storageModelProvider","storageTransformRegistry","pathRegistry","transformRegistry","filterCreateRegistry","sortingRegistry","valueFilterRegistry","initialModel","params","model","initialLimit","initialWhere","after","sortBy","fields","search","limit","type","partitionKey","createGSIPartitionKey","options","storageEntries","ex","WebinyError","where","modelFields","createFields","fromStorage","createStorageTransformCallable","records","Promise","storageEntry","entry","convertFromStorageEntry","field","filteredItems","filter","totalCount","sortedItems","sort","start","parseInt","decodeCursor","hasMoreItems","end","undefined","slicedItems","cursor","encodeCursor","DdbListEntries","ListEntriesStorageOperation","CmsDdbEntryEntity","CmsStorageModelProvider","StorageTransformRegistry","FieldFilterPathRegistry","FieldFilterValueTransformRegistry","FieldFilterCreateRegistry","FieldSortingRegistry","ValueFilterRegistry"],"mappings":";;;;;;;;;;AA2BA,MAAMA,iBAAiB;AAEvB,MAAMC;IACF,YACYC,MAAmC,EACnCC,oBAAuD,EACvDC,wBAA4D,EAC5DC,YAA+C,EAC/CC,iBAA8D,EAC9DC,oBAAyD,EACzDC,eAA+C,EAC/CC,mBAAkD,CAC5D;aARUP,MAAM,GAANA;aACAC,oBAAoB,GAApBA;aACAC,wBAAwB,GAAxBA;aACAC,YAAY,GAAZA;aACAC,iBAAiB,GAAjBA;aACAC,oBAAoB,GAApBA;aACAC,eAAe,GAAfA;aACAC,mBAAmB,GAAnBA;IACT;IAEH,MAAM,QACFC,YAAsB,EACtBC,MAA2C,EAC7C;QACE,MAAMC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAACF;QAEjD,MAAM,EACF,OAAOG,eAAe,EAAE,EACxB,OAAOC,YAAY,EACnBC,KAAK,EACL,MAAMC,MAAM,EACZC,MAAM,EACNC,MAAM,EACT,GAAGP;QACJ,MAAMQ,QACFN,gBAAgB,KAAKA,gBAAgBb,iBAAiBA,iBAAiBa;QAE3E,MAAMO,OAAON,aAAa,SAAS,GAAG,MAAM;QAE5C,MAAMO,eAAeC,sBAAsBV,OAAOQ;QAClD,MAAMG,UAAU;YACZ,OAAO;YACP,KAAK;QACT;QAEA,IAAIC,iBAAmE,EAAE;QACzE,IAAI;YACAA,iBAAiB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACxCH;gBACAE;YACJ;QACJ,EAAE,OAAOE,IAAI;YACT,MAAM,IAAIC,MAAYD,GAAG,OAAO,EAAE,uBAAuB;gBACrD,OAAOA;gBACPJ;gBACAE;YACJ;QACJ;QACA,IAAIC,AAA0B,MAA1BA,eAAe,MAAM,EACrB,OAAO;YACH,cAAc;YACd,YAAY;YACZ,QAAQ;YACR,OAAO,EAAE;QACb;QAEJ,MAAMG,QAAoC;YACtC,GAAGb,YAAY;QACnB;QACA,OAAOa,KAAK,CAAC,YAAY;QACzB,OAAOA,KAAK,CAAC,SAAS;QAKtB,MAAMtB,eAAe,IAAI,CAAC,YAAY;QACtC,MAAMC,oBAAoB,IAAI,CAAC,iBAAiB;QAChD,MAAMC,uBAAuB,IAAI,CAAC,oBAAoB;QACtD,MAAMC,kBAAkB,IAAI,CAAC,eAAe;QAE5C,MAAMoB,cAAcC,aAAa;YAC7BxB;YACAC;YACA,QAAQM,MAAM,MAAM;QACxB;QAEA,MAAMkB,cAAcC,+BAA+B,IAAI,CAAC,wBAAwB,EAAEnB;QAMlF,MAAMoB,UAAU,MAAMC,QAAQ,GAAG,CAC7BT,eAAe,GAAG,CAAC,OAAMU;YACrB,MAAMC,QAAQC,wBAAwB;gBAClC,cAAcF,aAAa,IAAI;gBAC/BtB;YACJ;YAEA,KAAK,MAAMyB,SAASzB,MAAM,MAAM,CAC5BuB,MAAM,MAAM,CAACE,MAAM,OAAO,CAAC,GAAG,MAAMP,YAChCO,OACAF,MAAM,MAAM,CAACE,MAAM,OAAO,CAAC;YAInC,OAAOF;QACX;QAGJ,MAAM1B,sBAAsB,IAAI,CAAC,mBAAmB;QAMpD,MAAM6B,gBAAgBC,OAAU;YAC5B,OAAOP;YACPL;YACApB;YACAD;YACA,QAAQsB;YACR,gBAAgB;gBACZ,MAAMV;gBACN,QAAQD,UAAU,EAAE;YACxB;YACAR;QACJ;QAEA,MAAM+B,aAAaF,cAAc,MAAM;QAMvC,MAAMG,cAAcC,KAAQ;YACxB9B;YACA,OAAO0B;YACP,MAAMtB;YACN,QAAQY;YACRpB;QACJ;QAEA,MAAMmC,QAAQC,SAAUC,aAAa9B,UAAqB,QAAQ;QAClE,MAAM+B,eAAeN,aAAaG,QAAQxB;QAC1C,MAAM4B,MAAM5B,QAAQqB,aAAaG,QAAQxB,QAAQ6B,SAAYL,QAAQxB;QACrE,MAAM8B,cAAcR,YAAY,KAAK,CAACE,OAAOI;QAK7C,MAAMG,SAASC,aAAa,GAAGR,QAAQxB,OAAO;QAC9C,OAAO;YACH2B;YACAN;YACAU;YACA,OAAOD;QACX;IACJ;AACJ;AAEO,MAAMG,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBpD;IAChB,cAAc;QACVqD;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,14 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { MoveEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveEntryStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ declare class DdbMoveEntryImpl implements MoveEntryStorageOperation.Interface {
6
+ private entity;
7
+ private storageModelProvider;
8
+ constructor(entity: CmsDdbEntryEntity.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
9
+ execute(initialModel: CmsModel, id: string, folderId: string): Promise<void>;
10
+ }
11
+ export declare const DdbMoveEntry: typeof DdbMoveEntryImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveEntryStorageOperation.js").IMoveEntryStorageOperation>;
13
+ };
14
+ export {};
@@ -0,0 +1,57 @@
1
+ import error from "@webiny/error";
2
+ import { MoveEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveEntryStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
5
+ import { createPartitionKey } from "./keys.js";
6
+ class DdbMoveEntryImpl {
7
+ constructor(entity, storageModelProvider){
8
+ this.entity = entity;
9
+ this.storageModelProvider = storageModelProvider;
10
+ }
11
+ async execute(initialModel, id, folderId) {
12
+ const model = this.storageModelProvider.getModel(initialModel);
13
+ const partitionKey = createPartitionKey({
14
+ id,
15
+ tenant: model.tenant
16
+ });
17
+ const records = await this.entity.queryAll({
18
+ partitionKey,
19
+ options: {
20
+ gte: " "
21
+ }
22
+ });
23
+ const entityBatch = this.entity.createEntityWriter({
24
+ put: records.map((item)=>({
25
+ ...item,
26
+ data: {
27
+ ...item.data,
28
+ location: {
29
+ ...item.data.location,
30
+ folderId
31
+ }
32
+ }
33
+ }))
34
+ });
35
+ try {
36
+ await entityBatch.execute();
37
+ } catch (ex) {
38
+ throw error.from(ex, {
39
+ message: "Could not move records to a new folder.",
40
+ data: {
41
+ id,
42
+ folderId
43
+ }
44
+ });
45
+ }
46
+ }
47
+ }
48
+ const DdbMoveEntry = MoveEntryStorageOperation.createImplementation({
49
+ implementation: DdbMoveEntryImpl,
50
+ dependencies: [
51
+ CmsDdbEntryEntity,
52
+ CmsStorageModelProvider
53
+ ]
54
+ });
55
+ export { DdbMoveEntry };
56
+
57
+ //# sourceMappingURL=DdbMoveEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbMoveEntry.js","sources":["../../../src/operations/entry/DdbMoveEntry.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { MoveEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveEntryStorageOperation.js\";\nimport { CmsDdbEntryEntity } from \"~/abstractions/CmsDdbEntryEntity.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { createPartitionKey } from \"~/operations/entry/keys.js\";\n\nclass DdbMoveEntryImpl implements MoveEntryStorageOperation.Interface {\n constructor(\n private entity: CmsDdbEntryEntity.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface\n ) {}\n\n async execute(initialModel: CmsModel, id: string, folderId: string) {\n /**\n * We need to:\n * - load all the revisions of the entry, including published and latest\n * - update all the revisions (published and latest ) of the entry with new folderId\n */\n const model = this.storageModelProvider.getModel(initialModel);\n /**\n * First we need to load all the revisions and published / latest entry.\n */\n const partitionKey = createPartitionKey({\n id,\n tenant: model.tenant\n });\n const records = await this.entity.queryAll({\n partitionKey,\n options: {\n gte: \" \"\n }\n });\n /**\n * Then create the batch writes for the DynamoDB, with the updated folderId.\n */\n const entityBatch = this.entity.createEntityWriter({\n put: records.map(item => {\n return {\n ...item,\n data: {\n ...item.data,\n location: {\n ...item.data.location,\n folderId\n }\n }\n };\n })\n });\n\n /**\n * And finally write it...\n */\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw WebinyError.from(ex, {\n message: \"Could not move records to a new folder.\",\n data: {\n id,\n folderId\n }\n });\n }\n }\n}\n\nexport const DdbMoveEntry = MoveEntryStorageOperation.createImplementation({\n implementation: DdbMoveEntryImpl,\n dependencies: [CmsDdbEntryEntity, CmsStorageModelProvider]\n});\n"],"names":["DdbMoveEntryImpl","entity","storageModelProvider","initialModel","id","folderId","model","partitionKey","createPartitionKey","records","entityBatch","item","ex","WebinyError","DdbMoveEntry","MoveEntryStorageOperation","CmsDdbEntryEntity","CmsStorageModelProvider"],"mappings":";;;;;AAOA,MAAMA;IACF,YACYC,MAAmC,EACnCC,oBAAuD,CACjE;aAFUD,MAAM,GAANA;aACAC,oBAAoB,GAApBA;IACT;IAEH,MAAM,QAAQC,YAAsB,EAAEC,EAAU,EAAEC,QAAgB,EAAE;QAMhE,MAAMC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAACH;QAIjD,MAAMI,eAAeC,mBAAmB;YACpCJ;YACA,QAAQE,MAAM,MAAM;QACxB;QACA,MAAMG,UAAU,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvCF;YACA,SAAS;gBACL,KAAK;YACT;QACJ;QAIA,MAAMG,cAAc,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/C,KAAKD,QAAQ,GAAG,CAACE,CAAAA,OACN;oBACH,GAAGA,IAAI;oBACP,MAAM;wBACF,GAAGA,KAAK,IAAI;wBACZ,UAAU;4BACN,GAAGA,KAAK,IAAI,CAAC,QAAQ;4BACrBN;wBACJ;oBACJ;gBACJ;QAER;QAKA,IAAI;YACA,MAAMK,YAAY,OAAO;QAC7B,EAAE,OAAOE,IAAI;YACT,MAAMC,MAAAA,IAAgB,CAACD,IAAI;gBACvB,SAAS;gBACT,MAAM;oBACFR;oBACAC;gBACJ;YACJ;QACJ;IACJ;AACJ;AAEO,MAAMS,eAAeC,0BAA0B,oBAAoB,CAAC;IACvE,gBAAgBf;IAChB,cAAc;QAACgB;QAAmBC;KAAwB;AAC9D"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModel, CmsEntryStorageOperationsMoveToBinParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { MoveToBinStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveToBinStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
5
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
6
+ declare class DdbMoveToBinImpl implements MoveToBinStorageOperation.Interface {
7
+ private entity;
8
+ private dataLoaders;
9
+ private storageModelProvider;
10
+ constructor(entity: CmsDdbEntryEntity.Interface, dataLoaders: CmsDdbDataLoaders.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
11
+ execute(initialModel: CmsModel, params: CmsEntryStorageOperationsMoveToBinParams): Promise<void>;
12
+ }
13
+ export declare const DdbMoveToBin: typeof DdbMoveToBinImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveToBinStorageOperation.js").IMoveToBinStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,77 @@
1
+ import error from "@webiny/error";
2
+ import { MoveToBinStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveToBinStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
5
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
6
+ import { createPartitionKey } from "./keys.js";
7
+ import { isDeletedEntryMetaField, pickEntryMetaFields } from "@webiny/api-headless-cms/constants.js";
8
+ import { convertToStorageEntry } from "./storageEntryUtils.js";
9
+ class DdbMoveToBinImpl {
10
+ constructor(entity, dataLoaders, storageModelProvider){
11
+ this.entity = entity;
12
+ this.dataLoaders = dataLoaders;
13
+ this.storageModelProvider = storageModelProvider;
14
+ }
15
+ async execute(initialModel, params) {
16
+ const { entry, storageEntry: initialStorageEntry } = params;
17
+ const model = this.storageModelProvider.getModel(initialModel);
18
+ let records = [];
19
+ try {
20
+ records = await this.entity.queryAll({
21
+ partitionKey: createPartitionKey({
22
+ id: entry.id,
23
+ tenant: model.tenant
24
+ }),
25
+ options: {
26
+ gte: " "
27
+ }
28
+ });
29
+ } catch (ex) {
30
+ throw new error(ex.message || "Could not load all records.", ex.code || "LOAD_ALL_RECORDS_ERROR", {
31
+ error: ex,
32
+ id: entry.id
33
+ });
34
+ }
35
+ if (0 === records.length) return;
36
+ const storageEntry = convertToStorageEntry({
37
+ model,
38
+ storageEntry: initialStorageEntry
39
+ });
40
+ const updatedDeletedMetaFields = pickEntryMetaFields(storageEntry, isDeletedEntryMetaField);
41
+ const entityBatch = this.entity.createEntityWriter({
42
+ put: records.map((record)=>({
43
+ ...record,
44
+ data: {
45
+ ...record.data,
46
+ ...updatedDeletedMetaFields,
47
+ wbyDeleted: storageEntry.wbyDeleted,
48
+ location: storageEntry.location,
49
+ binOriginalFolderId: storageEntry.binOriginalFolderId
50
+ }
51
+ }))
52
+ });
53
+ try {
54
+ await entityBatch.execute();
55
+ this.dataLoaders.clearAll({
56
+ tenant: entry.tenant
57
+ });
58
+ } catch (ex) {
59
+ throw new error(ex.message || "Could not move the entry to the bin.", ex.code || "MOVE_ENTRY_TO_BIN_ERROR", {
60
+ error: ex,
61
+ entry,
62
+ storageEntry
63
+ });
64
+ }
65
+ }
66
+ }
67
+ const DdbMoveToBin = MoveToBinStorageOperation.createImplementation({
68
+ implementation: DdbMoveToBinImpl,
69
+ dependencies: [
70
+ CmsDdbEntryEntity,
71
+ CmsDdbDataLoaders,
72
+ CmsStorageModelProvider
73
+ ]
74
+ });
75
+ export { DdbMoveToBin };
76
+
77
+ //# sourceMappingURL=DdbMoveToBin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbMoveToBin.js","sources":["../../../src/operations/entry/DdbMoveToBin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsModel,\n CmsEntryStorageOperationsMoveToBinParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { MoveToBinStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/MoveToBinStorageOperation.js\";\nimport { CmsDdbEntryEntity } from \"~/abstractions/CmsDdbEntryEntity.js\";\nimport { CmsDdbDataLoaders } from \"~/abstractions/CmsDdbDataLoaders.js\";\nimport { CmsStorageModelProvider } from \"@webiny/api-headless-cms/features/shared/abstractions.js\";\nimport { createPartitionKey } from \"~/operations/entry/keys.js\";\nimport {\n isDeletedEntryMetaField,\n pickEntryMetaFields\n} from \"@webiny/api-headless-cms/constants.js\";\nimport { convertToStorageEntry } from \"./storageEntryUtils.js\";\n\nclass DdbMoveToBinImpl implements MoveToBinStorageOperation.Interface {\n constructor(\n private entity: CmsDdbEntryEntity.Interface,\n private dataLoaders: CmsDdbDataLoaders.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface\n ) {}\n\n async execute(\n initialModel: CmsModel,\n params: CmsEntryStorageOperationsMoveToBinParams\n ): Promise<void> {\n const { entry, storageEntry: initialStorageEntry } = params;\n const model = this.storageModelProvider.getModel(initialModel);\n\n /**\n * First we need to load all the revisions and published / latest entries.\n */\n\n let records: Awaited<ReturnType<typeof this.entity.queryAll>> = [];\n try {\n records = await this.entity.queryAll({\n partitionKey: createPartitionKey({\n id: entry.id,\n tenant: model.tenant\n }),\n options: {\n gte: \" \"\n }\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load all records.\",\n ex.code || \"LOAD_ALL_RECORDS_ERROR\",\n {\n error: ex,\n id: entry.id\n }\n );\n }\n if (records.length === 0) {\n return;\n }\n\n const storageEntry = convertToStorageEntry({\n model,\n storageEntry: initialStorageEntry\n });\n\n /**\n * Let's pick the `deleted` meta fields from the storage entry.\n */\n const updatedDeletedMetaFields = pickEntryMetaFields(storageEntry, isDeletedEntryMetaField);\n\n /**\n * Then create the batch writes for the DynamoDB, with the updated data.\n */\n const entityBatch = this.entity.createEntityWriter({\n put: records.map(record => {\n return {\n ...record,\n data: {\n ...record.data,\n ...updatedDeletedMetaFields,\n wbyDeleted: storageEntry.wbyDeleted,\n location: storageEntry.location,\n binOriginalFolderId: storageEntry.binOriginalFolderId\n }\n };\n })\n });\n /**\n * And finally write it...\n */\n try {\n await entityBatch.execute();\n this.dataLoaders.clearAll({\n tenant: entry.tenant\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not move the entry to the bin.\",\n ex.code || \"MOVE_ENTRY_TO_BIN_ERROR\",\n {\n error: ex,\n entry,\n storageEntry\n }\n );\n }\n }\n}\n\nexport const DdbMoveToBin = MoveToBinStorageOperation.createImplementation({\n implementation: DdbMoveToBinImpl,\n dependencies: [CmsDdbEntryEntity, CmsDdbDataLoaders, CmsStorageModelProvider]\n});\n"],"names":["DdbMoveToBinImpl","entity","dataLoaders","storageModelProvider","initialModel","params","entry","initialStorageEntry","model","records","createPartitionKey","ex","WebinyError","storageEntry","convertToStorageEntry","updatedDeletedMetaFields","pickEntryMetaFields","isDeletedEntryMetaField","entityBatch","record","DdbMoveToBin","MoveToBinStorageOperation","CmsDdbEntryEntity","CmsDdbDataLoaders","CmsStorageModelProvider"],"mappings":";;;;;;;;AAgBA,MAAMA;IACF,YACYC,MAAmC,EACnCC,WAAwC,EACxCC,oBAAuD,CACjE;aAHUF,MAAM,GAANA;aACAC,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;IACT;IAEH,MAAM,QACFC,YAAsB,EACtBC,MAAgD,EACnC;QACb,MAAM,EAAEC,KAAK,EAAE,cAAcC,mBAAmB,EAAE,GAAGF;QACrD,MAAMG,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAACJ;QAMjD,IAAIK,UAA4D,EAAE;QAClE,IAAI;YACAA,UAAU,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjC,cAAcC,mBAAmB;oBAC7B,IAAIJ,MAAM,EAAE;oBACZ,QAAQE,MAAM,MAAM;gBACxB;gBACA,SAAS;oBACL,KAAK;gBACT;YACJ;QACJ,EAAE,OAAOG,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,+BACdA,GAAG,IAAI,IAAI,0BACX;gBACI,OAAOA;gBACP,IAAIL,MAAM,EAAE;YAChB;QAER;QACA,IAAIG,AAAmB,MAAnBA,QAAQ,MAAM,EACd;QAGJ,MAAMI,eAAeC,sBAAsB;YACvCN;YACA,cAAcD;QAClB;QAKA,MAAMQ,2BAA2BC,oBAAoBH,cAAcI;QAKnE,MAAMC,cAAc,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/C,KAAKT,QAAQ,GAAG,CAACU,CAAAA,SACN;oBACH,GAAGA,MAAM;oBACT,MAAM;wBACF,GAAGA,OAAO,IAAI;wBACd,GAAGJ,wBAAwB;wBAC3B,YAAYF,aAAa,UAAU;wBACnC,UAAUA,aAAa,QAAQ;wBAC/B,qBAAqBA,aAAa,mBAAmB;oBACzD;gBACJ;QAER;QAIA,IAAI;YACA,MAAMK,YAAY,OAAO;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBACtB,QAAQZ,MAAM,MAAM;YACxB;QACJ,EAAE,OAAOK,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,wCACdA,GAAG,IAAI,IAAI,2BACX;gBACI,OAAOA;gBACPL;gBACAO;YACJ;QAER;IACJ;AACJ;AAEO,MAAMO,eAAeC,0BAA0B,oBAAoB,CAAC;IACvE,gBAAgBrB;IAChB,cAAc;QAACsB;QAAmBC;QAAmBC;KAAwB;AACjF"}
@@ -0,0 +1,18 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsPublishParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { PublishEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/PublishEntryStorageOperation.js";
3
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
4
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
5
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
6
+ declare class DdbPublishEntryImpl implements PublishEntryStorageOperation.Interface {
7
+ private entity;
8
+ private dataLoaders;
9
+ private storageModelProvider;
10
+ constructor(entity: CmsDdbEntryEntity.Interface, dataLoaders: CmsDdbDataLoaders.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
11
+ private getLatestRevisionByEntryId;
12
+ private getPublishedRevisionByEntryId;
13
+ execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, params: CmsEntryStorageOperationsPublishParams<T>): Promise<import("@webiny/api-headless-cms/types/types.js").CmsStorageEntry<T>>;
14
+ }
15
+ export declare const DdbPublishEntry: typeof DdbPublishEntryImpl & {
16
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/PublishEntryStorageOperation.js").IPublishEntryStorageOperation>;
17
+ };
18
+ export {};