@webiny/api-headless-cms-ddb-es 5.34.8 → 5.35.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/configurations.d.ts +1 -1
  2. package/configurations.js +0 -8
  3. package/configurations.js.map +1 -1
  4. package/definitions/entry.js +3 -5
  5. package/definitions/entry.js.map +1 -1
  6. package/definitions/entryElasticsearch.js +0 -5
  7. package/definitions/entryElasticsearch.js.map +1 -1
  8. package/definitions/group.js +0 -5
  9. package/definitions/group.js.map +1 -1
  10. package/definitions/model.js +17 -5
  11. package/definitions/model.js.map +1 -1
  12. package/definitions/settings.js +0 -5
  13. package/definitions/settings.js.map +1 -1
  14. package/definitions/system.js +0 -5
  15. package/definitions/system.js.map +1 -1
  16. package/definitions/table.js +0 -3
  17. package/definitions/table.js.map +1 -1
  18. package/definitions/tableElasticsearch.js +0 -3
  19. package/definitions/tableElasticsearch.js.map +1 -1
  20. package/dynamoDb/index.js +0 -5
  21. package/dynamoDb/index.js.map +1 -1
  22. package/dynamoDb/storage/date.js +1 -16
  23. package/dynamoDb/storage/date.js.map +1 -1
  24. package/dynamoDb/storage/longText.js +1 -18
  25. package/dynamoDb/storage/longText.js.map +1 -1
  26. package/dynamoDb/storage/richText.js +0 -24
  27. package/dynamoDb/storage/richText.js.map +1 -1
  28. package/elasticsearch/createElasticsearchIndex.js +0 -11
  29. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  30. package/elasticsearch/deleteElasticsearchIndex.js +0 -7
  31. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
  32. package/elasticsearch/index.js +0 -5
  33. package/elasticsearch/index.js.map +1 -1
  34. package/elasticsearch/indexing/dateTimeIndexing.js +4 -21
  35. package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -1
  36. package/elasticsearch/indexing/defaultFieldIndexing.js +5 -11
  37. package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -1
  38. package/elasticsearch/indexing/index.js +0 -9
  39. package/elasticsearch/indexing/index.js.map +1 -1
  40. package/elasticsearch/indexing/longTextIndexing.js +2 -14
  41. package/elasticsearch/indexing/longTextIndexing.js.map +1 -1
  42. package/elasticsearch/indexing/numberIndexing.js +0 -9
  43. package/elasticsearch/indexing/numberIndexing.js.map +1 -1
  44. package/elasticsearch/indexing/objectIndexing.js +3 -30
  45. package/elasticsearch/indexing/objectIndexing.js.map +1 -1
  46. package/elasticsearch/indexing/richTextIndexing.js +0 -5
  47. package/elasticsearch/indexing/richTextIndexing.js.map +1 -1
  48. package/elasticsearch/indices/base.js +0 -3
  49. package/elasticsearch/indices/base.js.map +1 -1
  50. package/elasticsearch/indices/index.js +0 -4
  51. package/elasticsearch/indices/index.js.map +1 -1
  52. package/elasticsearch/indices/japanese.js +0 -3
  53. package/elasticsearch/indices/japanese.js.map +1 -1
  54. package/elasticsearch/search/index.js +0 -4
  55. package/elasticsearch/search/index.js.map +1 -1
  56. package/elasticsearch/search/refSearch.js +0 -6
  57. package/elasticsearch/search/refSearch.js.map +1 -1
  58. package/elasticsearch/search/timeSearch.js +0 -7
  59. package/elasticsearch/search/timeSearch.js.map +1 -1
  60. package/helpers/entryIndexHelpers.js +20 -49
  61. package/helpers/entryIndexHelpers.js.map +1 -1
  62. package/helpers/index.js +0 -2
  63. package/helpers/index.js.map +1 -1
  64. package/index.js +7 -44
  65. package/index.js.map +1 -1
  66. package/operations/entry/dataLoaders.js +0 -52
  67. package/operations/entry/dataLoaders.js.map +1 -1
  68. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +1 -3
  69. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
  70. package/operations/entry/elasticsearch/body.js +2 -26
  71. package/operations/entry/elasticsearch/body.js.map +1 -1
  72. package/operations/entry/elasticsearch/fields.d.ts +5 -4
  73. package/operations/entry/elasticsearch/fields.js +73 -60
  74. package/operations/entry/elasticsearch/fields.js.map +1 -1
  75. package/operations/entry/elasticsearch/filtering/applyFiltering.js +1 -10
  76. package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
  77. package/operations/entry/elasticsearch/filtering/exec.js +9 -52
  78. package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
  79. package/operations/entry/elasticsearch/filtering/index.js +0 -2
  80. package/operations/entry/elasticsearch/filtering/index.js.map +1 -1
  81. package/operations/entry/elasticsearch/filtering/path.js +1 -9
  82. package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
  83. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +1 -8
  84. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +1 -1
  85. package/operations/entry/elasticsearch/filtering/plugins/index.js +0 -5
  86. package/operations/entry/elasticsearch/filtering/plugins/index.js.map +1 -1
  87. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +0 -13
  88. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +1 -1
  89. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +0 -10
  90. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +1 -1
  91. package/operations/entry/elasticsearch/filtering/populated.js +0 -7
  92. package/operations/entry/elasticsearch/filtering/populated.js.map +1 -1
  93. package/operations/entry/elasticsearch/filtering/values.js +0 -6
  94. package/operations/entry/elasticsearch/filtering/values.js.map +1 -1
  95. package/operations/entry/elasticsearch/fullTextSearch.js +0 -13
  96. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
  97. package/operations/entry/elasticsearch/fullTextSearchFields.js +0 -6
  98. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
  99. package/operations/entry/elasticsearch/initialQuery.js +5 -19
  100. package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
  101. package/operations/entry/elasticsearch/keyword.js +0 -4
  102. package/operations/entry/elasticsearch/keyword.js.map +1 -1
  103. package/operations/entry/elasticsearch/plugins/bodyModifier.js +0 -3
  104. package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +1 -1
  105. package/operations/entry/elasticsearch/plugins/operator.js +0 -8
  106. package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
  107. package/operations/entry/elasticsearch/plugins/queryModifier.js +0 -3
  108. package/operations/entry/elasticsearch/plugins/queryModifier.js.map +1 -1
  109. package/operations/entry/elasticsearch/plugins/search.js +0 -6
  110. package/operations/entry/elasticsearch/plugins/search.js.map +1 -1
  111. package/operations/entry/elasticsearch/plugins/sortModifier.js +0 -3
  112. package/operations/entry/elasticsearch/plugins/sortModifier.js.map +1 -1
  113. package/operations/entry/elasticsearch/sort.js +5 -21
  114. package/operations/entry/elasticsearch/sort.js.map +1 -1
  115. package/operations/entry/elasticsearch/transformValueForSearch.js +0 -4
  116. package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
  117. package/operations/entry/elasticsearch/types.d.ts +3 -3
  118. package/operations/entry/elasticsearch/types.js.map +1 -1
  119. package/operations/entry/index.js +54 -147
  120. package/operations/entry/index.js.map +1 -1
  121. package/operations/entry/keys.js +0 -9
  122. package/operations/entry/keys.js.map +1 -1
  123. package/operations/entry/recordType.js +0 -6
  124. package/operations/entry/recordType.js.map +1 -1
  125. package/operations/group/index.js +2 -32
  126. package/operations/group/index.js.map +1 -1
  127. package/operations/model/index.js +1 -34
  128. package/operations/model/index.js.map +1 -1
  129. package/operations/settings/index.js +0 -24
  130. package/operations/settings/index.js.map +1 -1
  131. package/operations/system/index.js +0 -17
  132. package/operations/system/index.js.map +1 -1
  133. package/package.json +23 -16
  134. package/plugins/CmsElasticsearchModelFieldPlugin.d.ts +69 -0
  135. package/plugins/CmsElasticsearchModelFieldPlugin.js +48 -0
  136. package/plugins/CmsElasticsearchModelFieldPlugin.js.map +1 -0
  137. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +0 -8
  138. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -1
  139. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +0 -10
  140. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +1 -1
  141. package/plugins/CmsEntryElasticsearchIndexPlugin.js +0 -5
  142. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -1
  143. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +0 -12
  144. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -1
  145. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +0 -8
  146. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -1
  147. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +0 -8
  148. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -1
  149. package/plugins/CmsEntryFilterPlugin.js +0 -7
  150. package/plugins/CmsEntryFilterPlugin.js.map +1 -1
  151. package/plugins/index.d.ts +1 -1
  152. package/plugins/index.js +11 -25
  153. package/plugins/index.js.map +1 -1
  154. package/types.d.ts +1 -1
  155. package/types.js +0 -5
  156. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createPartitionKey","params","tenant","locale","createSortKeys","id","createKeys","PK","SK","createType","createGroupsStorageOperations","entity","plugins","filteringPlugins","byType","ValueFilterPlugin","type","length","WebinyError","create","group","keys","put","TYPE","ex","message","code","error","update","deleteGroup","delete","get","getRecord","cleanupItem","list","sort","where","initialWhere","queryAllParams","partitionKey","options","gte","records","queryAll","filteredItems","filterItems","items","fields","sortItems"],"sources":["index.ts"],"sourcesContent":["import {\n CmsGroup,\n CmsGroupStorageOperations,\n CmsGroupStorageOperationsCreateParams,\n CmsGroupStorageOperationsDeleteParams,\n CmsGroupStorageOperationsGetParams,\n CmsGroupStorageOperationsListParams,\n CmsGroupStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ValueFilterPlugin } from \"@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#CMS#CMG`;\n};\n\ninterface SortKeyParams {\n id: string;\n}\nconst createSortKeys = (params: SortKeyParams): string => {\n const { id } = params;\n return id;\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeyParams & SortKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKeys(params)\n };\n};\n\nconst createType = (): string => {\n return \"cms.group\";\n};\n\nexport interface CreateGroupsStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createGroupsStorageOperations = (\n params: CreateGroupsStorageOperationsParams\n): CmsGroupStorageOperations => {\n const { entity, plugins } = params;\n\n const filteringPlugins = plugins.byType<ValueFilterPlugin>(ValueFilterPlugin.type);\n if (filteringPlugins.length === 0) {\n throw new WebinyError(\n \"DynamoDB filtering plugins not loaded.\",\n \"MISSING_DYNAMODB_FILTERING_PLUGINS\"\n );\n }\n\n const create = async (params: CmsGroupStorageOperationsCreateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n ...group,\n TYPE: createType(),\n ...keys\n });\n return group;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create group.\",\n ex.code || \"CREATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const update = async (params: CmsGroupStorageOperationsUpdateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n ...group,\n TYPE: createType(),\n ...keys\n });\n return group;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update group.\",\n ex.code || \"UPDATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const deleteGroup = async (params: CmsGroupStorageOperationsDeleteParams) => {\n const { group } = params;\n // TODO make sure that group has locale and tenant on it - add it in the crud just in case\n const keys = createKeys(group);\n\n try {\n await entity.delete(keys);\n return group;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete group.\",\n ex.code || \"DELETE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const get = async (params: CmsGroupStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const group = await getRecord<CmsGroup>({\n entity,\n keys\n });\n\n return cleanupItem(entity, group);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get group.\",\n ex.code || \"GET_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n keys\n }\n );\n }\n };\n const list = async (params: CmsGroupStorageOperationsListParams) => {\n const { sort, where: initialWhere } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey(initialWhere),\n options: {\n gte: \" \"\n }\n };\n\n let records: CmsGroup[] = [];\n try {\n records = await queryAll(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list groups.\",\n ex.code || \"LIST_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n sort,\n where: initialWhere\n }\n );\n }\n\n const where: Partial<CmsGroupStorageOperationsListParams[\"where\"]> = {\n ...initialWhere\n };\n delete where[\"tenant\"];\n delete where[\"locale\"];\n\n const filteredItems = filterItems({\n items: records,\n where,\n fields: [],\n plugins\n });\n\n if (!sort || sort.length === 0 || filteredItems.length === 0) {\n return filteredItems;\n }\n return sortItems({\n items: filteredItems,\n sort,\n fields: []\n });\n };\n\n return {\n create,\n update,\n delete: deleteGroup,\n get,\n list\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createPartitionKey","params","tenant","locale","createSortKeys","id","createKeys","PK","SK","createType","createGroupsStorageOperations","entity","plugins","filteringPlugins","byType","ValueFilterPlugin","type","length","WebinyError","create","group","keys","put","TYPE","ex","message","code","error","update","deleteGroup","delete","get","getRecord","cleanupItem","list","sort","where","initialWhere","queryAllParams","partitionKey","options","gte","records","queryAll","filteredItems","filterItems","items","fields","sortItems"],"sources":["index.ts"],"sourcesContent":["import {\n CmsGroup,\n CmsGroupStorageOperations,\n CmsGroupStorageOperationsCreateParams,\n CmsGroupStorageOperationsDeleteParams,\n CmsGroupStorageOperationsGetParams,\n CmsGroupStorageOperationsListParams,\n CmsGroupStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ValueFilterPlugin } from \"@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#CMS#CMG`;\n};\n\ninterface SortKeyParams {\n id: string;\n}\nconst createSortKeys = (params: SortKeyParams): string => {\n const { id } = params;\n return id;\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeyParams & SortKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKeys(params)\n };\n};\n\nconst createType = (): string => {\n return \"cms.group\";\n};\n\nexport interface CreateGroupsStorageOperationsParams {\n entity: Entity<any>;\n plugins: PluginsContainer;\n}\nexport const createGroupsStorageOperations = (\n params: CreateGroupsStorageOperationsParams\n): CmsGroupStorageOperations => {\n const { entity, plugins } = params;\n\n const filteringPlugins = plugins.byType<ValueFilterPlugin>(ValueFilterPlugin.type);\n if (filteringPlugins.length === 0) {\n throw new WebinyError(\n \"DynamoDB filtering plugins not loaded.\",\n \"MISSING_DYNAMODB_FILTERING_PLUGINS\"\n );\n }\n\n const create = async (params: CmsGroupStorageOperationsCreateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n ...group,\n TYPE: createType(),\n ...keys\n });\n return group;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create group.\",\n ex.code || \"CREATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const update = async (params: CmsGroupStorageOperationsUpdateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n ...group,\n TYPE: createType(),\n ...keys\n });\n return group;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update group.\",\n ex.code || \"UPDATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const deleteGroup = async (params: CmsGroupStorageOperationsDeleteParams) => {\n const { group } = params;\n // TODO make sure that group has locale and tenant on it - add it in the crud just in case\n const keys = createKeys(group);\n\n try {\n await entity.delete(keys);\n return group;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete group.\",\n ex.code || \"DELETE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const get = async (params: CmsGroupStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const group = await getRecord<CmsGroup>({\n entity,\n keys\n });\n\n return cleanupItem(entity, group);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get group.\",\n ex.code || \"GET_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n keys\n }\n );\n }\n };\n const list = async (params: CmsGroupStorageOperationsListParams) => {\n const { sort, where: initialWhere } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey(initialWhere),\n options: {\n gte: \" \"\n }\n };\n\n let records: CmsGroup[] = [];\n try {\n records = await queryAll(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list groups.\",\n ex.code || \"LIST_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n sort,\n where: initialWhere\n }\n );\n }\n\n const where: Partial<CmsGroupStorageOperationsListParams[\"where\"]> = {\n ...initialWhere\n };\n delete where[\"tenant\"];\n delete where[\"locale\"];\n\n const filteredItems = filterItems({\n items: records,\n where,\n fields: [],\n plugins\n });\n\n if (!sort || sort.length === 0 || filteredItems.length === 0) {\n return filteredItems;\n }\n return sortItems({\n items: filteredItems,\n sort,\n fields: []\n });\n };\n\n return {\n create,\n update,\n delete: deleteGroup,\n get,\n list\n };\n};\n"],"mappings":"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"}
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createModelsStorageOperations = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _configurations = require("../../configurations");
13
-
14
9
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
10
+ var _configurations = require("../../configurations");
16
11
  var _get = require("@webiny/db-dynamodb/utils/get");
