@webiny/api-headless-cms-ddb 0.0.0-unstable.a4f3e4ea8b → 0.0.0-unstable.a85ef555b2

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 (152) 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 +10 -2
  17. package/index.js +30 -74
  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 +59 -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 +30 -0
  65. package/operations/entry/DdbListEntries.js +133 -0
  66. package/operations/entry/DdbListEntries.js.map +1 -0
  67. package/operations/entry/DdbMoveEntry.d.ts +16 -0
  68. package/operations/entry/DdbMoveEntry.js +63 -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 +162 -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 +105 -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 -26
  138. package/types.js.map +1 -1
  139. package/dynamoDb/index.d.ts +0 -2
  140. package/dynamoDb/index.js +0 -9
  141. package/dynamoDb/index.js.map +0 -1
  142. package/operations/entry/index.d.ts +0 -9
  143. package/operations/entry/index.js +0 -937
  144. package/operations/entry/index.js.map +0 -1
  145. package/operations/group/index.d.ts +0 -8
  146. package/operations/group/index.js +0 -121
  147. package/operations/group/index.js.map +0 -1
  148. package/operations/model/index.d.ts +0 -7
  149. package/operations/model/index.js +0 -106
  150. package/operations/model/index.js.map +0 -1
  151. package/plugins/index.d.ts +0 -2
  152. package/plugins/index.js +0 -1
