@webiny/api-headless-cms-ddb 0.0.0-unstable.06b2ede40f → 0.0.0-unstable.0d717d18dd

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 (287) hide show
  1. package/README.md +6 -20
  2. package/abstractions/CmsDdbDataLoaders.d.ts +5 -0
  3. package/abstractions/CmsDdbDataLoaders.js +5 -0
  4. package/abstractions/CmsDdbDataLoaders.js.map +1 -0
  5. package/abstractions/CmsDdbEntryEntity.d.ts +5 -0
  6. package/abstractions/CmsDdbEntryEntity.js +5 -0
  7. package/abstractions/CmsDdbEntryEntity.js.map +1 -0
  8. package/abstractions/CmsDdbGroupEntity.d.ts +5 -0
  9. package/abstractions/CmsDdbGroupEntity.js +5 -0
  10. package/abstractions/CmsDdbGroupEntity.js.map +1 -0
  11. package/abstractions/CmsDdbModelEntity.d.ts +5 -0
  12. package/abstractions/CmsDdbModelEntity.js +5 -0
  13. package/abstractions/CmsDdbModelEntity.js.map +1 -0
  14. package/abstractions/CmsDdbTable.d.ts +5 -0
  15. package/abstractions/CmsDdbTable.js +5 -0
  16. package/abstractions/CmsDdbTable.js.map +1 -0
  17. package/definitions/entry.d.ts +4 -6
  18. package/definitions/entry.js +8 -185
  19. package/definitions/entry.js.map +1 -1
  20. package/definitions/group.d.ts +4 -6
  21. package/definitions/group.js +8 -63
  22. package/definitions/group.js.map +1 -1
  23. package/definitions/model.d.ts +4 -6
  24. package/definitions/model.js +8 -107
  25. package/definitions/model.js.map +1 -1
  26. package/definitions/table.d.ts +3 -5
  27. package/definitions/table.js +6 -29
  28. package/definitions/table.js.map +1 -1
  29. package/definitions/types.d.ts +65 -0
  30. package/definitions/types.js +0 -0
  31. package/index.d.ts +13 -3
  32. package/index.js +43 -123
  33. package/index.js.map +1 -1
  34. package/operations/entry/DdbCreateEntry.d.ts +16 -0
  35. package/operations/entry/DdbCreateEntry.js +77 -0
  36. package/operations/entry/DdbCreateEntry.js.map +1 -0
  37. package/operations/entry/DdbCreateEntryRevisionFrom.d.ts +16 -0
  38. package/operations/entry/DdbCreateEntryRevisionFrom.js +85 -0
  39. package/operations/entry/DdbCreateEntryRevisionFrom.js.map +1 -0
  40. package/operations/entry/DdbDeleteEntry.d.ts +16 -0
  41. package/operations/entry/DdbDeleteEntry.js +65 -0
  42. package/operations/entry/DdbDeleteEntry.js.map +1 -0
  43. package/operations/entry/DdbDeleteEntryRevision.d.ts +17 -0
  44. package/operations/entry/DdbDeleteEntryRevision.js +91 -0
  45. package/operations/entry/DdbDeleteEntryRevision.js.map +1 -0
  46. package/operations/entry/DdbDeleteMultipleEntries.d.ts +16 -0
  47. package/operations/entry/DdbDeleteMultipleEntries.js +56 -0
  48. package/operations/entry/DdbDeleteMultipleEntries.js.map +1 -0
  49. package/operations/entry/DdbGetEntriesByIds.d.ts +14 -0
  50. package/operations/entry/DdbGetEntriesByIds.js +31 -0
  51. package/operations/entry/DdbGetEntriesByIds.js.map +1 -0
  52. package/operations/entry/DdbGetEntry.d.ts +14 -0
  53. package/operations/entry/DdbGetEntry.js +27 -0
  54. package/operations/entry/DdbGetEntry.js.map +1 -0
  55. package/operations/entry/DdbGetLatestEntriesByIds.d.ts +14 -0
  56. package/operations/entry/DdbGetLatestEntriesByIds.js +31 -0
  57. package/operations/entry/DdbGetLatestEntriesByIds.js.map +1 -0
  58. package/operations/entry/DdbGetLatestRevisionByEntryId.d.ts +14 -0
  59. package/operations/entry/DdbGetLatestRevisionByEntryId.js +35 -0
  60. package/operations/entry/DdbGetLatestRevisionByEntryId.js.map +1 -0
  61. package/operations/entry/DdbGetPreviousRevision.d.ts +14 -0
  62. package/operations/entry/DdbGetPreviousRevision.js +53 -0
  63. package/operations/entry/DdbGetPreviousRevision.js.map +1 -0
  64. package/operations/entry/DdbGetPublishedEntriesByIds.d.ts +14 -0
  65. package/operations/entry/DdbGetPublishedEntriesByIds.js +31 -0
  66. package/operations/entry/DdbGetPublishedEntriesByIds.js.map +1 -0
  67. package/operations/entry/DdbGetPublishedRevisionByEntryId.d.ts +14 -0
  68. package/operations/entry/DdbGetPublishedRevisionByEntryId.js +35 -0
  69. package/operations/entry/DdbGetPublishedRevisionByEntryId.js.map +1 -0
  70. package/operations/entry/DdbGetRevisionById.d.ts +14 -0
  71. package/operations/entry/DdbGetRevisionById.js +34 -0
  72. package/operations/entry/DdbGetRevisionById.js.map +1 -0
  73. package/operations/entry/DdbGetRevisions.d.ts +14 -0
  74. package/operations/entry/DdbGetRevisions.js +33 -0
  75. package/operations/entry/DdbGetRevisions.js.map +1 -0
  76. package/operations/entry/DdbGetUniqueFieldValues.d.ts +12 -0
  77. package/operations/entry/DdbGetUniqueFieldValues.js +31 -0
  78. package/operations/entry/DdbGetUniqueFieldValues.js.map +1 -0
  79. package/operations/entry/DdbListEntries.d.ts +28 -0
  80. package/operations/entry/DdbListEntries.js +124 -0
  81. package/operations/entry/DdbListEntries.js.map +1 -0
  82. package/operations/entry/DdbMoveEntry.d.ts +14 -0
  83. package/operations/entry/DdbMoveEntry.js +57 -0
  84. package/operations/entry/DdbMoveEntry.js.map +1 -0
  85. package/operations/entry/DdbMoveToBin.d.ts +16 -0
  86. package/operations/entry/DdbMoveToBin.js +77 -0
  87. package/operations/entry/DdbMoveToBin.js.map +1 -0
  88. package/operations/entry/DdbPublishEntry.d.ts +18 -0
  89. package/operations/entry/DdbPublishEntry.js +161 -0
  90. package/operations/entry/DdbPublishEntry.js.map +1 -0
  91. package/operations/entry/DdbRestoreFromBin.d.ts +16 -0
  92. package/operations/entry/DdbRestoreFromBin.js +78 -0
  93. package/operations/entry/DdbRestoreFromBin.js.map +1 -0
  94. package/operations/entry/DdbUnpublishEntry.d.ts +17 -0
  95. package/operations/entry/DdbUnpublishEntry.js +112 -0
  96. package/operations/entry/DdbUnpublishEntry.js.map +1 -0
  97. package/operations/entry/DdbUpdateEntry.d.ts +17 -0
  98. package/operations/entry/DdbUpdateEntry.js +110 -0
  99. package/operations/entry/DdbUpdateEntry.js.map +1 -0
  100. package/operations/entry/dataLoader/DataLoaderCache.d.ts +1 -2
  101. package/operations/entry/dataLoader/DataLoaderCache.js +21 -35
  102. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
  103. package/operations/entry/dataLoader/constants.js +2 -7
  104. package/operations/entry/dataLoader/constants.js.map +1 -1
  105. package/operations/entry/dataLoader/createBatchScheduleFn.js +7 -22
  106. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
  107. package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +3 -3
  108. package/operations/entry/dataLoader/getAllEntryRevisions.js +20 -41
  109. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
  110. package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +3 -3
  111. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +36 -52
  112. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
  113. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +3 -3
  114. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +36 -52
  115. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
  116. package/operations/entry/dataLoader/getRevisionById.d.ts +3 -3
  117. package/operations/entry/dataLoader/getRevisionById.js +38 -58
  118. package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
  119. package/operations/entry/dataLoader/index.d.ts +3 -3
  120. package/operations/entry/dataLoader/index.js +13 -35
  121. package/operations/entry/dataLoader/index.js.map +1 -1
  122. package/operations/entry/dataLoader/types.d.ts +4 -4
  123. package/operations/entry/dataLoader/types.js +0 -7
  124. package/operations/entry/dataLoaders.d.ts +13 -13
  125. package/operations/entry/dataLoaders.js +92 -110
  126. package/operations/entry/dataLoaders.js.map +1 -1
  127. package/operations/entry/feature.d.ts +4 -0
  128. package/operations/entry/feature.js +55 -0
  129. package/operations/entry/feature.js.map +1 -0
  130. package/operations/entry/keys.d.ts +46 -2
  131. package/operations/entry/keys.js +52 -49
  132. package/operations/entry/keys.js.map +1 -1
  133. package/operations/entry/storageEntryUtils.d.ts +8 -0
  134. package/operations/entry/storageEntryUtils.js +25 -0
  135. package/operations/entry/storageEntryUtils.js.map +1 -0
  136. package/operations/group/DdbCreateGroup.d.ts +12 -0
  137. package/operations/group/DdbCreateGroup.js +35 -0
  138. package/operations/group/DdbCreateGroup.js.map +1 -0
  139. package/operations/group/DdbDeleteGroup.d.ts +12 -0
  140. package/operations/group/DdbDeleteGroup.js +31 -0
  141. package/operations/group/DdbDeleteGroup.js.map +1 -0
  142. package/operations/group/DdbGetGroup.d.ts +12 -0
  143. package/operations/group/DdbGetGroup.js +31 -0
  144. package/operations/group/DdbGetGroup.js.map +1 -0
  145. package/operations/group/DdbListGroups.d.ts +14 -0
  146. package/operations/group/DdbListGroups.js +52 -0
  147. package/operations/group/DdbListGroups.js.map +1 -0
  148. package/operations/group/DdbUpdateGroup.d.ts +12 -0
  149. package/operations/group/DdbUpdateGroup.js +35 -0
  150. package/operations/group/DdbUpdateGroup.js.map +1 -0
  151. package/operations/group/feature.d.ts +4 -0
  152. package/operations/group/feature.js +19 -0
  153. package/operations/group/feature.js.map +1 -0
  154. package/operations/group/keys.d.ts +15 -0
  155. package/operations/group/keys.js +17 -0
  156. package/operations/group/keys.js.map +1 -0
  157. package/operations/model/DdbCreateModel.d.ts +12 -0
  158. package/operations/model/DdbCreateModel.js +37 -0
  159. package/operations/model/DdbCreateModel.js.map +1 -0
  160. package/operations/model/DdbDeleteModel.d.ts +12 -0
  161. package/operations/model/DdbDeleteModel.js +31 -0
  162. package/operations/model/DdbDeleteModel.js.map +1 -0
  163. package/operations/model/DdbGetModel.d.ts +12 -0
  164. package/operations/model/DdbGetModel.js +30 -0
  165. package/operations/model/DdbGetModel.js.map +1 -0
  166. package/operations/model/DdbListModels.d.ts +12 -0
  167. package/operations/model/DdbListModels.js +36 -0
  168. package/operations/model/DdbListModels.js.map +1 -0
  169. package/operations/model/DdbUpdateModel.d.ts +12 -0
  170. package/operations/model/DdbUpdateModel.js +36 -0
  171. package/operations/model/DdbUpdateModel.js.map +1 -0
  172. package/operations/model/feature.d.ts +4 -0
  173. package/operations/model/feature.js +19 -0
  174. package/operations/model/feature.js.map +1 -0
  175. package/operations/model/keys.d.ts +15 -0
  176. package/operations/model/keys.js +16 -0
  177. package/operations/model/keys.js.map +1 -0
  178. package/package.json +27 -25
  179. package/types.d.ts +11 -51
  180. package/types.js +6 -12
  181. package/types.js.map +1 -1
  182. package/definitions/system.d.ts +0 -10
  183. package/definitions/system.js +0 -42
  184. package/definitions/system.js.map +0 -1
  185. package/dynamoDb/index.d.ts +0 -2
  186. package/dynamoDb/index.js +0 -15
  187. package/dynamoDb/index.js.map +0 -1
  188. package/dynamoDb/path/locationFolderId.d.ts +0 -2
  189. package/dynamoDb/path/locationFolderId.js +0 -43
  190. package/dynamoDb/path/locationFolderId.js.map +0 -1
  191. package/dynamoDb/path/plainObject.d.ts +0 -2
  192. package/dynamoDb/path/plainObject.js +0 -35
  193. package/dynamoDb/path/plainObject.js.map +0 -1
  194. package/dynamoDb/storage/longText.d.ts +0 -10
  195. package/dynamoDb/storage/longText.js +0 -94
  196. package/dynamoDb/storage/longText.js.map +0 -1
  197. package/dynamoDb/storage/richText.d.ts +0 -2
  198. package/dynamoDb/storage/richText.js +0 -61
  199. package/dynamoDb/storage/richText.js.map +0 -1
  200. package/dynamoDb/transformValue/datetime.d.ts +0 -5
  201. package/dynamoDb/transformValue/datetime.js +0 -47
  202. package/dynamoDb/transformValue/datetime.js.map +0 -1
  203. package/operations/entry/dataLoader/types.js.map +0 -1
  204. package/operations/entry/filtering/createExpressions.d.ts +0 -26
  205. package/operations/entry/filtering/createExpressions.js +0 -178
  206. package/operations/entry/filtering/createExpressions.js.map +0 -1
  207. package/operations/entry/filtering/createFields.d.ts +0 -16
  208. package/operations/entry/filtering/createFields.js +0 -108
  209. package/operations/entry/filtering/createFields.js.map +0 -1
  210. package/operations/entry/filtering/extractSort.d.ts +0 -17
  211. package/operations/entry/filtering/extractSort.js +0 -69
  212. package/operations/entry/filtering/extractSort.js.map +0 -1
  213. package/operations/entry/filtering/filter.d.ts +0 -15
  214. package/operations/entry/filtering/filter.js +0 -158
  215. package/operations/entry/filtering/filter.js.map +0 -1
  216. package/operations/entry/filtering/fullTextSearch.d.ts +0 -14
  217. package/operations/entry/filtering/fullTextSearch.js +0 -50
  218. package/operations/entry/filtering/fullTextSearch.js.map +0 -1
  219. package/operations/entry/filtering/getValue.d.ts +0 -5
  220. package/operations/entry/filtering/getValue.js +0 -66
  221. package/operations/entry/filtering/getValue.js.map +0 -1
  222. package/operations/entry/filtering/index.d.ts +0 -2
  223. package/operations/entry/filtering/index.js +0 -21
  224. package/operations/entry/filtering/index.js.map +0 -1
  225. package/operations/entry/filtering/mapPlugins.d.ts +0 -8
  226. package/operations/entry/filtering/mapPlugins.js +0 -33
  227. package/operations/entry/filtering/mapPlugins.js.map +0 -1
  228. package/operations/entry/filtering/plugins/defaultFilterCreate.d.ts +0 -2
  229. package/operations/entry/filtering/plugins/defaultFilterCreate.js +0 -45
  230. package/operations/entry/filtering/plugins/defaultFilterCreate.js.map +0 -1
  231. package/operations/entry/filtering/plugins/index.d.ts +0 -1
  232. package/operations/entry/filtering/plugins/index.js +0 -16
  233. package/operations/entry/filtering/plugins/index.js.map +0 -1
  234. package/operations/entry/filtering/plugins/objectFilterCreate.d.ts +0 -2
  235. package/operations/entry/filtering/plugins/objectFilterCreate.js +0 -90
  236. package/operations/entry/filtering/plugins/objectFilterCreate.js.map +0 -1
  237. package/operations/entry/filtering/plugins/refFilterCreate.d.ts +0 -3
  238. package/operations/entry/filtering/plugins/refFilterCreate.js +0 -80
  239. package/operations/entry/filtering/plugins/refFilterCreate.js.map +0 -1
  240. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.d.ts +0 -2
  241. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js +0 -65
  242. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js.map +0 -1
  243. package/operations/entry/filtering/sort.d.ts +0 -12
  244. package/operations/entry/filtering/sort.js +0 -71
  245. package/operations/entry/filtering/sort.js.map +0 -1
  246. package/operations/entry/filtering/systemFields.d.ts +0 -4
  247. package/operations/entry/filtering/systemFields.js +0 -90
  248. package/operations/entry/filtering/systemFields.js.map +0 -1
  249. package/operations/entry/filtering/transform.d.ts +0 -6
  250. package/operations/entry/filtering/transform.js +0 -18
  251. package/operations/entry/filtering/transform.js.map +0 -1
  252. package/operations/entry/filtering/types.d.ts +0 -40
  253. package/operations/entry/filtering/types.js +0 -7
  254. package/operations/entry/filtering/types.js.map +0 -1
  255. package/operations/entry/filtering/values.d.ts +0 -2
  256. package/operations/entry/filtering/values.js +0 -24
  257. package/operations/entry/filtering/values.js.map +0 -1
  258. package/operations/entry/filtering/where.d.ts +0 -5
  259. package/operations/entry/filtering/where.js +0 -35
  260. package/operations/entry/filtering/where.js.map +0 -1
  261. package/operations/entry/index.d.ts +0 -8
  262. package/operations/entry/index.js +0 -1306
  263. package/operations/entry/index.js.map +0 -1
  264. package/operations/group/index.d.ts +0 -9
  265. package/operations/group/index.js +0 -174
  266. package/operations/group/index.js.map +0 -1
  267. package/operations/model/index.d.ts +0 -7
  268. package/operations/model/index.js +0 -150
  269. package/operations/model/index.js.map +0 -1
  270. package/operations/system/index.d.ts +0 -7
  271. package/operations/system/index.js +0 -94
  272. package/operations/system/index.js.map +0 -1
  273. package/plugins/CmsEntryFieldFilterPathPlugin.d.ts +0 -23
  274. package/plugins/CmsEntryFieldFilterPathPlugin.js +0 -48
  275. package/plugins/CmsEntryFieldFilterPathPlugin.js.map +0 -1
  276. package/plugins/CmsEntryFieldFilterPlugin.d.ts +0 -43
  277. package/plugins/CmsEntryFieldFilterPlugin.js +0 -27
  278. package/plugins/CmsEntryFieldFilterPlugin.js.map +0 -1
  279. package/plugins/CmsEntryFieldSortingPlugin.d.ts +0 -42
  280. package/plugins/CmsEntryFieldSortingPlugin.js +0 -27
  281. package/plugins/CmsEntryFieldSortingPlugin.js.map +0 -1
  282. package/plugins/CmsFieldFilterValueTransformPlugin.d.ts +0 -11
  283. package/plugins/CmsFieldFilterValueTransformPlugin.js +0 -23
  284. package/plugins/CmsFieldFilterValueTransformPlugin.js.map +0 -1
  285. package/plugins/index.d.ts +0 -4
  286. package/plugins/index.js +0 -51
  287. package/plugins/index.js.map +0 -1