17
-
18
12
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
19
-
20
13
  var _query = require("@webiny/db-dynamodb/utils/query");
21
-
22
14
  const createPartitionKey = params => {
23
15
  const {
24
16
  tenant,
@@ -26,42 +18,34 @@ const createPartitionKey = params => {
26
18
  } = params;
27
19
  return `T#${tenant}#L#${locale}#CMS#CM`;
28
20
  };
29
-
30
21
  const createSortKey = params => {
31
22
  return params.modelId;
32
23
  };
33
-
34
24
  const createKeys = params => {
35
25
  return {
36
26
  PK: createPartitionKey(params),
37
27
  SK: createSortKey(params)
38
28
  };
39
29
  };
40
-
41
30
  const createType = () => {
42
31
  return "cms.model";
43
32
  };
44
-
45
33
  const createModelsStorageOperations = params => {
46
34
  const {
47
35
  entity,
48
36
  elasticsearch
49
37
  } = params;
50
-
51
38
  const create = async params => {
52
39
  const {
53
40
  model
54
41
  } = params;
55
-
56
42
  const {
57
43
  index
58
44
  } = _configurations.configurations.es({
59
45
  model
60
46
  });
61
-
62
47
  const keys = createKeys(model);
63
48
  let error;
64
-
65
49
  try {
66
50
  await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _cleanup.cleanupItem)(entity, model)), keys), {}, {
67
51
  TYPE: createType()
@@ -73,8 +57,6 @@ const createModelsStorageOperations = params => {
73
57
  /**
74
58
  * In case of DynamoDB error we need to remove the index we created.
75
59
  */
76
-
77
-
78
60
  try {
79
61
  await elasticsearch.indices.delete({
80
62
  index,
@@ -86,16 +68,13 @@ const createModelsStorageOperations = params => {
86
68
  elasticsearchError: ex
87
69
  });
88
70
  }
89
-
90
71
  throw error;
91
72
  };
92
-
93
73
  const update = async params => {
94
74
  const {
95
75
  model
96
76
  } = params;
97
77
  const keys = createKeys(model);
98
-
99
78
  try {
100
79
  await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _cleanup.cleanupItem)(entity, model)), keys), {}, {
101
80
  TYPE: createType()
@@ -109,19 +88,16 @@ const createModelsStorageOperations = params => {
109
88
  });
110
89
  }
111
90
  };