@@ -0,0 +1,12 @@
1
+ import type { CmsModelStorageOperationsDeleteParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { DeleteModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ declare class DdbDeleteModelImpl implements DeleteModelStorageOperation.Interface {
5
+ private entity;
6
+ constructor(entity: CmsDdbModelEntity.Interface);
7
+ execute(params: CmsModelStorageOperationsDeleteParams): Promise<void>;
8
+ }
9
+ export declare const DdbDeleteModel: typeof DdbDeleteModelImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js").IDeleteModelStorageOperation>;
11
+ };
12
+ export {};
@@ -0,0 +1,31 @@
1
+ import error from "@webiny/error";
2
+ import { DeleteModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ import { createKeys } from "./keys.js";
5
+ class DdbDeleteModelImpl {
6
+ constructor(entity){
7
+ this.entity = entity;
8
+ }
9
+ async execute(params) {
10
+ const { model } = params;
11
+ const keys = createKeys(model);
12
+ try {
13
+ await this.entity.delete(keys);
14
+ } catch (ex) {
15
+ throw new error(ex.message || "Could not delete model.", ex.code || "MODEL_DELETE_ERROR", {
16
+ error: ex,
17
+ model,
18
+ keys
19
+ });
20
+ }
21
+ }
22
+ }
23
+ const DdbDeleteModel = DeleteModelStorageOperation.createImplementation({
24
+ implementation: DdbDeleteModelImpl,
25
+ dependencies: [
26
+ CmsDdbModelEntity
27
+ ]
28
+ });
29
+ export { DdbDeleteModel };
30
+
31
+ //# sourceMappingURL=DdbDeleteModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/DdbDeleteModel.js","sources":["../../../src/operations/model/DdbDeleteModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsDeleteParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport { DeleteModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/DeleteModelStorageOperation.js\";\nimport { CmsDdbModelEntity } from \"~/abstractions/CmsDdbModelEntity.js\";\nimport { createKeys } from \"./keys.js\";\n\nclass DdbDeleteModelImpl implements DeleteModelStorageOperation.Interface {\n constructor(private entity: CmsDdbModelEntity.Interface) {}\n\n async execute(params: CmsModelStorageOperationsDeleteParams) {\n const { model } = params;\n const keys = createKeys(model);\n try {\n await this.entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete model.\",\n ex.code || \"MODEL_DELETE_ERROR\",\n { error: ex, model, keys }\n );\n }\n }\n}\n\nexport const DdbDeleteModel = DeleteModelStorageOperation.createImplementation({\n implementation: DdbDeleteModelImpl,\n dependencies: [CmsDdbModelEntity]\n});\n"],"names":["DdbDeleteModelImpl","entity","params","model","keys","createKeys","ex","WebinyError","DdbDeleteModel","DeleteModelStorageOperation","CmsDdbModelEntity"],"mappings":";;;;AAMA,MAAMA;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,QAAQC,MAA6C,EAAE;QACzD,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,OAAOC,WAAWF;QACxB,IAAI;YACA,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAACC;QAC7B,EAAE,OAAOE,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,2BACdA,GAAG,IAAI,IAAI,sBACX;gBAAE,OAAOA;gBAAIH;gBAAOC;YAAK;QAEjC;IACJ;AACJ;AAEO,MAAMI,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBT;IAChB,cAAc;QAACU;KAAkB;AACrC"}
@@ -0,0 +1,12 @@
1
+ import type { CmsModelStorageOperationsGetParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ declare class DdbGetModelImpl implements GetModelStorageOperation.Interface {
5
+ private entity;
6
+ constructor(entity: CmsDdbModelEntity.Interface);
7
+ execute(params: CmsModelStorageOperationsGetParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel | null>;
8
+ }
9
+ export declare const DdbGetModel: typeof DdbGetModelImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js").IGetModelStorageOperation>;
11
+ };
12
+ export {};
@@ -0,0 +1,30 @@
1
+ import error from "@webiny/error";
2
+ import { GetModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ import { createKeys } from "./keys.js";
5
+ class DdbGetModelImpl {
6
+ constructor(entity){
7
+ this.entity = entity;
8
+ }
9
+ async execute(params) {
10
+ const keys = createKeys(params);
11
+ try {
12
+ const result = await this.entity.get(keys);
13
+ return result?.data || null;
14
+ } catch (ex) {
15
+ throw new error(ex.message || "Could not get model.", ex.code || "MODEL_GET_ERROR", {
16
+ error: ex,
17
+ keys
18
+ });
19
+ }
20
+ }
21
+ }
22
+ const DdbGetModel = GetModelStorageOperation.createImplementation({
23
+ implementation: DdbGetModelImpl,
24
+ dependencies: [
25
+ CmsDdbModelEntity
26
+ ]
27
+ });
28
+ export { DdbGetModel };
29
+
30
+ //# sourceMappingURL=DdbGetModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/DdbGetModel.js","sources":["../../../src/operations/model/DdbGetModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsGetParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport { GetModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/GetModelStorageOperation.js\";\nimport { CmsDdbModelEntity } from \"~/abstractions/CmsDdbModelEntity.js\";\nimport { createKeys } from \"./keys.js\";\n\nclass DdbGetModelImpl implements GetModelStorageOperation.Interface {\n constructor(private entity: CmsDdbModelEntity.Interface) {}\n\n async execute(params: CmsModelStorageOperationsGetParams) {\n const keys = createKeys(params);\n try {\n const result = await this.entity.get(keys);\n return result?.data || null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get model.\",\n ex.code || \"MODEL_GET_ERROR\",\n { error: ex, keys }\n );\n }\n }\n}\n\nexport const DdbGetModel = GetModelStorageOperation.createImplementation({\n implementation: DdbGetModelImpl,\n dependencies: [CmsDdbModelEntity]\n});\n"],"names":["DdbGetModelImpl","entity","params","keys","createKeys","result","ex","WebinyError","DdbGetModel","GetModelStorageOperation","CmsDdbModelEntity"],"mappings":";;;;AAMA,MAAMA;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,QAAQC,MAA0C,EAAE;QACtD,MAAMC,OAAOC,WAAWF;QACxB,IAAI;YACA,MAAMG,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAACF;YACrC,OAAOE,QAAQ,QAAQ;QAC3B,EAAE,OAAOC,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,wBACdA,GAAG,IAAI,IAAI,mBACX;gBAAE,OAAOA;gBAAIH;YAAK;QAE1B;IACJ;AACJ;AAEO,MAAMK,cAAcC,yBAAyB,oBAAoB,CAAC;IACrE,gBAAgBT;IAChB,cAAc;QAACU;KAAkB;AACrC"}
@@ -0,0 +1,12 @@
1
+ import type { CmsModelStorageOperationsListParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { ListModelsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ declare class DdbListModelsImpl implements ListModelsStorageOperation.Interface {
5
+ private entity;
6
+ constructor(entity: CmsDdbModelEntity.Interface);
7
+ execute(params: CmsModelStorageOperationsListParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel[]>;
8
+ }
9
+ export declare const DdbListModels: typeof DdbListModelsImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js").IListModelsStorageOperation>;
11
+ };
12
+ export {};
@@ -0,0 +1,36 @@
1
+ import error from "@webiny/error";
2
+ import { ListModelsStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ import { createPartitionKey } from "./keys.js";
5
+ class DdbListModelsImpl {
6
+ constructor(entity){
7
+ this.entity = entity;
8
+ }
9
+ async execute(params) {
10
+ const { where } = params;
11
+ const partitionKey = createPartitionKey(where);
12
+ try {
13
+ const result = await this.entity.queryAll({
14
+ partitionKey,
15
+ options: {
16
+ gte: " "
17
+ }
18
+ });
19
+ return result.map((item)=>item.data);
20
+ } catch (ex) {
21
+ throw new error(ex.message || "Could not list models.", ex.code || "MODEL_LIST_ERROR", {
22
+ error: ex,
23
+ partitionKey
24
+ });
25
+ }
26
+ }
27
+ }
28
+ const DdbListModels = ListModelsStorageOperation.createImplementation({
29
+ implementation: DdbListModelsImpl,
30
+ dependencies: [
31
+ CmsDdbModelEntity
32
+ ]
33
+ });
34
+ export { DdbListModels };
35
+
36
+ //# sourceMappingURL=DdbListModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/DdbListModels.js","sources":["../../../src/operations/model/DdbListModels.ts"],"sourcesContent":["import type { CmsModelStorageOperationsListParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport { ListModelsStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/ListModelsStorageOperation.js\";\nimport { CmsDdbModelEntity } from \"~/abstractions/CmsDdbModelEntity.js\";\nimport { createPartitionKey } from \"./keys.js\";\n\nclass DdbListModelsImpl implements ListModelsStorageOperation.Interface {\n constructor(private entity: CmsDdbModelEntity.Interface) {}\n\n async execute(params: CmsModelStorageOperationsListParams) {\n const { where } = params;\n const partitionKey = createPartitionKey(where);\n try {\n const result = await this.entity.queryAll({\n partitionKey,\n options: { gte: \" \" }\n });\n return result.map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list models.\",\n ex.code || \"MODEL_LIST_ERROR\",\n { error: ex, partitionKey }\n );\n }\n }\n}\n\nexport const DdbListModels = ListModelsStorageOperation.createImplementation({\n implementation: DdbListModelsImpl,\n dependencies: [CmsDdbModelEntity]\n});\n"],"names":["DdbListModelsImpl","entity","params","where","partitionKey","createPartitionKey","result","item","ex","WebinyError","DdbListModels","ListModelsStorageOperation","CmsDdbModelEntity"],"mappings":";;;;AAMA,MAAMA;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,QAAQC,MAA2C,EAAE;QACvD,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,eAAeC,mBAAmBF;QACxC,IAAI;YACA,MAAMG,SAAS,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtCF;gBACA,SAAS;oBAAE,KAAK;gBAAI;YACxB;YACA,OAAOE,OAAO,GAAG,CAACC,CAAAA,OAAQA,KAAK,IAAI;QACvC,EAAE,OAAOC,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,0BACdA,GAAG,IAAI,IAAI,oBACX;gBAAE,OAAOA;gBAAIJ;YAAa;QAElC;IACJ;AACJ;AAEO,MAAMM,gBAAgBC,2BAA2B,oBAAoB,CAAC;IACzE,gBAAgBX;IAChB,cAAc;QAACY;KAAkB;AACrC"}
@@ -0,0 +1,12 @@
1
+ import type { CmsModelStorageOperationsUpdateParams } from "@webiny/api-headless-cms/types/index.js";
2
+ import { UpdateModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ declare class DdbUpdateModelImpl implements UpdateModelStorageOperation.Interface {
5
+ private entity;
6
+ constructor(entity: CmsDdbModelEntity.Interface);
7
+ execute(params: CmsModelStorageOperationsUpdateParams): Promise<import("@webiny/api-headless-cms/types/model.js").StorageCmsModel>;
8
+ }
9
+ export declare const DdbUpdateModel: typeof DdbUpdateModelImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js").IUpdateModelStorageOperation>;
11
+ };
12
+ export {};
@@ -0,0 +1,36 @@
1
+ import error from "@webiny/error";
2
+ import { UpdateModelStorageOperation } from "@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js";
3
+ import { CmsDdbModelEntity } from "../../abstractions/CmsDdbModelEntity.js";
4
+ import { createKeys, createType } from "./keys.js";
5
+ class DdbUpdateModelImpl {
6
+ constructor(entity){
7
+ this.entity = entity;
8
+ }
9
+ async execute(params) {
10
+ const { model } = params;
11
+ const keys = createKeys(model);
12
+ try {
13
+ await this.entity.put({
14
+ data: model,
15
+ ...keys,
16
+ TYPE: createType()
17
+ });
18
+ return model;
19
+ } catch (ex) {
20
+ throw new error(ex.message || "Could not update model.", ex.code || "MODEL_UPDATE_ERROR", {
21
+ error: ex,
22
+ model,
23
+ keys
24
+ });
25
+ }
26
+ }
27
+ }
28
+ const DdbUpdateModel = UpdateModelStorageOperation.createImplementation({
29
+ implementation: DdbUpdateModelImpl,
30
+ dependencies: [
31
+ CmsDdbModelEntity
32
+ ]
33
+ });
34
+ export { DdbUpdateModel };
35
+
36
+ //# sourceMappingURL=DdbUpdateModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/DdbUpdateModel.js","sources":["../../../src/operations/model/DdbUpdateModel.ts"],"sourcesContent":["import type { CmsModelStorageOperationsUpdateParams } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport { UpdateModelStorageOperation } from \"@webiny/api-headless-cms/features/shared/storageOperations/model/UpdateModelStorageOperation.js\";\nimport { CmsDdbModelEntity } from \"~/abstractions/CmsDdbModelEntity.js\";\nimport { createKeys, createType } from \"./keys.js\";\n\nclass DdbUpdateModelImpl implements UpdateModelStorageOperation.Interface {\n constructor(private entity: CmsDdbModelEntity.Interface) {}\n\n async execute(params: CmsModelStorageOperationsUpdateParams) {\n const { model } = params;\n const keys = createKeys(model);\n try {\n await this.entity.put({\n data: model,\n ...keys,\n TYPE: createType()\n });\n return model;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update model.\",\n ex.code || \"MODEL_UPDATE_ERROR\",\n { error: ex, model, keys }\n );\n }\n }\n}\n\nexport const DdbUpdateModel = UpdateModelStorageOperation.createImplementation({\n implementation: DdbUpdateModelImpl,\n dependencies: [CmsDdbModelEntity]\n});\n"],"names":["DdbUpdateModelImpl","entity","params","model","keys","createKeys","createType","ex","WebinyError","DdbUpdateModel","UpdateModelStorageOperation","CmsDdbModelEntity"],"mappings":";;;;AAMA,MAAMA;IACF,YAAoBC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAE1D,MAAM,QAAQC,MAA6C,EAAE;QACzD,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,OAAOC,WAAWF;QACxB,IAAI;YACA,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBAClB,MAAMA;gBACN,GAAGC,IAAI;gBACP,MAAME;YACV;YACA,OAAOH;QACX,EAAE,OAAOI,IAAI;YACT,MAAM,IAAIC,MACND,GAAG,OAAO,IAAI,2BACdA,GAAG,IAAI,IAAI,sBACX;gBAAE,OAAOA;gBAAIJ;gBAAOC;YAAK;QAEjC;IACJ;AACJ;AAEO,MAAMK,iBAAiBC,4BAA4B,oBAAoB,CAAC;IAC3E,gBAAgBV;IAChB,cAAc;QAACW;KAAkB;AACrC"}
@@ -0,0 +1,4 @@
1
+ export declare const DdbModelStorageOpsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,19 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { DdbGetModel } from "./DdbGetModel.js";
3
+ import { DdbListModels } from "./DdbListModels.js";
4
+ import { DdbCreateModel } from "./DdbCreateModel.js";
5
+ import { DdbUpdateModel } from "./DdbUpdateModel.js";
6
+ import { DdbDeleteModel } from "./DdbDeleteModel.js";
7
+ const DdbModelStorageOpsFeature = createFeature({
8
+ name: "cms.ddb.modelStorageOps",
9
+ register: (container)=>{
10
+ container.register(DdbGetModel);
11
+ container.register(DdbListModels);
12
+ container.register(DdbCreateModel);
13
+ container.register(DdbUpdateModel);
14
+ container.register(DdbDeleteModel);
15
+ }
16
+ });
17
+ export { DdbModelStorageOpsFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/feature.js","sources":["../../../src/operations/model/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { DdbGetModel } from \"./DdbGetModel.js\";\nimport { DdbListModels } from \"./DdbListModels.js\";\nimport { DdbCreateModel } from \"./DdbCreateModel.js\";\nimport { DdbUpdateModel } from \"./DdbUpdateModel.js\";\nimport { DdbDeleteModel } from \"./DdbDeleteModel.js\";\n\nexport const DdbModelStorageOpsFeature = createFeature({\n name: \"cms.ddb.modelStorageOps\",\n register: container => {\n container.register(DdbGetModel);\n container.register(DdbListModels);\n container.register(DdbCreateModel);\n container.register(DdbUpdateModel);\n container.register(DdbDeleteModel);\n }\n});\n"],"names":["DdbModelStorageOpsFeature","createFeature","container","DdbGetModel","DdbListModels","DdbCreateModel","DdbUpdateModel","DdbDeleteModel"],"mappings":";;;;;;AAOO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;IACvB;AACJ"}
@@ -0,0 +1,15 @@
1
+ interface PartitionKeysParams {
2
+ tenant: string;
3
+ }
4
+ export declare const createPartitionKey: (params: PartitionKeysParams) => string;
5
+ interface SortKeyParams {
6
+ modelId: string;
7
+ }
8
+ interface Keys {
9
+ PK: string;
10
+ SK: string;
11
+ GSI_TENANT: string;
12
+ }
13
+ export declare const createKeys: (params: PartitionKeysParams & SortKeyParams) => Keys;
14
+ export declare const createType: () => string;
15
+ export {};
@@ -0,0 +1,16 @@
1
+ import error from "@webiny/error";
2
+ const createPartitionKey = (params)=>{
3
+ const { tenant } = params;
4
+ if (!tenant) throw new error("Missing tenant variable when creating model partitionKey.");
5
+ return `T#${tenant}#CMS#CM`;
6
+ };
7
+ const createSortKey = (params)=>params.modelId;
8
+ const createKeys = (params)=>({
9
+ PK: createPartitionKey(params),
10
+ SK: createSortKey(params),
11
+ GSI_TENANT: params.tenant
12
+ });
13
+ const createType = ()=>"cms.model";
14
+ export { createKeys, createPartitionKey, createType };
15
+
16
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations/model/keys.js","sources":["../../../src/operations/model/keys.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\ninterface PartitionKeysParams {\n tenant: string;\n}\n\nexport const createPartitionKey = (params: PartitionKeysParams): string => {\n const { tenant } = params;\n if (!tenant) {\n throw new WebinyError(`Missing tenant variable when creating model partitionKey.`);\n }\n return `T#${tenant}#CMS#CM`;\n};\n\ninterface SortKeyParams {\n modelId: string;\n}\n\nconst createSortKey = (params: SortKeyParams): string => {\n return params.modelId;\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n GSI_TENANT: string;\n}\n\nexport const createKeys = (params: PartitionKeysParams & SortKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey(params),\n GSI_TENANT: params.tenant\n };\n};\n\nexport const createType = (): string => {\n return \"cms.model\";\n};\n"],"names":["createPartitionKey","params","tenant","WebinyError","createSortKey","createKeys","createType"],"mappings":";AAMO,MAAMA,qBAAqB,CAACC;IAC/B,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,IAAI,CAACC,QACD,MAAM,IAAIC,MAAY;IAE1B,OAAO,CAAC,EAAE,EAAED,OAAO,OAAO,CAAC;AAC/B;AAMA,MAAME,gBAAgB,CAACH,SACZA,OAAO,OAAO;AASlB,MAAMI,aAAa,CAACJ,SAChB;QACH,IAAID,mBAAmBC;QACvB,IAAIG,cAAcH;QAClB,YAAYA,OAAO,MAAM;IAC7B;AAGG,MAAMK,aAAa,IACf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-ddb",
3
- "version": "0.0.0-unstable.a4f3e4ea8b",
3
+ "version": "0.0.0-unstable.a85ef555b2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -26,28 +26,26 @@
26
26
  ],
27
27
  "license": "MIT",
28
28
  "dependencies": {
29
- "@webiny/api": "0.0.0-unstable.a4f3e4ea8b",
30
- "@webiny/api-headless-cms": "0.0.0-unstable.a4f3e4ea8b",
31
- "@webiny/api-headless-cms-storage": "0.0.0-unstable.a4f3e4ea8b",
32
- "@webiny/aws-sdk": "0.0.0-unstable.a4f3e4ea8b",
33
- "@webiny/db-dynamodb": "0.0.0-unstable.a4f3e4ea8b",
34
- "@webiny/db-utils": "0.0.0-unstable.a4f3e4ea8b",
35
- "@webiny/error": "0.0.0-unstable.a4f3e4ea8b",
36
- "@webiny/feature": "0.0.0-unstable.a4f3e4ea8b",
37
- "@webiny/handler": "0.0.0-unstable.a4f3e4ea8b",
38
- "@webiny/handler-db": "0.0.0-unstable.a4f3e4ea8b",
39
- "@webiny/plugins": "0.0.0-unstable.a4f3e4ea8b",
40
- "@webiny/utils": "0.0.0-unstable.a4f3e4ea8b",
29
+ "@webiny/api": "0.0.0-unstable.a85ef555b2",
30
+ "@webiny/api-headless-cms": "0.0.0-unstable.a85ef555b2",
31
+ "@webiny/api-headless-cms-storage": "0.0.0-unstable.a85ef555b2",
32
+ "@webiny/aws-sdk": "0.0.0-unstable.a85ef555b2",
33
+ "@webiny/db-dynamodb": "0.0.0-unstable.a85ef555b2",
34
+ "@webiny/db-utils": "0.0.0-unstable.a85ef555b2",
35
+ "@webiny/error": "0.0.0-unstable.a85ef555b2",
36
+ "@webiny/feature": "0.0.0-unstable.a85ef555b2",
37
+ "@webiny/handler": "0.0.0-unstable.a85ef555b2",
38
+ "@webiny/utils": "0.0.0-unstable.a85ef555b2",
41
39
  "dataloader": "2.2.3"
42
40
  },
43
41
  "devDependencies": {
44
42
  "@types/jsonpack": "1.1.6",
45
- "@webiny/build-tools": "0.0.0-unstable.a4f3e4ea8b",
46
- "@webiny/di": "1.0.2",
47
- "@webiny/project-utils": "0.0.0-unstable.a4f3e4ea8b",
43
+ "@webiny/api-core": "0.0.0-unstable.a85ef555b2",
44
+ "@webiny/build-tools": "0.0.0-unstable.a85ef555b2",
45
+ "@webiny/di": "2.0.0",
48
46
  "jest-dynalite": "3.6.1",
49
47
  "typescript": "7.0.2",
50
- "vitest": "4.1.10"
48
+ "vitest": "4.1.11"
51
49
  },
52
50
  "publishConfig": {
53
51
  "access": "public"
package/types.d.ts CHANGED
@@ -1,37 +1,20 @@
1
- import { PluginsContainer } from "@webiny/plugins/types.js";
2
- import type { CmsContext, CmsEntryStorageOperations as BaseCmsEntryStorageOperations, HeadlessCmsStorageOperations as BaseHeadlessCmsStorageOperations } from "@webiny/api-headless-cms/types/index.js";
3
- import type { IEntryEntity, IGroupEntity, IModelEntity } from "./definitions/types.js";
4
- import type { ITable } from "@webiny/db-dynamodb";
5
- export type { CmsContext };
6
- export type { IGroupEntity, IModelEntity, IEntryEntity };
1
+ import type { CmsEntryValues, CmsModel, CmsStorageEntry } from "@webiny/api-headless-cms/types/index.js";
7
2
  export declare enum ENTITIES {
8
3
  GROUPS = "CmsGroups",
9
4
  MODELS = "CmsModels",
10
5
  ENTRIES = "CmsEntries"
11
6
  }
12
- export interface StorageOperationsFactoryParams {
13
- table?: string;
14
- plugins: PluginsContainer;
15
- container: CmsContext["container"];
16
- }
17
- export interface IHeadlessCmsStorageOperationsGetEntitiesResult {
18
- groups: IGroupEntity;
19
- models: IModelEntity;
20
- entries: IEntryEntity;
21
- }
22
- export interface HeadlessCmsStorageOperations extends BaseHeadlessCmsStorageOperations {
23
- getTable: () => ITable;
24
- getEntities: () => IHeadlessCmsStorageOperationsGetEntitiesResult;
25
- }
26
- export interface StorageOperationsFactory {
27
- (params: StorageOperationsFactoryParams): HeadlessCmsStorageOperations;
28
- }
29
- export interface CmsEntryStorageOperations extends BaseCmsEntryStorageOperations {
30
- dataLoaders: IDataLoadersHandler;
31
- }
32
7
  export interface DataLoadersHandlerInterfaceClearAllParams {
33
8
  tenant: string;
34
9
  }
10
+ export interface DataLoadersHandlerDataLoaderParams {
11
+ model: Pick<CmsModel, "tenant" | "modelId">;
12
+ ids: readonly string[];
13
+ }
35
14
  export interface IDataLoadersHandler {
15
+ getAllEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(params: DataLoadersHandlerDataLoaderParams): Promise<CmsStorageEntry<T>[]>;
16
+ getRevisionById<T extends CmsEntryValues = CmsEntryValues>(params: DataLoadersHandlerDataLoaderParams): Promise<CmsStorageEntry<T>[]>;
17
+ getPublishedRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(params: DataLoadersHandlerDataLoaderParams): Promise<CmsStorageEntry<T>[]>;
18
+ getLatestRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(params: DataLoadersHandlerDataLoaderParams): Promise<CmsStorageEntry<T>[]>;
36
19
  clearAll: (params?: DataLoadersHandlerInterfaceClearAllParams) => void;
37
20
  }
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import { PluginsContainer } from \"@webiny/plugins/types.js\";\nimport type {\n CmsContext,\n CmsEntryStorageOperations as BaseCmsEntryStorageOperations,\n HeadlessCmsStorageOperations as BaseHeadlessCmsStorageOperations\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IEntryEntity, IGroupEntity, IModelEntity } from \"~/definitions/types.js\";\nimport type { ITable } from \"@webiny/db-dynamodb\";\n\nexport type { CmsContext };\n\nexport type { IGroupEntity, IModelEntity, IEntryEntity };\n\nexport enum ENTITIES {\n GROUPS = \"CmsGroups\",\n MODELS = \"CmsModels\",\n ENTRIES = \"CmsEntries\"\n}\n\nexport interface StorageOperationsFactoryParams {\n table?: string;\n plugins: PluginsContainer;\n container: CmsContext[\"container\"];\n}\n\nexport interface IHeadlessCmsStorageOperationsGetEntitiesResult {\n groups: IGroupEntity;\n models: IModelEntity;\n entries: IEntryEntity;\n}\n\nexport interface HeadlessCmsStorageOperations extends BaseHeadlessCmsStorageOperations {\n getTable: () => ITable;\n getEntities: () => IHeadlessCmsStorageOperationsGetEntitiesResult;\n}\n\nexport interface StorageOperationsFactory {\n (params: StorageOperationsFactoryParams): HeadlessCmsStorageOperations;\n}\n\nexport interface CmsEntryStorageOperations extends BaseCmsEntryStorageOperations {\n dataLoaders: IDataLoadersHandler;\n}\n\nexport interface DataLoadersHandlerInterfaceClearAllParams {\n tenant: string;\n}\nexport interface IDataLoadersHandler {\n clearAll: (params?: DataLoadersHandlerInterfaceClearAllParams) => void;\n}\n"],"names":["ENTITIES"],"mappings":"AAaO,IAAKA,iBAAQA,WAAAA,GAAAA,SAARA,QAAQ;;;;WAARA"}
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import type {\n CmsEntryValues,\n CmsModel,\n CmsStorageEntry\n} from \"@webiny/api-headless-cms/types/index.js\";\n\nexport enum ENTITIES {\n GROUPS = \"CmsGroups\",\n MODELS = \"CmsModels\",\n ENTRIES = \"CmsEntries\"\n}\n\nexport interface DataLoadersHandlerInterfaceClearAllParams {\n tenant: string;\n}\n\nexport interface DataLoadersHandlerDataLoaderParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n ids: readonly string[];\n}\n\nexport interface IDataLoadersHandler {\n getAllEntryRevisions<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoadersHandlerDataLoaderParams\n ): Promise<CmsStorageEntry<T>[]>;\n getRevisionById<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoadersHandlerDataLoaderParams\n ): Promise<CmsStorageEntry<T>[]>;\n getPublishedRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoadersHandlerDataLoaderParams\n ): Promise<CmsStorageEntry<T>[]>;\n getLatestRevisionByEntryId<T extends CmsEntryValues = CmsEntryValues>(\n params: DataLoadersHandlerDataLoaderParams\n ): Promise<CmsStorageEntry<T>[]>;\n clearAll: (params?: DataLoadersHandlerInterfaceClearAllParams) => void;\n}\n"],"names":["ENTITIES"],"mappings":"AAMO,IAAKA,iBAAQA,WAAAA,GAAAA,SAARA,QAAQ;;;;WAARA"}
@@ -1,2 +0,0 @@
1
- export default _default;
2
- declare function _default(): (import("@webiny/api-headless-cms-storage").CmsEntryFieldFilterPathPlugin | import("@webiny/api-headless-cms-storage").CmsFieldFilterValueTransformPlugin)[];
package/dynamoDb/index.js DELETED
@@ -1,9 +0,0 @@
1
- import { createDatetimeTransformValuePlugin, createLocationFolderIdPathPlugin, createPlainObjectPathPlugin } from "@webiny/api-headless-cms-storage";
2
- const dynamoDb = ()=>[
3
- createPlainObjectPathPlugin(),
4
- createLocationFolderIdPathPlugin(),
5
- createDatetimeTransformValuePlugin()
6
- ];
7
- export default dynamoDb;
8
-
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamoDb/index.js","sources":["../../src/dynamoDb/index.ts"],"sourcesContent":["import { createPlainObjectPathPlugin } from \"@webiny/api-headless-cms-storage\";\nimport { createLocationFolderIdPathPlugin } from \"@webiny/api-headless-cms-storage\";\nimport { createDatetimeTransformValuePlugin } from \"@webiny/api-headless-cms-storage\";\n\nexport default () => [\n createPlainObjectPathPlugin(),\n createLocationFolderIdPathPlugin(),\n createDatetimeTransformValuePlugin()\n];\n"],"names":["createPlainObjectPathPlugin","createLocationFolderIdPathPlugin","createDatetimeTransformValuePlugin"],"mappings":";AAIA,iBAAgB,IAAK;QACjBA;QACAC;QACAC;KACJ"}
@@ -1,9 +0,0 @@
1
- import type { CmsContext } from "@webiny/api-headless-cms/types/index.js";
2
- import type { PluginsContainer } from "@webiny/plugins";
3
- import type { CmsEntryStorageOperations, IEntryEntity } from "../../types.js";
4
- export interface CreateEntriesStorageOperationsParams {
5
- entity: IEntryEntity;
6
- container: CmsContext["container"];
7
- plugins: PluginsContainer;
8
- }
9
- export declare const createEntriesStorageOperations: (params: CreateEntriesStorageOperationsParams) => CmsEntryStorageOperations;