@@ -1,31 +1,8 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createTable = void 0;
7
- var _toolbox = require("@webiny/db-dynamodb/toolbox");
8
- const createTable = ({
9
- table,
10
- documentClient
11
- }) => {
12
- const tableConfig = {
13
- name: process.env.DB_TABLE_HEADLESS_CMS || process.env.DB_TABLE,
14
- partitionKey: "PK",
15
- sortKey: "SK",
16
- DocumentClient: documentClient,
17
- indexes: {
18
- GSI1: {
19
- partitionKey: "GSI1_PK",
20
- sortKey: "GSI1_SK"
21
- }
22
- },
23
- autoExecute: true,
24
- autoParse: true
25
- };
26
- const config = typeof table === "function" ? table(tableConfig) : tableConfig;
27
- return new _toolbox.Table(config);
28
- };
29
- exports.createTable = createTable;
1
+ import { createTable } from "@webiny/db-dynamodb";
2
+ const table_createTable = (params)=>createTable({
3
+ name: params.name || process.env.DB_TABLE_HEADLESS_CMS || process.env.DB_TABLE,
4
+ documentClient: params.documentClient
5
+ });
6
+ export { table_createTable as createTable };
30
7
 
31
8
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_toolbox","require","createTable","table","documentClient","tableConfig","name","process","env","DB_TABLE_HEADLESS_CMS","DB_TABLE","partitionKey","sortKey","DocumentClient","indexes","GSI1","autoExecute","autoParse","config","Table","exports"],"sources":["table.ts"],"sourcesContent":["import type { TableModifier } from \"~/types\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { Table } from \"@webiny/db-dynamodb/toolbox\";\nimport type { TableConstructor } from \"@webiny/db-dynamodb/toolbox\";\n\ninterface Params {\n table?: TableModifier;\n documentClient: DynamoDBDocument;\n}\nexport const createTable = ({ table, documentClient }: Params): Table<string, string, string> => {\n const tableConfig: TableConstructor<string, string, string> = {\n name: process.env.DB_TABLE_HEADLESS_CMS || (process.env.DB_TABLE as string),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n };\n\n const config = typeof table === \"function\" ? table(tableConfig) : tableConfig;\n\n return new Table(config);\n};\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAOO,MAAMC,WAAW,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAuB,CAAC,KAAoC;EAC7F,MAAMC,WAAqD,GAAG;IAC1DC,IAAI,EAAEC,OAAO,CAACC,GAAG,CAACC,qBAAqB,IAAKF,OAAO,CAACC,GAAG,CAACE,QAAmB;IAC3EC,YAAY,EAAE,IAAI;IAClBC,OAAO,EAAE,IAAI;IACbC,cAAc,EAAET,cAAc;IAC9BU,OAAO,EAAE;MACLC,IAAI,EAAE;QACFJ,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb;IACJ,CAAC;IACDI,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE;EACf,CAAC;EAED,MAAMC,MAAM,GAAG,OAAOf,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACE,WAAW,CAAC,GAAGA,WAAW;EAE7E,OAAO,IAAIc,cAAK,CAACD,MAAM,CAAC;AAC5B,CAAC;AAACE,OAAA,CAAAlB,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"file":"definitions/table.js","sources":["../../src/definitions/table.ts"],"sourcesContent":["import { createTable as baseCreateTable } from \"@webiny/db-dynamodb\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\n\ninterface Params {\n name?: string;\n documentClient: DynamoDBDocument;\n}\n\nexport const createTable = (params: Params) => {\n return baseCreateTable({\n name: params.name || process.env.DB_TABLE_HEADLESS_CMS || (process.env.DB_TABLE as string),\n documentClient: params.documentClient\n });\n};\n"],"names":["createTable","params","baseCreateTable","process"],"mappings":";AAQO,MAAMA,oBAAc,CAACC,SACjBC,YAAgB;QACnB,MAAMD,OAAO,IAAI,IAAIE,QAAQ,GAAG,CAAC,qBAAqB,IAAKA,QAAQ,GAAG,CAAC,QAAQ;QAC/E,gBAAgBF,OAAO,cAAc;IACzC"}
@@ -0,0 +1,65 @@
1
+ import type { IEntity, IStandardEntityAttributes } from "@webiny/db-dynamodb";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
+ import type { CmsEntryStatus, CmsGroup, CmsIdentity, ICmsEntryLive, ICmsEntryLocation, ICmsEntrySystem, StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
4
+ export interface IEntryEntityAttributesData {
5
+ id: string;
6
+ entryId: string;
7
+ modelId: string;
8
+ tenant: string;
9
+ /**
10
+ * Revision-level meta fields. 👇
11
+ */
12
+ revisionCreatedOn: string;
13
+ revisionModifiedOn: string | null;
14
+ revisionSavedOn: string;
15
+ revisionDeletedOn: string | null;
16
+ revisionRestoredOn: string | null;
17
+ revisionFirstPublishedOn: string | null;
18
+ revisionLastPublishedOn: string | null;
19
+ revisionCreatedBy: CmsIdentity;
20
+ revisionModifiedBy: CmsIdentity | null;
21
+ revisionSavedBy: CmsIdentity;
22
+ revisionDeletedBy: CmsIdentity | null;
23
+ revisionRestoredBy: CmsIdentity | null;
24
+ revisionFirstPublishedBy: CmsIdentity | null;
25
+ revisionLastPublishedBy: CmsIdentity | null;
26
+ /**
27
+ * Entry-level meta fields. 👇
28
+ */
29
+ createdOn: string;
30
+ modifiedOn: string | null;
31
+ savedOn: string;
32
+ deletedOn: string | null;
33
+ restoredOn: string | null;
34
+ firstPublishedOn: string | null;
35
+ lastPublishedOn: string | null;
36
+ createdBy: CmsIdentity;
37
+ modifiedBy: CmsIdentity | null;
38
+ savedBy: CmsIdentity;
39
+ deletedBy: CmsIdentity | null;
40
+ restoredBy: CmsIdentity | null;
41
+ firstPublishedBy: CmsIdentity | null;
42
+ lastPublishedBy: CmsIdentity | null;
43
+ /**
44
+ * The rest. 👇
45
+ */
46
+ version: number;
47
+ locked: boolean;
48
+ status: CmsEntryStatus;
49
+ location?: ICmsEntryLocation;
50
+ wbyDeleted?: boolean | null;
51
+ binOriginalFolderId?: string;
52
+ values: GenericRecord;
53
+ meta?: GenericRecord;
54
+ system?: ICmsEntrySystem;
55
+ live: ICmsEntryLive | null;
56
+ revisionDescription: string | undefined;
57
+ /**
58
+ * A timestamp of when the entry should be automatically deleted from the database.
59
+ */
60
+ expiresAt: number | null;
61
+ }
62
+ export type IEntryEntityAttributes = IStandardEntityAttributes<IEntryEntityAttributesData>;
63
+ export type IModelEntity = IEntity<IStandardEntityAttributes<StorageCmsModel>>;
64
+ export type IGroupEntity = IEntity<IStandardEntityAttributes<CmsGroup>>;
65
+ export type IEntryEntity = IEntity<IEntryEntityAttributes>;
File without changes
package/index.d.ts CHANGED
@@ -1,3 +1,13 @@
1
- import type { StorageOperationsFactory } from "./types";
2
- export * from "./plugins";
3
- export declare const createStorageOperations: StorageOperationsFactory;
1
+ /**
2
+ * DI-native feature — registers the DynamoDB CMS storage operations directly via the DI container.
3
+ * Requires DynamoDBClient to be registered in the container first (via DbFeature).
4
+ *
5
+ * Usage:
6
+ * DbFeature.register(container, { documentClient, table });
7
+ * HeadlessCmsDdbFeature.register(container);
8
+ * // then in request: HeadlessCmsFeature.register(container, { type: "manage" });
9
+ */
10
+ export declare const HeadlessCmsDdbFeature: {
11
+ name: string;
12
+ register(container: import("@webiny/di").Container): void;
13
+ };
package/index.js CHANGED
@@ -1,127 +1,47 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- var _exportNames = {
8
- createStorageOperations: true
9
- };
10
- exports.createStorageOperations = void 0;
11
- var _filters = _interopRequireDefault(require("@webiny/db-dynamodb/plugins/filters"));
12
- var _dynamoDb = _interopRequireDefault(require("./dynamoDb"));
13
- var _types = require("./types");
14
- var _table = require("./definitions/table");
15
- var _system = require("./definitions/system");
16
- var _group = require("./definitions/group");
17
- var _model = require("./definitions/model");
18
- var _entry = require("./definitions/entry");
19
- var _plugins = require("@webiny/plugins");
20
- var _system2 = require("./operations/system");
21
- var _group2 = require("./operations/group");
22
- var _model2 = require("./operations/model");
23
- var _entry2 = require("./operations/entry");
24
- var _plugins2 = require("./operations/entry/filtering/plugins");
25
- var _plugins3 = require("./plugins");
26
- Object.keys(_plugins3).forEach(function (key) {
27
- if (key === "default" || key === "__esModule") return;
28
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
29
- if (key in exports && exports[key] === _plugins3[key]) return;
30
- Object.defineProperty(exports, key, {
31
- enumerable: true,
32
- get: function () {
33
- return _plugins3[key];
1
+ import { ENTITIES } from "./types.js";
2
+ import { createGroupEntity } from "./definitions/group.js";
3
+ import { createModelEntity } from "./definitions/model.js";
4
+ import { createEntryEntity } from "./definitions/entry.js";
5
+ import { FilterRegistriesFeature } from "@webiny/api-headless-cms-storage";
6
+ import { createTable } from "./definitions/table.js";
7
+ import { createFeature } from "@webiny/feature/api/index.js";
8
+ import { DynamoDBClient } from "@webiny/db-dynamodb";
9
+ import { FilterUtilFeature } from "@webiny/db-dynamodb/feature/FilterUtil/feature.js";
10
+ import { CmsDdbTable } from "./abstractions/CmsDdbTable.js";
11
+ import { CmsDdbGroupEntity } from "./abstractions/CmsDdbGroupEntity.js";
12
+ import { CmsDdbModelEntity } from "./abstractions/CmsDdbModelEntity.js";
13
+ import { CmsDdbEntryEntity } from "./abstractions/CmsDdbEntryEntity.js";
14
+ import { DdbGroupStorageOpsFeature } from "./operations/group/feature.js";
15
+ import { DdbModelStorageOpsFeature } from "./operations/model/feature.js";
16
+ import { DdbEntryStorageOpsFeature } from "./operations/entry/feature.js";
17
+ const HeadlessCmsDdbFeature = createFeature({
18
+ name: "cms.storageOperations.ddb",
19
+ register: (container)=>{
20
+ FilterRegistriesFeature.register(container);
21
+ FilterUtilFeature.register(container);
22
+ const db = container.resolve(DynamoDBClient);
23
+ const documentClient = db.client;
24
+ const tableInstance = createTable({
25
+ documentClient
26
+ });
27
+ container.registerInstance(CmsDdbTable, tableInstance);
28
+ container.registerInstance(CmsDdbGroupEntity, createGroupEntity({
29
+ entityName: ENTITIES.GROUPS,
30
+ table: tableInstance
31
+ }));
32
+ container.registerInstance(CmsDdbModelEntity, createModelEntity({
33
+ entityName: ENTITIES.MODELS,
34
+ table: tableInstance
35
+ }));
36
+ container.registerInstance(CmsDdbEntryEntity, createEntryEntity({
37
+ entityName: ENTITIES.ENTRIES,
38
+ table: tableInstance
39
+ }));
40
+ DdbGroupStorageOpsFeature.register(container);
41
+ DdbModelStorageOpsFeature.register(container);
42
+ DdbEntryStorageOpsFeature.register(container);
34
43
  }
35
- });
36
44
  });
37
- var _ValueFilterPlugin = require("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin");
38
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
39
- var _api = require("@webiny/api");
40
- const createStorageOperations = params => {
41
- const {
42
- attributes,
43
- table,
44
- documentClient,
45
- plugins: userPlugins
46
- } = params;
47
- const tableInstance = (0, _table.createTable)({
48
- table,
49
- documentClient
50
- });
51
- const entities = {
52
- system: (0, _system.createSystemEntity)({
53
- entityName: _types.ENTITIES.SYSTEM,
54
- table: tableInstance,
55
- attributes: attributes ? attributes[_types.ENTITIES.SYSTEM] : {}
56
- }),
57
- groups: (0, _group.createGroupEntity)({
58
- entityName: _types.ENTITIES.GROUPS,
59
- table: tableInstance,
60
- attributes: attributes ? attributes[_types.ENTITIES.GROUPS] : {}
61
- }),
62
- models: (0, _model.createModelEntity)({
63
- entityName: _types.ENTITIES.MODELS,
64
- table: tableInstance,
65
- attributes: attributes ? attributes[_types.ENTITIES.MODELS] : {}
66
- }),
67
- entries: (0, _entry.createEntryEntity)({
68
- entityName: _types.ENTITIES.ENTRIES,
69
- table: tableInstance,
70
- attributes: attributes ? attributes[_types.ENTITIES.ENTRIES] : {}
71
- })
72
- };
73
- const plugins = new _plugins.PluginsContainer([
74
- /**
75
- * DynamoDB filter plugins for the where conditions.
76
- */
77
- (0, _filters.default)(),
78
- /**
79
- * Field plugins for DynamoDB.
80
- */
81
- (0, _dynamoDb.default)(),
82
- /**
83
- * Filter create plugins.
84
- */
85
- (0, _plugins2.createFilterCreatePlugins)(),
86
- /**
87
- * User defined custom plugins.
88
- */
89
- ...(userPlugins || [])]);
90
- const entries = (0, _entry2.createEntriesStorageOperations)({
91
- entity: entities.entries,
92
- plugins
93
- });
94
- return {
95
- name: "dynamodb",
96
- beforeInit: async context => {
97
- const types = ["cms-model-field-to-graphql", _plugins3.CmsEntryFieldFilterPathPlugin.type, _plugins3.CmsFieldFilterValueTransformPlugin.type, _plugins3.CmsEntryFieldFilterPlugin.type, _plugins3.CmsEntryFieldSortingPlugin.type, _ValueFilterPlugin.ValueFilterPlugin.type, _apiHeadlessCms.StorageOperationsCmsModelPlugin.type, _apiHeadlessCms.StorageTransformPlugin.type, _api.CompressorPlugin.type];
98
- /**
99
- * Collect all required plugins from parent context.
100
- */
101
- for (const type of types) {
102
- plugins.mergeByType(context.plugins, type);
103
- }
104
- /**
105
- * Pass the plugins to the parent context.
106
- */
107
- context.plugins.register([(0, _dynamoDb.default)()]);
108
- entries.dataLoaders.clearAll();
109
- },
110
- getEntities: () => entities,
111
- getTable: () => tableInstance,
112
- system: (0, _system2.createSystemStorageOperations)({
113
- entity: entities.system
114
- }),
115
- groups: (0, _group2.createGroupsStorageOperations)({
116
- entity: entities.groups,
117
- plugins
118
- }),
119
- models: (0, _model2.createModelsStorageOperations)({
120
- entity: entities.models
121
- }),
122
- entries
123
- };
124
- };
125
- exports.createStorageOperations = createStorageOperations;
45
+ export { HeadlessCmsDdbFeature };
126
46
 
127
47
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_filters","_interopRequireDefault","require","_dynamoDb","_types","_table","_system","_group","_model","_entry","_plugins","_system2","_group2","_model2","_entry2","_plugins2","_plugins3","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_ValueFilterPlugin","_apiHeadlessCms","_api","createStorageOperations","params","attributes","table","documentClient","plugins","userPlugins","tableInstance","createTable","entities","system","createSystemEntity","entityName","ENTITIES","SYSTEM","groups","createGroupEntity","GROUPS","models","createModelEntity","MODELS","entries","createEntryEntity","ENTRIES","PluginsContainer","dynamoDbValueFilters","dynamoDbPlugins","createFilterCreatePlugins","createEntriesStorageOperations","entity","name","beforeInit","context","types","CmsEntryFieldFilterPathPlugin","type","CmsFieldFilterValueTransformPlugin","CmsEntryFieldFilterPlugin","CmsEntryFieldSortingPlugin","ValueFilterPlugin","StorageOperationsCmsModelPlugin","StorageTransformPlugin","CompressorPlugin","mergeByType","register","dataLoaders","clearAll","getEntities","getTable","createSystemStorageOperations","createGroupsStorageOperations","createModelsStorageOperations"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport type { StorageOperationsFactory } from \"~/types\";\nimport { ENTITIES } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createSystemStorageOperations } from \"~/operations/system\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport { createModelsStorageOperations } from \"~/operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\n\nimport { createFilterCreatePlugins } from \"~/operations/entry/filtering/plugins\";\nimport {\n CmsEntryFieldFilterPathPlugin,\n CmsEntryFieldFilterPlugin,\n CmsEntryFieldSortingPlugin,\n CmsFieldFilterValueTransformPlugin\n} from \"~/plugins\";\nimport { ValueFilterPlugin } from \"@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin\";\nimport { StorageOperationsCmsModelPlugin, StorageTransformPlugin } from \"@webiny/api-headless-cms\";\nimport { CompressorPlugin } from \"@webiny/api\";\n\nexport * from \"./plugins\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const { attributes, table, documentClient, plugins: userPlugins } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n\n const entities = {\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Filter create plugins.\n */\n createFilterCreatePlugins(),\n /**\n * User defined custom plugins.\n */\n ...(userPlugins || [])\n ]);\n\n const entries = createEntriesStorageOperations({\n entity: entities.entries,\n plugins\n });\n\n return {\n name: \"dynamodb\",\n beforeInit: async context => {\n const types: string[] = [\n \"cms-model-field-to-graphql\",\n CmsEntryFieldFilterPathPlugin.type,\n CmsFieldFilterValueTransformPlugin.type,\n CmsEntryFieldFilterPlugin.type,\n CmsEntryFieldSortingPlugin.type,\n ValueFilterPlugin.type,\n StorageOperationsCmsModelPlugin.type,\n StorageTransformPlugin.type,\n CompressorPlugin.type\n ];\n /**\n * Collect all required plugins from parent context.\n */\n for (const type of types) {\n plugins.mergeByType(context.plugins, type);\n }\n /**\n * Pass the plugins to the parent context.\n */\n context.plugins.register([dynamoDbPlugins()]);\n\n entries.dataLoaders.clearAll();\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models\n }),\n entries\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { ENTITIES } from \"~/types.js\";\nimport { createGroupEntity } from \"~/definitions/group.js\";\nimport { createModelEntity } from \"~/definitions/model.js\";\nimport { createEntryEntity } from \"~/definitions/entry.js\";\nimport { FilterRegistriesFeature } from \"@webiny/api-headless-cms-storage\";\nimport { createTable } from \"~/definitions/table.js\";\nimport { createFeature } from \"@webiny/feature/api/index.js\";\nimport { DynamoDBClient } from \"@webiny/db-dynamodb\";\nimport { FilterUtilFeature } from \"@webiny/db-dynamodb/feature/FilterUtil/feature.js\";\nimport { CmsDdbTable } from \"~/abstractions/CmsDdbTable.js\";\nimport { CmsDdbGroupEntity } from \"~/abstractions/CmsDdbGroupEntity.js\";\nimport { CmsDdbModelEntity } from \"~/abstractions/CmsDdbModelEntity.js\";\nimport { CmsDdbEntryEntity } from \"~/abstractions/CmsDdbEntryEntity.js\";\nimport { DdbGroupStorageOpsFeature } from \"~/operations/group/feature.js\";\nimport { DdbModelStorageOpsFeature } from \"~/operations/model/feature.js\";\nimport { DdbEntryStorageOpsFeature } from \"~/operations/entry/feature.js\";\n\n/**\n * DI-native feature — registers the DynamoDB CMS storage operations directly via the DI container.\n * Requires DynamoDBClient to be registered in the container first (via DbFeature).\n *\n * Usage:\n * DbFeature.register(container, { documentClient, table });\n * HeadlessCmsDdbFeature.register(container);\n * // then in request: HeadlessCmsFeature.register(container, { type: \"manage\" });\n */\nexport const HeadlessCmsDdbFeature = createFeature({\n name: \"cms.storageOperations.ddb\",\n register: container => {\n FilterRegistriesFeature.register(container);\n FilterUtilFeature.register(container);\n\n const db = container.resolve(DynamoDBClient);\n const documentClient = db.client;\n\n const tableInstance = createTable({ documentClient });\n\n // Register infrastructure instances (app-scoped)\n container.registerInstance(CmsDdbTable, tableInstance);\n container.registerInstance(\n CmsDdbGroupEntity,\n createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance\n })\n );\n container.registerInstance(\n CmsDdbModelEntity,\n createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance\n })\n );\n container.registerInstance(\n CmsDdbEntryEntity,\n createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance\n })\n );\n\n DdbGroupStorageOpsFeature.register(container);\n DdbModelStorageOpsFeature.register(container);\n DdbEntryStorageOpsFeature.register(container);\n }\n});\n"],"names":["HeadlessCmsDdbFeature","createFeature","container","FilterRegistriesFeature","FilterUtilFeature","db","DynamoDBClient","documentClient","tableInstance","createTable","CmsDdbTable","CmsDdbGroupEntity","createGroupEntity","ENTITIES","CmsDdbModelEntity","createModelEntity","CmsDdbEntryEntity","createEntryEntity","DdbGroupStorageOpsFeature","DdbModelStorageOpsFeature","DdbEntryStorageOpsFeature"],"mappings":";;;;;;;;;;;;;;;;AA0BO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAAUC,CAAAA;QACNC,wBAAwB,QAAQ,CAACD;QACjCE,kBAAkB,QAAQ,CAACF;QAE3B,MAAMG,KAAKH,UAAU,OAAO,CAACI;QAC7B,MAAMC,iBAAiBF,GAAG,MAAM;QAEhC,MAAMG,gBAAgBC,YAAY;YAAEF;QAAe;QAGnDL,UAAU,gBAAgB,CAACQ,aAAaF;QACxCN,UAAU,gBAAgB,CACtBS,mBACAC,kBAAkB;YACd,YAAYC,SAAS,MAAM;YAC3B,OAAOL;QACX;QAEJN,UAAU,gBAAgB,CACtBY,mBACAC,kBAAkB;YACd,YAAYF,SAAS,MAAM;YAC3B,OAAOL;QACX;QAEJN,UAAU,gBAAgB,CACtBc,mBACAC,kBAAkB;YACd,YAAYJ,SAAS,OAAO;YAC5B,OAAOL;QACX;QAGJU,0BAA0B,QAAQ,CAAChB;QACnCiB,0BAA0B,QAAQ,CAACjB;QACnCkB,0BAA0B,QAAQ,CAAClB;IACvC;AACJ"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsCreateParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { CreateEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.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 DdbCreateEntryImpl implements CreateEntryStorageOperation.Interface {
7
+ private entity;
8
+ private dataLoaders;
9
+ private storageModelProvider;
10
+ constructor(entity: CmsDdbEntryEntity.Interface, dataLoaders: CmsDdbDataLoaders.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
11
+ execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, params: CmsEntryStorageOperationsCreateParams<T>): Promise<import("@webiny/api-headless-cms/types/types.js").CmsStorageEntry<T>>;
12
+ }
13
+ export declare const DdbCreateEntry: typeof DdbCreateEntryImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.js").ICreateEntryStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,77 @@
1
+ import error from "@webiny/error";
2
+ import { CreateEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.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 { createEntryLatestKeys, createEntryPublishedKeys, createEntryRevisionKeys } from "./keys.js";
7
+ import { convertToStorageEntry } from "./storageEntryUtils.js";
8
+ class DdbCreateEntryImpl {
9
+ constructor(entity, dataLoaders, storageModelProvider){
10
+ this.entity = entity;
11
+ this.dataLoaders = dataLoaders;
12
+ this.storageModelProvider = storageModelProvider;
13
+ }
14
+ async execute(initialModel, params) {
15
+ const { entry, storageEntry: initialStorageEntry } = params;
16
+ const model = this.storageModelProvider.getModel(initialModel);
17
+ const isPublished = "published" === entry.status;
18
+ const locked = isPublished ? true : entry.locked;
19
+ const storageEntry = convertToStorageEntry({
20
+ model,
21
+ storageEntry: initialStorageEntry
22
+ });
23
+ const storageEntryRevisionKeys = createEntryRevisionKeys(entry);
24
+ const storageEntryLatestKeys = createEntryLatestKeys(entry);
25
+ const entityBatch = this.entity.createEntityWriter({
26
+ put: [
27
+ {
28
+ ...storageEntryRevisionKeys,
29
+ data: {
30
+ ...storageEntry,
31
+ locked
32
+ }
33
+ },
34
+ {
35
+ ...storageEntryLatestKeys,
36
+ data: {
37
+ ...storageEntry,
38
+ locked
39
+ }
40
+ }
41
+ ]
42
+ });
43
+ if (isPublished) {
44
+ const storageEntryPublishedKeys = createEntryPublishedKeys(storageEntry);
45
+ entityBatch.put({
46
+ ...storageEntryPublishedKeys,
47
+ data: {
48
+ ...storageEntry,
49
+ locked
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 insert data into the DynamoDB.", ex.code || "CREATE_ENTRY_ERROR", {
60
+ error: ex,
61
+ entry
62
+ });
63
+ }
64
+ return initialStorageEntry;
65
+ }
66
+ }
67
+ const DdbCreateEntry = CreateEntryStorageOperation.createImplementation({
68
+ implementation: DdbCreateEntryImpl,
69
+ dependencies: [
70
+ CmsDdbEntryEntity,
71
+ CmsDdbDataLoaders,
72
+ CmsStorageModelProvider
73
+ ]
74
+ });
75
+ export { DdbCreateEntry };
76
+
77
+ //# sourceMappingURL=DdbCreateEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbCreateEntry.js","sources":["../../../src/operations/entry/DdbCreateEntry.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsCreateParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { CreateEntryStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryStorageOperation.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 {\n createEntryLatestKeys,\n createEntryPublishedKeys,\n createEntryRevisionKeys\n} from \"~/operations/entry/keys.js\";\nimport { convertToStorageEntry } from \"./storageEntryUtils.js\";\n\nclass DdbCreateEntryImpl implements CreateEntryStorageOperation.Interface {\n constructor(\n private entity: CmsDdbEntryEntity.Interface,\n private dataLoaders: CmsDdbDataLoaders.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n params: CmsEntryStorageOperationsCreateParams<T>\n ) {\n const { entry, storageEntry: initialStorageEntry } = params;\n const model = this.storageModelProvider.getModel(initialModel);\n\n const isPublished = entry.status === \"published\";\n\n const locked = isPublished ? true : entry.locked;\n\n const storageEntry = convertToStorageEntry({\n model,\n storageEntry: initialStorageEntry\n });\n\n const storageEntryRevisionKeys = createEntryRevisionKeys(entry);\n const storageEntryLatestKeys = createEntryLatestKeys(entry);\n /**\n * We need to:\n * - create new main entry item\n * - create new or update the latest entry item\n */\n const entityBatch = this.entity.createEntityWriter({\n put: [\n {\n ...storageEntryRevisionKeys,\n data: {\n ...storageEntry,\n locked\n }\n },\n {\n ...storageEntryLatestKeys,\n data: {\n ...storageEntry,\n locked\n }\n }\n ]\n });\n\n /**\n * We need to create published entry if\n */\n if (isPublished) {\n const storageEntryPublishedKeys = createEntryPublishedKeys(storageEntry);\n entityBatch.put({\n ...storageEntryPublishedKeys,\n data: {\n ...storageEntry,\n locked\n }\n });\n }\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 insert data into the DynamoDB.\",\n ex.code || \"CREATE_ENTRY_ERROR\",\n {\n error: ex,\n entry\n }\n );\n }\n\n return initialStorageEntry;\n }\n}\n\nexport const DdbCreateEntry = CreateEntryStorageOperation.createImplementation({\n implementation: DdbCreateEntryImpl,\n dependencies: [CmsDdbEntryEntity, CmsDdbDataLoaders, CmsStorageModelProvider]\n});\n"],"names":["DdbCreateEntryImpl","entity","dataLoaders","storageModelProvider","initialModel","params","entry","initialStorageEntry","model","isPublished","locked","storageEntry","convertToStorageEntry","storageEntryRevisionKeys","createEntryRevisionKeys","storageEntryLatestKeys","createEntryLatestKeys","entityBatch","storageEntryPublishedKeys","createEntryPublishedKeys","ex","WebinyError","DdbCreateEntry","CreateEntryStorageOperation","CmsDdbEntryEntity","CmsDdbDataLoaders","CmsStorageModelProvider"],"mappings":";;;;;;;AAiBA,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,EAClD;QACE,MAAM,EAAEC,KAAK,EAAE,cAAcC,mBAAmB,EAAE,GAAGF;QACrD,MAAMG,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAACJ;QAEjD,MAAMK,cAAcH,AAAiB,gBAAjBA,MAAM,MAAM;QAEhC,MAAMI,SAASD,cAAc,OAAOH,MAAM,MAAM;QAEhD,MAAMK,eAAeC,sBAAsB;YACvCJ;YACA,cAAcD;QAClB;QAEA,MAAMM,2BAA2BC,wBAAwBR;QACzD,MAAMS,yBAAyBC,sBAAsBV;QAMrD,MAAMW,cAAc,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/C,KAAK;gBACD;oBACI,GAAGJ,wBAAwB;oBAC3B,MAAM;wBACF,GAAGF,YAAY;wBACfD;oBACJ;gBACJ;gBACA;oBACI,GAAGK,sBAAsB;oBACzB,MAAM;wBACF,GAAGJ,YAAY;wBACfD;oBACJ;gBACJ;aACH;QACL;QAKA,IAAID,aAAa;YACb,MAAMS,4BAA4BC,yBAAyBR;YAC3DM,YAAY,GAAG,CAAC;gBACZ,GAAGC,yBAAyB;gBAC5B,MAAM;oBACF,GAAGP,YAAY;oBACfD;gBACJ;YACJ;QACJ;QAEA,IAAI;YACA,MAAMO,YAAY,OAAO;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBACtB,QAAQX,MAAM,MAAM;YACxB;QACJ,EAAE,OAAOc,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,4CACdA,GAAG,IAAI,IAAI,sBACX;gBACI,OAAOA;gBACPd;YACJ;QAER;QAEA,OAAOC;IACX;AACJ;AAEO,MAAMe,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBvB;IAChB,cAAc;QAACwB;QAAmBC;QAAmBC;KAAwB;AACjF"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModel, CmsEntryValues, CmsEntryStorageOperationsCreateRevisionFromParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { CreateEntryRevisionFromStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.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 DdbCreateEntryRevisionFromImpl implements CreateEntryRevisionFromStorageOperation.Interface {
7
+ private entity;
8
+ private dataLoaders;
9
+ private storageModelProvider;
10
+ constructor(entity: CmsDdbEntryEntity.Interface, dataLoaders: CmsDdbDataLoaders.Interface, storageModelProvider: CmsStorageModelProvider.Interface);
11
+ execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, params: CmsEntryStorageOperationsCreateRevisionFromParams<T>): Promise<import("@webiny/api-headless-cms/types/types.js").CmsStorageEntry<T>>;
12
+ }
13
+ export declare const DdbCreateEntryRevisionFrom: typeof DdbCreateEntryRevisionFromImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js").ICreateEntryRevisionFromStorageOperation>;
15
+ };
16
+ export {};
@@ -0,0 +1,85 @@
1
+ import error from "@webiny/error";
2
+ import { CONTENT_ENTRY_STATUS } from "@webiny/api-headless-cms/types/index.js";
3
+ import { CreateEntryRevisionFromStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js";
4
+ import { CmsDdbEntryEntity } from "../../abstractions/CmsDdbEntryEntity.js";
5
+ import { CmsDdbDataLoaders } from "../../abstractions/CmsDdbDataLoaders.js";
6
+ import { CmsStorageModelProvider } from "@webiny/api-headless-cms/features/shared/abstractions.js";
7
+ import { createEntryLatestKeys, createEntryPublishedKeys, createEntryRevisionKeys } from "./keys.js";
8
+ import { convertToStorageEntry } from "./storageEntryUtils.js";
9
+ class DdbCreateEntryRevisionFromImpl {
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
+ const storageEntry = convertToStorageEntry({
19
+ storageEntry: initialStorageEntry,
20
+ model
21
+ });
22
+ const entityBatch = this.entity.createEntityWriter({
23
+ put: [
24
+ {
25
+ ...createEntryRevisionKeys(storageEntry),
26
+ data: {
27
+ ...storageEntry
28
+ }
29
+ },
30
+ {
31
+ ...createEntryLatestKeys(storageEntry),
32
+ data: {
33
+ ...storageEntry
34
+ }
35
+ }
36
+ ]
37
+ });
38
+ const isPublished = "published" === entry.status;
39
+ if (isPublished) {
40
+ entityBatch.put({
41
+ ...createEntryPublishedKeys(storageEntry),
42
+ data: {
43
+ ...storageEntry
44
+ }
45
+ });
46
+ const [publishedRevisionStorageEntry] = await this.dataLoaders.getPublishedRevisionByEntryId({
47
+ model,
48
+ ids: [
49
+ entry.id
50
+ ]
51
+ });
52
+ if (publishedRevisionStorageEntry) entityBatch.put({
53
+ ...createEntryRevisionKeys(publishedRevisionStorageEntry),
54
+ data: {
55
+ ...publishedRevisionStorageEntry,
56
+ status: CONTENT_ENTRY_STATUS.UNPUBLISHED
57
+ }
58
+ });
59
+ }
60
+ try {
61
+ await entityBatch.execute();
62
+ this.dataLoaders.clearAll({
63
+ tenant: entry.tenant
64
+ });
65
+ } catch (ex) {
66
+ throw new error(ex.message || "Could not create revision from given entry.", ex.code || "CREATE_REVISION_ERROR", {
67
+ error: ex,
68
+ entry,
69
+ storageEntry
70
+ });
71
+ }
72
+ return initialStorageEntry;
73
+ }
74
+ }
75
+ const DdbCreateEntryRevisionFrom = CreateEntryRevisionFromStorageOperation.createImplementation({
76
+ implementation: DdbCreateEntryRevisionFromImpl,
77
+ dependencies: [
78
+ CmsDdbEntryEntity,
79
+ CmsDdbDataLoaders,
80
+ CmsStorageModelProvider
81
+ ]
82
+ });
83
+ export { DdbCreateEntryRevisionFrom };
84
+
85
+ //# sourceMappingURL=DdbCreateEntryRevisionFrom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/entry/DdbCreateEntryRevisionFrom.js","sources":["../../../src/operations/entry/DdbCreateEntryRevisionFrom.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n CmsModel,\n CmsEntryValues,\n CmsEntryStorageOperationsCreateRevisionFromParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { CONTENT_ENTRY_STATUS } from \"@webiny/api-headless-cms/types/index.js\";\nimport { CreateEntryRevisionFromStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.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 {\n createEntryLatestKeys,\n createEntryPublishedKeys,\n createEntryRevisionKeys\n} from \"~/operations/entry/keys.js\";\nimport { convertToStorageEntry } from \"./storageEntryUtils.js\";\n\nclass DdbCreateEntryRevisionFromImpl implements CreateEntryRevisionFromStorageOperation.Interface {\n constructor(\n private entity: CmsDdbEntryEntity.Interface,\n private dataLoaders: CmsDdbDataLoaders.Interface,\n private storageModelProvider: CmsStorageModelProvider.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n params: CmsEntryStorageOperationsCreateRevisionFromParams<T>\n ) {\n const { entry, storageEntry: initialStorageEntry } = params;\n const model = this.storageModelProvider.getModel(initialModel);\n\n const storageEntry = convertToStorageEntry({\n storageEntry: initialStorageEntry,\n model\n });\n\n /**\n * We need to:\n * - create the main entry item\n * - update the latest entry item to the current one\n * - if the entry's status was set to \"published\":\n * - update the published entry item to the current one\n * - unpublish previously published revision (if any)\n */\n const entityBatch = this.entity.createEntityWriter({\n put: [\n {\n ...createEntryRevisionKeys(storageEntry),\n data: {\n ...storageEntry\n }\n },\n {\n ...createEntryLatestKeys(storageEntry),\n data: {\n ...storageEntry\n }\n }\n ]\n });\n\n const isPublished = entry.status === \"published\";\n if (isPublished) {\n entityBatch.put({\n ...createEntryPublishedKeys(storageEntry),\n data: {\n ...storageEntry\n }\n });\n\n // Unpublish previously published revision (if any).\n const [publishedRevisionStorageEntry] =\n await this.dataLoaders.getPublishedRevisionByEntryId({\n model,\n ids: [entry.id]\n });\n\n if (publishedRevisionStorageEntry) {\n entityBatch.put({\n ...createEntryRevisionKeys(publishedRevisionStorageEntry),\n data: {\n ...publishedRevisionStorageEntry,\n status: CONTENT_ENTRY_STATUS.UNPUBLISHED\n }\n });\n }\n }\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 create revision from given entry.\",\n ex.code || \"CREATE_REVISION_ERROR\",\n {\n error: ex,\n entry,\n storageEntry\n }\n );\n }\n /**\n * There are no modifications on the entry created so just return the data.\n */\n return initialStorageEntry;\n }\n}\n\nexport const DdbCreateEntryRevisionFrom =\n CreateEntryRevisionFromStorageOperation.createImplementation({\n implementation: DdbCreateEntryRevisionFromImpl,\n dependencies: [CmsDdbEntryEntity, CmsDdbDataLoaders, CmsStorageModelProvider]\n });\n"],"names":["DdbCreateEntryRevisionFromImpl","entity","dataLoaders","storageModelProvider","initialModel","params","entry","initialStorageEntry","model","storageEntry","convertToStorageEntry","entityBatch","createEntryRevisionKeys","createEntryLatestKeys","isPublished","createEntryPublishedKeys","publishedRevisionStorageEntry","CONTENT_ENTRY_STATUS","ex","WebinyError","DdbCreateEntryRevisionFrom","CreateEntryRevisionFromStorageOperation","CmsDdbEntryEntity","CmsDdbDataLoaders","CmsStorageModelProvider"],"mappings":";;;;;;;;AAkBA,MAAMA;IACF,YACYC,MAAmC,EACnCC,WAAwC,EACxCC,oBAAuD,CACjE;aAHUF,MAAM,GAANA;aACAC,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;IACT;IAEH,MAAM,QACFC,YAAsB,EACtBC,MAA4D,EAC9D;QACE,MAAM,EAAEC,KAAK,EAAE,cAAcC,mBAAmB,EAAE,GAAGF;QACrD,MAAMG,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAACJ;QAEjD,MAAMK,eAAeC,sBAAsB;YACvC,cAAcH;YACdC;QACJ;QAUA,MAAMG,cAAc,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/C,KAAK;gBACD;oBACI,GAAGC,wBAAwBH,aAAa;oBACxC,MAAM;wBACF,GAAGA,YAAY;oBACnB;gBACJ;gBACA;oBACI,GAAGI,sBAAsBJ,aAAa;oBACtC,MAAM;wBACF,GAAGA,YAAY;oBACnB;gBACJ;aACH;QACL;QAEA,MAAMK,cAAcR,AAAiB,gBAAjBA,MAAM,MAAM;QAChC,IAAIQ,aAAa;YACbH,YAAY,GAAG,CAAC;gBACZ,GAAGI,yBAAyBN,aAAa;gBACzC,MAAM;oBACF,GAAGA,YAAY;gBACnB;YACJ;YAGA,MAAM,CAACO,8BAA8B,GACjC,MAAM,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAAC;gBACjDR;gBACA,KAAK;oBAACF,MAAM,EAAE;iBAAC;YACnB;YAEJ,IAAIU,+BACAL,YAAY,GAAG,CAAC;gBACZ,GAAGC,wBAAwBI,8BAA8B;gBACzD,MAAM;oBACF,GAAGA,6BAA6B;oBAChC,QAAQC,qBAAqB,WAAW;gBAC5C;YACJ;QAER;QAEA,IAAI;YACA,MAAMN,YAAY,OAAO;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBACtB,QAAQL,MAAM,MAAM;YACxB;QACJ,EAAE,OAAOY,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,+CACdA,GAAG,IAAI,IAAI,yBACX;gBACI,OAAOA;gBACPZ;gBACAG;YACJ;QAER;QAIA,OAAOF;IACX;AACJ;AAEO,MAAMa,6BACTC,wCAAwC,oBAAoB,CAAC;IACzD,gBAAgBrB;IAChB,cAAc;QAACsB;QAAmBC;QAAmBC;KAAwB;AACjF"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModel, CmsEntryStorageOperationsDeleteParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { DeleteEntryStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryStorageOperation.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 DdbDeleteEntryImpl implements DeleteEntryStorageOperation.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: CmsEntryStorageOperationsDeleteParams): Promise<void>;
12
+ }
13
+ export declare const DdbDeleteEntry: typeof DdbDeleteEntryImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js").IDeleteEntryStorageOperation>;
15
+ };
16
+ export {};