112
-
113
91
  const deleteModel = async params => {
114
92
  const {
115
93
  model
116
94
  } = params;
117
95
  const keys = createKeys(model);
118
-
119
96
  const {
120
97
  index
121
98
  } = _configurations.configurations.es({
122
99
  model
123
100
  });
124
-
125
101
  try {
126
102
  await entity.delete(keys);
127
103
  } catch (ex) {
@@ -134,8 +110,6 @@ const createModelsStorageOperations = params => {
134
110
  /**
135
111
  * Always delete the model index after deleting the model.
136
112
  */
137
-
138
-
139
113
  try {
140
114
  await elasticsearch.indices.delete({
141
115
  index,
@@ -148,13 +122,10 @@ const createModelsStorageOperations = params => {
148
122
  model
149
123
  });
150
124
  }
151
-
152
125
  return model;
153
126
  };
154
-
155
127
  const get = async params => {
156
128
  const keys = createKeys(params);
157
-
158
129
  try {
159
130
  const item = await (0, _get.get)({
160
131
  entity,
@@ -168,7 +139,6 @@ const createModelsStorageOperations = params => {
168
139
  });
169
140
  }
170
141
  };
171
-
172
142
  const list = async params => {
173
143
  const {
174
144
  where
@@ -180,7 +150,6 @@ const createModelsStorageOperations = params => {
180
150
  gte: " "
181
151
  }
182
152
  };
183
-
184
153
  try {
185
154
  const items = await (0, _query.queryAll)(queryAllParams);
186
155
  return (0, _cleanup.cleanupItems)(entity, items);
@@ -191,7 +160,6 @@ const createModelsStorageOperations = params => {
191
160
  });
192
161
  }
193
162
  };
194
-
195
163
  return {
196
164
  create,
197
165
  update,
@@ -200,5 +168,4 @@ const createModelsStorageOperations = params => {
200
168
  list
201
169
  };
202
170
  };
203
-
204
171
  exports.createModelsStorageOperations = createModelsStorageOperations;
@@ -1 +1 @@
1
- {"version":3,"names":["createPartitionKey","params","tenant","locale","createSortKey","modelId","createKeys","PK","SK","createType","createModelsStorageOperations","entity","elasticsearch","create","model","index","configurations","es","keys","error","put","cleanupItem","TYPE","ex","indices","delete","ignore_unavailable","WebinyError","dynamodbError","elasticsearchError","update","message","code","deleteModel","get","item","getRecord","list","where","queryAllParams","partitionKey","options","gte","items","queryAll","cleanupItems"],"sources":["index.ts"],"sourcesContent":["import {\n CmsModel,\n CmsModelStorageOperations,\n CmsModelStorageOperationsCreateParams,\n CmsModelStorageOperationsDeleteParams,\n CmsModelStorageOperationsGetParams,\n CmsModelStorageOperationsListParams,\n CmsModelStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { configurations } from \"~/configurations\";\nimport WebinyError from \"@webiny/error\";\nimport { Client } from \"@elastic/elasticsearch\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\n\ninterface PartitionKeysParams {\n tenant: string;\n locale: string;\n}\nconst createPartitionKey = (params: PartitionKeysParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#CMS#CM`;\n};\n\ninterface SortKeyParams {\n modelId: string;\n}\nconst createSortKey = (params: SortKeyParams): string => {\n return params.modelId;\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeysParams & SortKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey(params)\n };\n};\n\nconst createType = (): string => {\n return \"cms.model\";\n};\n\nexport interface CreateModelsStorageOperationsParams {\n entity: Entity<any>;\n elasticsearch: Client;\n}\nexport const createModelsStorageOperations = (\n params: CreateModelsStorageOperationsParams\n): CmsModelStorageOperations => {\n const { entity, elasticsearch } = params;\n\n const create = async (params: CmsModelStorageOperationsCreateParams) => {\n const { model } = params;\n\n const { index } = configurations.es({\n model\n });\n\n const keys = createKeys(model);\n\n let error;\n try {\n await entity.put({\n ...cleanupItem(entity, model),\n ...keys,\n TYPE: createType()\n });\n return model;\n } catch (ex) {\n error = ex;\n }\n /**\n * In case of DynamoDB error we need to remove the index we created.\n */\n try {\n await elasticsearch.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not delete elasticsearch index \"${index}\" after model record failed to be created.`,\n \"DELETE_MODEL_INDEX_ERROR\",\n {\n dynamodbError: error,\n elasticsearchError: ex\n }\n );\n }\n throw error;\n };\n\n const update = async (params: CmsModelStorageOperationsUpdateParams) => {\n const { model } = params;\n\n const keys = createKeys(model);\n\n try {\n await entity.put({\n ...cleanupItem(entity, 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 {\n error: ex,\n model,\n keys\n }\n );\n }\n };\n\n const deleteModel = async (params: CmsModelStorageOperationsDeleteParams) => {\n const { model } = params;\n const keys = createKeys(model);\n\n const { index } = configurations.es({\n model\n });\n\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete model.\",\n ex.code || \"MODEL_DELETE_ERROR\",\n {\n error: ex,\n model,\n keys\n }\n );\n }\n /**\n * Always delete the model index after deleting the model.\n */\n try {\n await elasticsearch.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not delete elasticsearch index \"${index}\" after model record delete.`,\n \"DELETE_MODEL_INDEX_ERROR\",\n {\n error: ex,\n index,\n model\n }\n );\n }\n\n return model;\n };\n\n const get = async (params: CmsModelStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const item = await getRecord<CmsModel>({\n entity,\n keys\n });\n return cleanupItem(entity, item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get model.\",\n ex.code || \"MODEL_GET_ERROR\",\n {\n error: ex,\n keys\n }\n );\n }\n };\n\n const list = async (params: CmsModelStorageOperationsListParams) => {\n const { where } = params;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey(where),\n options: {\n gte: \" \"\n }\n };\n try {\n const items = await queryAll<CmsModel>(queryAllParams);\n\n return cleanupItems(entity, items);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list models.\",\n ex.code || \"MODEL_LIST_ERROR\",\n {\n error: ex,\n partitionKey: queryAllParams.partitionKey\n }\n );\n }\n };\n\n return {\n create,\n update,\n delete: deleteModel,\n get,\n list\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createPartitionKey","params","tenant","locale","createSortKey","modelId","createKeys","PK","SK","createType","createModelsStorageOperations","entity","elasticsearch","create","model","index","configurations","es","keys","error","put","cleanupItem","TYPE","ex","indices","delete","ignore_unavailable","WebinyError","dynamodbError","elasticsearchError","update","message","code","deleteModel","get","item","getRecord","list","where","queryAllParams","partitionKey","options","gte","items","queryAll","cleanupItems"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsModel,\n CmsModelStorageOperations,\n CmsModelStorageOperationsCreateParams,\n CmsModelStorageOperationsDeleteParams,\n CmsModelStorageOperationsGetParams,\n CmsModelStorageOperationsListParams,\n CmsModelStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { configurations } from \"~/configurations\";\nimport { Client } from \"@elastic/elasticsearch\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\n\ninterface PartitionKeysParams {\n tenant: string;\n locale: string;\n}\n\nconst createPartitionKey = (params: PartitionKeysParams): string => {\n const { tenant, locale } = params;\n return `T#${tenant}#L#${locale}#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}\n\nconst createKeys = (params: PartitionKeysParams & SortKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey(params)\n };\n};\n\nconst createType = (): string => {\n return \"cms.model\";\n};\n\nexport interface CreateModelsStorageOperationsParams {\n entity: Entity<any>;\n elasticsearch: Client;\n}\n\nexport const createModelsStorageOperations = (\n params: CreateModelsStorageOperationsParams\n): CmsModelStorageOperations => {\n const { entity, elasticsearch } = params;\n\n const create = async (params: CmsModelStorageOperationsCreateParams) => {\n const { model } = params;\n\n const { index } = configurations.es({\n model\n });\n\n const keys = createKeys(model);\n\n let error;\n try {\n await entity.put({\n ...cleanupItem(entity, model),\n ...keys,\n TYPE: createType()\n });\n return model;\n } catch (ex) {\n error = ex;\n }\n /**\n * In case of DynamoDB error we need to remove the index we created.\n */\n try {\n await elasticsearch.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not delete elasticsearch index \"${index}\" after model record failed to be created.`,\n \"DELETE_MODEL_INDEX_ERROR\",\n {\n dynamodbError: error,\n elasticsearchError: ex\n }\n );\n }\n throw error;\n };\n\n const update = async (params: CmsModelStorageOperationsUpdateParams) => {\n const { model } = params;\n\n const keys = createKeys(model);\n\n try {\n await entity.put({\n ...cleanupItem(entity, 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 {\n error: ex,\n model,\n keys\n }\n );\n }\n };\n\n const deleteModel = async (params: CmsModelStorageOperationsDeleteParams) => {\n const { model } = params;\n const keys = createKeys(model);\n\n const { index } = configurations.es({\n model\n });\n\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete model.\",\n ex.code || \"MODEL_DELETE_ERROR\",\n {\n error: ex,\n model,\n keys\n }\n );\n }\n /**\n * Always delete the model index after deleting the model.\n */\n try {\n await elasticsearch.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n throw new WebinyError(\n `Could not delete elasticsearch index \"${index}\" after model record delete.`,\n \"DELETE_MODEL_INDEX_ERROR\",\n {\n error: ex,\n index,\n model\n }\n );\n }\n\n return model;\n };\n\n const get = async (params: CmsModelStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const item = await getRecord<CmsModel>({\n entity,\n keys\n });\n return cleanupItem(entity, item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get model.\",\n ex.code || \"MODEL_GET_ERROR\",\n {\n error: ex,\n keys\n }\n );\n }\n };\n\n const list = async (params: CmsModelStorageOperationsListParams) => {\n const { where } = params;\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey(where),\n options: {\n gte: \" \"\n }\n };\n try {\n const items = await queryAll<CmsModel>(queryAllParams);\n\n return cleanupItems(entity, items);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list models.\",\n ex.code || \"MODEL_LIST_ERROR\",\n {\n error: ex,\n partitionKey: queryAllParams.partitionKey\n }\n );\n }\n };\n\n return {\n create,\n update,\n delete: deleteModel,\n get,\n list\n };\n};\n"],"mappings":"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"}
@@ -1,74 +1,58 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createSettingsStorageOperations = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _get = require("@webiny/db-dynamodb/utils/get");
13
-
14
10
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
11
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
17
-
18
12
  const convertToDbData = settings => {
19
13
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settings), {}, {
20
14
  contentModelLastChange: settings.contentModelLastChange.toISOString()
21
15
  });
22
16
  };
23
-
24
17
  const convertFromDbData = settings => {
25
18
  if (!settings) {
26
19
  return null;
27
20
  }
28
-
29
21
  let contentModelLastChange;
30
-
31
22
  try {
32
23
  contentModelLastChange = new Date(settings.contentModelLastChange);
33
24
  } catch {
34
25
  contentModelLastChange = new Date();
35
26
  }
36
-
37
27
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settings), {}, {
38
28
  contentModelLastChange
39
29
  });
40
30
  };
41
-
42
31
  const createPartitionKey = ({
43
32
  tenant,
44
33
  locale
45
34
  }) => {
46
35
  return `T#${tenant}#L#${locale}#CMS#SETTINGS`;
47
36
  };
48
-
49
37
  const createSortKey = () => {
50
38
  return "settings";
51
39
  };
52
-
53
40
  const createKeys = params => {
54
41
  return {
55
42
  PK: createPartitionKey(params),
56
43
  SK: createSortKey()
57
44
  };
58
45
  };
59
-
60
46
  const createSettingsStorageOperations = params => {
61
47
  const {
62
48
  entity
63
49
  } = params;
64
-
65
50
  const create = async params => {
66
51
  const {
67
52
  settings
68
53
  } = params;
69
54
  const keys = createKeys(settings);
70
55
  const dbSettings = convertToDbData(settings);
71
-
72
56
  try {
73
57
  await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, dbSettings), keys));
74
58
  return settings;
@@ -81,14 +65,12 @@ const createSettingsStorageOperations = params => {
81
65
  });
82
66
  }
83
67
  };
84
-
85
68
  const update = async params => {
86
69
  const {
87
70
  settings
88
71
  } = params;
89
72
  const keys = createKeys(settings);
90
73
  const dbSettings = convertToDbData(settings);
91
-
92
74
  try {
93
75
  await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, dbSettings), keys));
94
76
  return settings;
@@ -101,20 +83,16 @@ const createSettingsStorageOperations = params => {
101
83
  });
102
84
  }
103
85
  };
104
-
105
86
  const get = async params => {
106
87
  const keys = createKeys(params);
107
-
108
88
  try {
109
89
  const record = await (0, _get.get)({
110
90
  entity,
111
91
  keys
112
92
  });
113
-
114
93
  if (!record) {
115
94
  return null;
116
95
  }
117
-
118
96
  const settings = (0, _cleanup.cleanupItem)(entity, record);
119
97
  return convertFromDbData(settings);
120
98
  } catch (ex) {
@@ -124,12 +102,10 @@ const createSettingsStorageOperations = params => {
124
102
  });
125
103
  }
126
104
  };
127
-
128
105
  return {
129
106
  create,
130
107
  get,
131
108
  update
132
109
  };
133
110
  };
134
-
135
111
  exports.createSettingsStorageOperations = createSettingsStorageOperations;
@@ -1 +1 @@
1
- {"version":3,"names":["convertToDbData","settings","contentModelLastChange","toISOString","convertFromDbData","Date","createPartitionKey","tenant","locale","createSortKey","createKeys","params","PK","SK","createSettingsStorageOperations","entity","create","keys","dbSettings","put","ex","WebinyError","message","code","error","update","get","record","getRecord","cleanupItem"],"sources":["index.ts"],"sourcesContent":["import {\n CmsSettings,\n CmsSettingsStorageOperations,\n CmsSettingsStorageOperationsCreateParams,\n CmsSettingsStorageOperationsGetParams,\n CmsSettingsStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\n\ninterface CmsSettingsDb extends Omit<CmsSettings, \"contentModelLastChange\"> {\n contentModelLastChange: string;\n}\n\nconst convertToDbData = (settings: CmsSettings): CmsSettingsDb => {\n return {\n ...settings,\n contentModelLastChange: settings.contentModelLastChange.toISOString()\n };\n};\n\nconst convertFromDbData = (settings?: CmsSettingsDb): CmsSettings | null => {\n if (!settings) {\n return null;\n }\n let contentModelLastChange;\n try {\n contentModelLastChange = new Date(settings.contentModelLastChange);\n } catch {\n contentModelLastChange = new Date();\n }\n return {\n ...settings,\n contentModelLastChange\n };\n};\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\n\nconst createPartitionKey = ({ tenant, locale }: PartitionKeyParams): string => {\n return `T#${tenant}#L#${locale}#CMS#SETTINGS`;\n};\n\nconst createSortKey = (): string => {\n return \"settings\";\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey()\n };\n};\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity<any>;\n}\n\nexport const createSettingsStorageOperations = (\n params: CreateSettingsStorageOperationsParams\n): CmsSettingsStorageOperations => {\n const { entity } = params;\n\n const create = async (params: CmsSettingsStorageOperationsCreateParams) => {\n const { settings } = params;\n const keys = createKeys(settings);\n\n const dbSettings: CmsSettingsDb = convertToDbData(settings);\n\n try {\n await entity.put({\n ...dbSettings,\n ...keys\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create settings.\",\n ex.code || \"CREATE_SETTINGS_ERROR\",\n {\n error: ex,\n settings,\n dbSettings,\n keys\n }\n );\n }\n };\n\n const update = async (params: CmsSettingsStorageOperationsUpdateParams) => {\n const { settings } = params;\n\n const keys = createKeys(settings);\n\n const dbSettings: CmsSettingsDb = convertToDbData(settings);\n\n try {\n await entity.put({\n ...dbSettings,\n ...keys\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update settings.\",\n ex.code || \"UPDATE_SETTINGS_ERROR\",\n {\n error: ex,\n settings,\n dbSettings,\n keys\n }\n );\n }\n };\n\n const get = async (params: CmsSettingsStorageOperationsGetParams) => {\n const keys = createKeys(params);\n try {\n const record = await getRecord<CmsSettingsDb>({\n entity,\n keys\n });\n if (!record) {\n return null;\n }\n const settings = cleanupItem(entity, record) as CmsSettingsDb;\n return convertFromDbData(settings);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get settings.\",\n ex.code || \"GET_SETTINGS_ERROR\",\n {\n error: ex,\n keys\n }\n );\n }\n };\n\n return {\n create,\n get,\n update\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["convertToDbData","settings","contentModelLastChange","toISOString","convertFromDbData","Date","createPartitionKey","tenant","locale","createSortKey","createKeys","params","PK","SK","createSettingsStorageOperations","entity","create","keys","dbSettings","put","ex","WebinyError","message","code","error","update","get","record","getRecord","cleanupItem"],"sources":["index.ts"],"sourcesContent":["import {\n CmsSettings,\n CmsSettingsStorageOperations,\n CmsSettingsStorageOperationsCreateParams,\n CmsSettingsStorageOperationsGetParams,\n CmsSettingsStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\n\ninterface CmsSettingsDb extends Omit<CmsSettings, \"contentModelLastChange\"> {\n contentModelLastChange: string;\n}\n\nconst convertToDbData = (settings: CmsSettings): CmsSettingsDb => {\n return {\n ...settings,\n contentModelLastChange: settings.contentModelLastChange.toISOString()\n };\n};\n\nconst convertFromDbData = (settings?: CmsSettingsDb): CmsSettings | null => {\n if (!settings) {\n return null;\n }\n let contentModelLastChange;\n try {\n contentModelLastChange = new Date(settings.contentModelLastChange);\n } catch {\n contentModelLastChange = new Date();\n }\n return {\n ...settings,\n contentModelLastChange\n };\n};\n\ninterface PartitionKeyParams {\n tenant: string;\n locale: string;\n}\n\nconst createPartitionKey = ({ tenant, locale }: PartitionKeyParams): string => {\n return `T#${tenant}#L#${locale}#CMS#SETTINGS`;\n};\n\nconst createSortKey = (): string => {\n return \"settings\";\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey()\n };\n};\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity<any>;\n}\n\nexport const createSettingsStorageOperations = (\n params: CreateSettingsStorageOperationsParams\n): CmsSettingsStorageOperations => {\n const { entity } = params;\n\n const create = async (params: CmsSettingsStorageOperationsCreateParams) => {\n const { settings } = params;\n const keys = createKeys(settings);\n\n const dbSettings: CmsSettingsDb = convertToDbData(settings);\n\n try {\n await entity.put({\n ...dbSettings,\n ...keys\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create settings.\",\n ex.code || \"CREATE_SETTINGS_ERROR\",\n {\n error: ex,\n settings,\n dbSettings,\n keys\n }\n );\n }\n };\n\n const update = async (params: CmsSettingsStorageOperationsUpdateParams) => {\n const { settings } = params;\n\n const keys = createKeys(settings);\n\n const dbSettings: CmsSettingsDb = convertToDbData(settings);\n\n try {\n await entity.put({\n ...dbSettings,\n ...keys\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update settings.\",\n ex.code || \"UPDATE_SETTINGS_ERROR\",\n {\n error: ex,\n settings,\n dbSettings,\n keys\n }\n );\n }\n };\n\n const get = async (params: CmsSettingsStorageOperationsGetParams) => {\n const keys = createKeys(params);\n try {\n const record = await getRecord<CmsSettingsDb>({\n entity,\n keys\n });\n if (!record) {\n return null;\n }\n const settings = cleanupItem(entity, record) as CmsSettingsDb;\n return convertFromDbData(settings);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get settings.\",\n ex.code || \"GET_SETTINGS_ERROR\",\n {\n error: ex,\n keys\n }\n );\n }\n };\n\n return {\n create,\n get,\n update\n };\n};\n"],"mappings":";;;;;;;;AAQA;AACA;AACA;AAMA,MAAMA,eAAe,GAAIC,QAAqB,IAAoB;EAC9D,mEACOA,QAAQ;IACXC,sBAAsB,EAAED,QAAQ,CAACC,sBAAsB,CAACC,WAAW;EAAE;AAE7E,CAAC;AAED,MAAMC,iBAAiB,GAAIH,QAAwB,IAAyB;EACxE,IAAI,CAACA,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EACA,IAAIC,sBAAsB;EAC1B,IAAI;IACAA,sBAAsB,GAAG,IAAIG,IAAI,CAACJ,QAAQ,CAACC,sBAAsB,CAAC;EACtE,CAAC,CAAC,MAAM;IACJA,sBAAsB,GAAG,IAAIG,IAAI,EAAE;EACvC;EACA,mEACOJ,QAAQ;IACXC;EAAsB;AAE9B,CAAC;AAOD,MAAMI,kBAAkB,GAAG,CAAC;EAAEC,MAAM;EAAEC;AAA2B,CAAC,KAAa;EAC3E,OAAQ,KAAID,MAAO,MAAKC,MAAO,eAAc;AACjD,CAAC;AAED,MAAMC,aAAa,GAAG,MAAc;EAChC,OAAO,UAAU;AACrB,CAAC;AAMD,MAAMC,UAAU,GAAIC,MAA0B,IAAW;EACrD,OAAO;IACHC,EAAE,EAAEN,kBAAkB,CAACK,MAAM,CAAC;IAC9BE,EAAE,EAAEJ,aAAa;EACrB,CAAC;AACL,CAAC;AAMM,MAAMK,+BAA+B,GACxCH,MAA6C,IACd;EAC/B,MAAM;IAAEI;EAAO,CAAC,GAAGJ,MAAM;EAEzB,MAAMK,MAAM,GAAG,MAAOL,MAAgD,IAAK;IACvE,MAAM;MAAEV;IAAS,CAAC,GAAGU,MAAM;IAC3B,MAAMM,IAAI,GAAGP,UAAU,CAACT,QAAQ,CAAC;IAEjC,MAAMiB,UAAyB,GAAGlB,eAAe,CAACC,QAAQ,CAAC;IAE3D,IAAI;MACA,MAAMc,MAAM,CAACI,GAAG,6DACTD,UAAU,GACVD,IAAI,EACT;MACF,OAAOhB,QAAQ;IACnB,CAAC,CAAC,OAAOmB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,4BAA4B,EAC1CF,EAAE,CAACG,IAAI,IAAI,uBAAuB,EAClC;QACIC,KAAK,EAAEJ,EAAE;QACTnB,QAAQ;QACRiB,UAAU;QACVD;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,MAAMQ,MAAM,GAAG,MAAOd,MAAgD,IAAK;IACvE,MAAM;MAAEV;IAAS,CAAC,GAAGU,MAAM;IAE3B,MAAMM,IAAI,GAAGP,UAAU,CAACT,QAAQ,CAAC;IAEjC,MAAMiB,UAAyB,GAAGlB,eAAe,CAACC,QAAQ,CAAC;IAE3D,IAAI;MACA,MAAMc,MAAM,CAACI,GAAG,6DACTD,UAAU,GACVD,IAAI,EACT;MACF,OAAOhB,QAAQ;IACnB,CAAC,CAAC,OAAOmB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,4BAA4B,EAC1CF,EAAE,CAACG,IAAI,IAAI,uBAAuB,EAClC;QACIC,KAAK,EAAEJ,EAAE;QACTnB,QAAQ;QACRiB,UAAU;QACVD;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,MAAMS,GAAG,GAAG,MAAOf,MAA6C,IAAK;IACjE,MAAMM,IAAI,GAAGP,UAAU,CAACC,MAAM,CAAC;IAC/B,IAAI;MACA,MAAMgB,MAAM,GAAG,MAAM,IAAAC,QAAS,EAAgB;QAC1Cb,MAAM;QACNE;MACJ,CAAC,CAAC;MACF,IAAI,CAACU,MAAM,EAAE;QACT,OAAO,IAAI;MACf;MACA,MAAM1B,QAAQ,GAAG,IAAA4B,oBAAW,EAACd,MAAM,EAAEY,MAAM,CAAkB;MAC7D,OAAOvB,iBAAiB,CAACH,QAAQ,CAAC;IACtC,CAAC,CAAC,OAAOmB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,yBAAyB,EACvCF,EAAE,CAACG,IAAI,IAAI,oBAAoB,EAC/B;QACIC,KAAK,EAAEJ,EAAE;QACTH;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,OAAO;IACHD,MAAM;IACNU,GAAG;IACHD;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -1,47 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createSystemStorageOperations = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _get = require("@webiny/db-dynamodb/utils/get");
15
-
16
11
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
17
-
18
12
  const createPartitionKey = ({
19
13
  tenant
20
14
  }) => {
21
15
  return `T#${tenant.toLowerCase()}#SYSTEM`;
22
16
  };
23
-
24
17
  const createSortKey = () => {
25
18
  return "CMS";
26
19
  };
27
-
28
20
  const createKeys = params => {
29
21
  return {
30
22
  PK: createPartitionKey(params),
31
23
  SK: createSortKey()
32
24
  };
33
25
  };
34
-
35
26
  const createSystemStorageOperations = params => {
36
27
  const {
37
28
  entity
38
29
  } = params;
39
-
40
30
  const create = async ({
41
31
  system
42
32
  }) => {
43
33
  const keys = createKeys(system);
44
-
45
34
  try {
46
35
  await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, system), keys));
47
36
  return system;
@@ -53,13 +42,11 @@ const createSystemStorageOperations = params => {
53
42
  });
54
43
  }
55
44
  };
56
-
57
45
  const update = async params => {
58
46
  const {
59
47
  system
60
48
  } = params;
61
49
  const keys = createKeys(system);
62
-
63
50
  try {
64
51
  await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, system), keys));
65
52
  return system;
@@ -71,10 +58,8 @@ const createSystemStorageOperations = params => {
71
58
  });
72
59
  }
73
60
  };
74
-
75
61
  const get = async params => {
76
62
  const keys = createKeys(params);
77
-
78
63
  try {
79
64
  const system = await (0, _get.get)({
80
65
  entity,
@@ -88,12 +73,10 @@ const createSystemStorageOperations = params => {
88
73
  });
89
74
  }
90
75
  };
91
-
92
76
  return {
93
77
  create,
94
78
  update,
95
79
  get
96
80
  };
97
81
  };
98
-
99
82
  exports.createSystemStorageOperations = createSystemStorageOperations;
@@ -1 +1 @@
1
- {"version":3,"names":["createPartitionKey","tenant","toLowerCase","createSortKey","createKeys","params","PK","SK","createSystemStorageOperations","entity","create","system","keys","put","ex","WebinyError","message","code","error","update","get","getRecord","cleanupItem"],"sources":["index.ts"],"sourcesContent":["import {\n CmsSystem,\n CmsSystemStorageOperations,\n CmsSystemStorageOperationsCreateParams,\n CmsSystemStorageOperationsGetParams,\n CmsSystemStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\n\nexport interface CreateSystemStorageOperationsParams {\n entity: Entity<any>;\n}\n\ninterface PartitionKeyParams {\n tenant: string;\n}\nconst createPartitionKey = ({ tenant }: PartitionKeyParams): string => {\n return `T#${tenant.toLowerCase()}#SYSTEM`;\n};\nconst createSortKey = (): string => {\n return \"CMS\";\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey()\n };\n};\n\nexport const createSystemStorageOperations = (\n params: CreateSystemStorageOperationsParams\n): CmsSystemStorageOperations => {\n const { entity } = params;\n\n const create = async ({ system }: CmsSystemStorageOperationsCreateParams) => {\n const keys = createKeys(system);\n try {\n await entity.put({\n ...system,\n ...keys\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create system.\",\n ex.code || \"CREATE_SYSTEM_ERROR\",\n {\n error: ex,\n system,\n keys\n }\n );\n }\n };\n\n const update = async (params: CmsSystemStorageOperationsUpdateParams) => {\n const { system } = params;\n\n const keys = createKeys(system);\n\n try {\n await entity.put({\n ...system,\n ...keys\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update system.\",\n ex.code || \"UPDATE_SYSTEM_ERROR\",\n {\n error: ex,\n system,\n keys\n }\n );\n }\n };\n\n const get = async (params: CmsSystemStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const system = await getRecord<CmsSystem>({\n entity,\n keys\n });\n return cleanupItem(entity, system);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get system.\",\n ex.code || \"GET_SYSTEM_ERROR\",\n {\n error: ex,\n keys\n }\n );\n }\n };\n\n return {\n create,\n update,\n get\n };\n};\n"],"mappings":";;;;;;;;;;;AAQA;;AACA;;AACA;;AASA,MAAMA,kBAAkB,GAAG,CAAC;EAAEC;AAAF,CAAD,KAA4C;EACnE,OAAQ,KAAIA,MAAM,CAACC,WAAP,EAAqB,SAAjC;AACH,CAFD;;AAGA,MAAMC,aAAa,GAAG,MAAc;EAChC,OAAO,KAAP;AACH,CAFD;;AAQA,MAAMC,UAAU,GAAIC,MAAD,IAAsC;EACrD,OAAO;IACHC,EAAE,EAAEN,kBAAkB,CAACK,MAAD,CADnB;IAEHE,EAAE,EAAEJ,aAAa;EAFd,CAAP;AAIH,CALD;;AAOO,MAAMK,6BAA6B,GACtCH,MADyC,IAEZ;EAC7B,MAAM;IAAEI;EAAF,IAAaJ,MAAnB;;EAEA,MAAMK,MAAM,GAAG,OAAO;IAAEC;EAAF,CAAP,KAA8D;IACzE,MAAMC,IAAI,GAAGR,UAAU,CAACO,MAAD,CAAvB;;IACA,IAAI;MACA,MAAMF,MAAM,CAACI,GAAP,6DACCF,MADD,GAECC,IAFD,EAAN;MAIA,OAAOD,MAAP;IACH,CAND,CAME,OAAOG,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,0BADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIC,KAAK,EAAEJ,EADX;QAEIH,MAFJ;QAGIC;MAHJ,CAHE,CAAN;IASH;EACJ,CAnBD;;EAqBA,MAAMO,MAAM,GAAG,MAAOd,MAAP,IAA0D;IACrE,MAAM;MAAEM;IAAF,IAAaN,MAAnB;IAEA,MAAMO,IAAI,GAAGR,UAAU,CAACO,MAAD,CAAvB;;IAEA,IAAI;MACA,MAAMF,MAAM,CAACI,GAAP,6DACCF,MADD,GAECC,IAFD,EAAN;MAIA,OAAOD,MAAP;IACH,CAND,CAME,OAAOG,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,0BADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIC,KAAK,EAAEJ,EADX;QAEIH,MAFJ;QAGIC;MAHJ,CAHE,CAAN;IASH;EACJ,CAtBD;;EAwBA,MAAMQ,GAAG,GAAG,MAAOf,MAAP,IAAuD;IAC/D,MAAMO,IAAI,GAAGR,UAAU,CAACC,MAAD,CAAvB;;IAEA,IAAI;MACA,MAAMM,MAAM,GAAG,MAAM,IAAAU,QAAA,EAAqB;QACtCZ,MADsC;QAEtCG;MAFsC,CAArB,CAArB;MAIA,OAAO,IAAAU,oBAAA,EAAYb,MAAZ,EAAoBE,MAApB,CAAP;IACH,CAND,CAME,OAAOG,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,uBADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,kBAFT,EAGF;QACIC,KAAK,EAAEJ,EADX;QAEIF;MAFJ,CAHE,CAAN;IAQH;EACJ,CAnBD;;EAqBA,OAAO;IACHF,MADG;IAEHS,MAFG;IAGHC;EAHG,CAAP;AAKH,CA5EM"}
1
+ {"version":3,"names":["createPartitionKey","tenant","toLowerCase","createSortKey","createKeys","params","PK","SK","createSystemStorageOperations","entity","create","system","keys","put","ex","WebinyError","message","code","error","update","get","getRecord","cleanupItem"],"sources":["index.ts"],"sourcesContent":["import {\n CmsSystem,\n CmsSystemStorageOperations,\n CmsSystemStorageOperationsCreateParams,\n CmsSystemStorageOperationsGetParams,\n CmsSystemStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { get as getRecord } from \"@webiny/db-dynamodb/utils/get\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\n\nexport interface CreateSystemStorageOperationsParams {\n entity: Entity<any>;\n}\n\ninterface PartitionKeyParams {\n tenant: string;\n}\nconst createPartitionKey = ({ tenant }: PartitionKeyParams): string => {\n return `T#${tenant.toLowerCase()}#SYSTEM`;\n};\nconst createSortKey = (): string => {\n return \"CMS\";\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\nconst createKeys = (params: PartitionKeyParams): Keys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKey()\n };\n};\n\nexport const createSystemStorageOperations = (\n params: CreateSystemStorageOperationsParams\n): CmsSystemStorageOperations => {\n const { entity } = params;\n\n const create = async ({ system }: CmsSystemStorageOperationsCreateParams) => {\n const keys = createKeys(system);\n try {\n await entity.put({\n ...system,\n ...keys\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create system.\",\n ex.code || \"CREATE_SYSTEM_ERROR\",\n {\n error: ex,\n system,\n keys\n }\n );\n }\n };\n\n const update = async (params: CmsSystemStorageOperationsUpdateParams) => {\n const { system } = params;\n\n const keys = createKeys(system);\n\n try {\n await entity.put({\n ...system,\n ...keys\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update system.\",\n ex.code || \"UPDATE_SYSTEM_ERROR\",\n {\n error: ex,\n system,\n keys\n }\n );\n }\n };\n\n const get = async (params: CmsSystemStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const system = await getRecord<CmsSystem>({\n entity,\n keys\n });\n return cleanupItem(entity, system);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get system.\",\n ex.code || \"GET_SYSTEM_ERROR\",\n {\n error: ex,\n keys\n }\n );\n }\n };\n\n return {\n create,\n update,\n get\n };\n};\n"],"mappings":";;;;;;;;AAQA;AACA;AACA;AASA,MAAMA,kBAAkB,GAAG,CAAC;EAAEC;AAA2B,CAAC,KAAa;EACnE,OAAQ,KAAIA,MAAM,CAACC,WAAW,EAAG,SAAQ;AAC7C,CAAC;AACD,MAAMC,aAAa,GAAG,MAAc;EAChC,OAAO,KAAK;AAChB,CAAC;AAMD,MAAMC,UAAU,GAAIC,MAA0B,IAAW;EACrD,OAAO;IACHC,EAAE,EAAEN,kBAAkB,CAACK,MAAM,CAAC;IAC9BE,EAAE,EAAEJ,aAAa;EACrB,CAAC;AACL,CAAC;AAEM,MAAMK,6BAA6B,GACtCH,MAA2C,IACd;EAC7B,MAAM;IAAEI;EAAO,CAAC,GAAGJ,MAAM;EAEzB,MAAMK,MAAM,GAAG,OAAO;IAAEC;EAA+C,CAAC,KAAK;IACzE,MAAMC,IAAI,GAAGR,UAAU,CAACO,MAAM,CAAC;IAC/B,IAAI;MACA,MAAMF,MAAM,CAACI,GAAG,6DACTF,MAAM,GACNC,IAAI,EACT;MACF,OAAOD,MAAM;IACjB,CAAC,CAAC,OAAOG,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,0BAA0B,EACxCF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIC,KAAK,EAAEJ,EAAE;QACTH,MAAM;QACNC;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,MAAMO,MAAM,GAAG,MAAOd,MAA8C,IAAK;IACrE,MAAM;MAAEM;IAAO,CAAC,GAAGN,MAAM;IAEzB,MAAMO,IAAI,GAAGR,UAAU,CAACO,MAAM,CAAC;IAE/B,IAAI;MACA,MAAMF,MAAM,CAACI,GAAG,6DACTF,MAAM,GACNC,IAAI,EACT;MACF,OAAOD,MAAM;IACjB,CAAC,CAAC,OAAOG,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,0BAA0B,EACxCF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIC,KAAK,EAAEJ,EAAE;QACTH,MAAM;QACNC;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,MAAMQ,GAAG,GAAG,MAAOf,MAA2C,IAAK;IAC/D,MAAMO,IAAI,GAAGR,UAAU,CAACC,MAAM,CAAC;IAE/B,IAAI;MACA,MAAMM,MAAM,GAAG,MAAM,IAAAU,QAAS,EAAY;QACtCZ,MAAM;QACNG;MACJ,CAAC,CAAC;MACF,OAAO,IAAAU,oBAAW,EAACb,MAAM,EAAEE,MAAM,CAAC;IACtC,CAAC,CAAC,OAAOG,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,uBAAuB,EACrCF,EAAE,CAACG,IAAI,IAAI,kBAAkB,EAC7B;QACIC,KAAK,EAAEJ,EAAE;QACTF;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,OAAO;IACHF,MAAM;IACNS,MAAM;IACNC;EACJ,CAAC;AACL,CAAC;AAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-ddb-es",
3
- "version": "5.34.8",
3
+ "version": "5.35.0-beta.0",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "@webiny/api-headless-cms",
@@ -22,16 +22,16 @@
22
22
  ],
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "@babel/runtime": "7.19.0",
26
- "@webiny/api": "5.34.8",
27
- "@webiny/api-elasticsearch": "5.34.8",
28
- "@webiny/api-headless-cms": "5.34.8",
29
- "@webiny/db-dynamodb": "5.34.8",
30
- "@webiny/error": "5.34.8",
31
- "@webiny/handler-db": "5.34.8",
32
- "@webiny/plugins": "5.34.8",
33
- "@webiny/utils": "5.34.8",
34
- "dataloader": "2.1.0",
25
+ "@babel/runtime": "7.20.13",
26
+ "@webiny/api": "5.35.0-beta.0",
27
+ "@webiny/api-elasticsearch": "5.35.0-beta.0",
28
+ "@webiny/api-headless-cms": "5.35.0-beta.0",
29
+ "@webiny/db-dynamodb": "5.35.0-beta.0",
30
+ "@webiny/error": "5.35.0-beta.0",
31
+ "@webiny/handler-db": "5.35.0-beta.0",
32
+ "@webiny/plugins": "5.35.0-beta.0",
33
+ "@webiny/utils": "5.35.0-beta.0",
34
+ "dataloader": "2.2.1",
35
35
  "dynamodb-toolbox": "0.3.5",
36
36
  "jsonpack": "1.1.5",
37
37
  "lodash": "4.17.21"
@@ -42,10 +42,17 @@
42
42
  "@babel/preset-env": "^7.19.4",
43
43
  "@elastic/elasticsearch": "7.12.0",
44
44
  "@types/jsonpack": "^1.1.0",
45
- "@webiny/api-dynamodb-to-elasticsearch": "^5.34.8",
46
- "@webiny/cli": "^5.34.8",
47
- "@webiny/handler-aws": "^5.34.8",
48
- "@webiny/project-utils": "^5.34.8",
45
+ "@webiny/api-dynamodb-to-elasticsearch": "^5.35.0-beta.0",
46
+ "@webiny/api-i18n": "^5.35.0-beta.0",
47
+ "@webiny/api-i18n-ddb": "^5.35.0-beta.0",
48
+ "@webiny/api-security": "^5.35.0-beta.0",
49
+ "@webiny/api-security-so-ddb": "^5.35.0-beta.0",
50
+ "@webiny/api-tenancy": "^5.35.0-beta.0",
51
+ "@webiny/api-tenancy-so-ddb": "^5.35.0-beta.0",
52
+ "@webiny/cli": "^5.35.0-beta.0",
53
+ "@webiny/handler": "^5.35.0-beta.0",
54
+ "@webiny/handler-aws": "^5.35.0-beta.0",
55
+ "@webiny/project-utils": "^5.35.0-beta.0",
49
56
  "jest": "^28.1.0",
50
57
  "jest-dynalite": "^3.2.0",
51
58
  "jest-environment-node": "^27.2.4",
@@ -64,5 +71,5 @@
64
71
  "build": "yarn webiny run build",
65
72
  "watch": "yarn webiny run watch"
66
73
  },
67
- "gitHead": "6e77eebaac687279fe82ea04f667b7e84214b96a"
74
+ "gitHead": "8acc9e8892842cabb3980ce0b6432fde55968d5b"
68
75
  }