@webiny/api-headless-cms-ddb 0.0.0-unstable.615a930a68 → 0.0.0-unstable.61c048f412

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 (177) hide show
  1. package/README.md +6 -20
  2. package/definitions/entry.d.ts +4 -5
  3. package/definitions/entry.js +6 -89
  4. package/definitions/entry.js.map +1 -1
  5. package/definitions/group.d.ts +4 -5
  6. package/definitions/group.js +6 -63
  7. package/definitions/group.js.map +1 -1
  8. package/definitions/model.d.ts +4 -5
  9. package/definitions/model.js +6 -85
  10. package/definitions/model.js.map +1 -1
  11. package/definitions/table.d.ts +4 -6
  12. package/definitions/table.js +7 -28
  13. package/definitions/table.js.map +1 -1
  14. package/definitions/types.d.ts +59 -0
  15. package/definitions/types.js +3 -0
  16. package/definitions/types.js.map +1 -0
  17. package/dynamoDb/index.d.ts +1 -1
  18. package/dynamoDb/index.js +8 -20
  19. package/dynamoDb/index.js.map +1 -1
  20. package/dynamoDb/path/locationFolderId.d.ts +2 -0
  21. package/dynamoDb/path/locationFolderId.js +34 -0
  22. package/dynamoDb/path/locationFolderId.js.map +1 -0
  23. package/dynamoDb/path/plainObject.d.ts +1 -1
  24. package/dynamoDb/path/plainObject.js +6 -20
  25. package/dynamoDb/path/plainObject.js.map +1 -1
  26. package/dynamoDb/storage/longText.d.ts +1 -1
  27. package/dynamoDb/storage/longText.js +19 -34
  28. package/dynamoDb/storage/longText.js.map +1 -1
  29. package/dynamoDb/storage/richText.d.ts +1 -1
  30. package/dynamoDb/storage/richText.js +27 -88
  31. package/dynamoDb/storage/richText.js.map +1 -1
  32. package/dynamoDb/transformValue/datetime.d.ts +1 -1
  33. package/dynamoDb/transformValue/datetime.js +7 -19
  34. package/dynamoDb/transformValue/datetime.js.map +1 -1
  35. package/index.d.ts +2 -2
  36. package/index.js +47 -105
  37. package/index.js.map +1 -1
  38. package/operations/entry/dataLoader/DataLoaderCache.d.ts +15 -0
  39. package/operations/entry/dataLoader/DataLoaderCache.js +34 -0
  40. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -0
  41. package/operations/entry/dataLoader/constants.d.ts +1 -0
  42. package/operations/entry/dataLoader/constants.js +4 -0
  43. package/operations/entry/dataLoader/constants.js.map +1 -0
  44. package/operations/entry/dataLoader/createBatchScheduleFn.d.ts +8 -0
  45. package/operations/entry/dataLoader/createBatchScheduleFn.js +19 -0
  46. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -0
  47. package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +4 -0
  48. package/operations/entry/dataLoader/getAllEntryRevisions.js +32 -0
  49. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -0
  50. package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +4 -0
  51. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +46 -0
  52. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -0
  53. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +4 -0
  54. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +46 -0
  55. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -0
  56. package/operations/entry/dataLoader/getRevisionById.d.ts +4 -0
  57. package/operations/entry/dataLoader/getRevisionById.js +52 -0
  58. package/operations/entry/dataLoader/getRevisionById.js.map +1 -0
  59. package/operations/entry/dataLoader/index.d.ts +8 -0
  60. package/operations/entry/dataLoader/index.js +19 -0
  61. package/operations/entry/dataLoader/index.js.map +1 -0
  62. package/operations/entry/dataLoader/types.d.ts +5 -0
  63. package/operations/entry/dataLoader/types.js +3 -0
  64. package/operations/entry/dataLoader/types.js.map +1 -0
  65. package/operations/entry/dataLoaders.d.ts +14 -30
  66. package/operations/entry/dataLoaders.js +56 -271
  67. package/operations/entry/dataLoaders.js.map +1 -1
  68. package/operations/entry/filtering/createExpressions.d.ts +26 -0
  69. package/operations/entry/filtering/createExpressions.js +175 -0
  70. package/operations/entry/filtering/createExpressions.js.map +1 -0
  71. package/operations/entry/filtering/createFields.d.ts +7 -9
  72. package/operations/entry/filtering/createFields.js +87 -105
  73. package/operations/entry/filtering/createFields.js.map +1 -1
  74. package/operations/entry/filtering/extractSort.d.ts +8 -4
  75. package/operations/entry/filtering/extractSort.js +60 -31
  76. package/operations/entry/filtering/extractSort.js.map +1 -1
  77. package/operations/entry/filtering/filter.d.ts +6 -7
  78. package/operations/entry/filtering/filter.js +102 -89
  79. package/operations/entry/filtering/filter.js.map +1 -1
  80. package/operations/entry/filtering/fullTextSearch.d.ts +4 -8
  81. package/operations/entry/filtering/fullTextSearch.js +8 -30
  82. package/operations/entry/filtering/fullTextSearch.js.map +1 -1
  83. package/operations/entry/filtering/getValue.js +5 -27
  84. package/operations/entry/filtering/getValue.js.map +1 -1
  85. package/operations/entry/filtering/index.d.ts +2 -2
  86. package/operations/entry/filtering/index.js +3 -20
  87. package/operations/entry/filtering/index.js.map +1 -1
  88. package/operations/entry/filtering/mapPlugins.d.ts +2 -2
  89. package/operations/entry/filtering/mapPlugins.js +4 -18
  90. package/operations/entry/filtering/mapPlugins.js.map +1 -1
  91. package/operations/entry/filtering/plugins/defaultFilterCreate.d.ts +2 -2
  92. package/operations/entry/filtering/plugins/defaultFilterCreate.js +9 -20
  93. package/operations/entry/filtering/plugins/defaultFilterCreate.js.map +1 -1
  94. package/operations/entry/filtering/plugins/index.d.ts +1 -1
  95. package/operations/entry/filtering/plugins/index.js +7 -16
  96. package/operations/entry/filtering/plugins/index.js.map +1 -1
  97. package/operations/entry/filtering/plugins/objectFilterCreate.d.ts +2 -2
  98. package/operations/entry/filtering/plugins/objectFilterCreate.js +16 -39
  99. package/operations/entry/filtering/plugins/objectFilterCreate.js.map +1 -1
  100. package/operations/entry/filtering/plugins/refFilterCreate.d.ts +3 -2
  101. package/operations/entry/filtering/plugins/refFilterCreate.js +21 -36
  102. package/operations/entry/filtering/plugins/refFilterCreate.js.map +1 -1
  103. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.d.ts +2 -0
  104. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js +57 -0
  105. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js.map +1 -0
  106. package/operations/entry/filtering/sort.d.ts +8 -5
  107. package/operations/entry/filtering/sort.js +23 -36
  108. package/operations/entry/filtering/sort.js.map +1 -1
  109. package/operations/entry/filtering/systemFields.d.ts +2 -4
  110. package/operations/entry/filtering/systemFields.js +87 -43
  111. package/operations/entry/filtering/systemFields.js.map +1 -1
  112. package/operations/entry/filtering/transform.d.ts +1 -1
  113. package/operations/entry/filtering/transform.js +2 -10
  114. package/operations/entry/filtering/transform.js.map +1 -1
  115. package/operations/entry/filtering/types.d.ts +2 -2
  116. package/operations/entry/filtering/types.js +2 -4
  117. package/operations/entry/filtering/types.js.map +1 -1
  118. package/operations/entry/filtering/values.d.ts +2 -0
  119. package/operations/entry/filtering/values.js +16 -0
  120. package/operations/entry/filtering/values.js.map +1 -0
  121. package/operations/entry/filtering/where.js +5 -15
  122. package/operations/entry/filtering/where.js.map +1 -1
  123. package/operations/entry/index.d.ts +3 -4
  124. package/operations/entry/index.js +751 -414
  125. package/operations/entry/index.js.map +1 -1
  126. package/operations/entry/keys.d.ts +40 -2
  127. package/operations/entry/keys.js +54 -47
  128. package/operations/entry/keys.js.map +1 -1
  129. package/operations/group/index.d.ts +4 -4
  130. package/operations/group/index.js +44 -91
  131. package/operations/group/index.js.map +1 -1
  132. package/operations/model/index.d.ts +3 -3
  133. package/operations/model/index.js +36 -70
  134. package/operations/model/index.js.map +1 -1
  135. package/package.json +22 -29
  136. package/plugins/CmsEntryFieldFilterPathPlugin.d.ts +4 -3
  137. package/plugins/CmsEntryFieldFilterPathPlugin.js +14 -29
  138. package/plugins/CmsEntryFieldFilterPathPlugin.js.map +1 -1
  139. package/plugins/CmsEntryFieldFilterPlugin.d.ts +10 -10
  140. package/plugins/CmsEntryFieldFilterPlugin.js +9 -19
  141. package/plugins/CmsEntryFieldFilterPlugin.js.map +1 -1
  142. package/plugins/CmsEntryFieldSortingPlugin.d.ts +42 -0
  143. package/plugins/CmsEntryFieldSortingPlugin.js +19 -0
  144. package/plugins/CmsEntryFieldSortingPlugin.js.map +1 -0
  145. package/plugins/CmsFieldFilterValueTransformPlugin.d.ts +11 -0
  146. package/plugins/CmsFieldFilterValueTransformPlugin.js +16 -0
  147. package/plugins/CmsFieldFilterValueTransformPlugin.js.map +1 -0
  148. package/plugins/index.d.ts +4 -1
  149. package/plugins/index.js +5 -17
  150. package/plugins/index.js.map +1 -1
  151. package/types.d.ts +24 -19
  152. package/types.js +5 -13
  153. package/types.js.map +1 -1
  154. package/definitions/settings.d.ts +0 -9
  155. package/definitions/settings.js +0 -58
  156. package/definitions/settings.js.map +0 -1
  157. package/definitions/system.d.ts +0 -9
  158. package/definitions/system.js +0 -46
  159. package/definitions/system.js.map +0 -1
  160. package/dynamoDb/storage/date.d.ts +0 -2
  161. package/dynamoDb/storage/date.js +0 -109
  162. package/dynamoDb/storage/date.js.map +0 -1
  163. package/operations/entry/filtering/createFilters.d.ts +0 -20
  164. package/operations/entry/filtering/createFilters.js +0 -155
  165. package/operations/entry/filtering/createFilters.js.map +0 -1
  166. package/operations/entry/systemFields.d.ts +0 -2
  167. package/operations/entry/systemFields.js +0 -74
  168. package/operations/entry/systemFields.js.map +0 -1
  169. package/operations/entry/utils.d.ts +0 -36
  170. package/operations/entry/utils.js +0 -684
  171. package/operations/entry/utils.js.map +0 -1
  172. package/operations/settings/index.d.ts +0 -7
  173. package/operations/settings/index.js +0 -135
  174. package/operations/settings/index.js.map +0 -1
  175. package/operations/system/index.d.ts +0 -7
  176. package/operations/system/index.js +0 -99
  177. package/operations/system/index.js.map +0 -1
package/index.js CHANGED
@@ -1,150 +1,92 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- var _exportNames = {
9
- createStorageOperations: true
10
- };
11
- exports.createStorageOperations = void 0;
12
-
13
- var _filters = _interopRequireDefault(require("@webiny/db-dynamodb/plugins/filters"));
14
-
15
- var _dynamoDb = _interopRequireDefault(require("./dynamoDb"));
16
-
17
- var _types = require("./types");
18
-
19
- var _table = require("./definitions/table");
20
-
21
- var _settings = require("./definitions/settings");
22
-
23
- var _system = require("./definitions/system");
24
-
25
- var _group = require("./definitions/group");
26
-
27
- var _model = require("./definitions/model");
28
-
29
- var _entry = require("./definitions/entry");
30
-
31
- var _plugins = require("@webiny/plugins");
32
-
33
- var _system2 = require("./operations/system");
34
-
35
- var _settings2 = require("./operations/settings");
36
-
37
- var _group2 = require("./operations/group");
38
-
39
- var _model2 = require("./operations/model");
40
-
41
- var _entry2 = require("./operations/entry");
42
-
43
- var _plugins2 = require("./operations/entry/filtering/plugins");
44
-
45
- var _plugins3 = require("./plugins");
46
-
47
- Object.keys(_plugins3).forEach(function (key) {
48
- if (key === "default" || key === "__esModule") return;
49
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
- if (key in exports && exports[key] === _plugins3[key]) return;
51
- Object.defineProperty(exports, key, {
52
- enumerable: true,
53
- get: function () {
54
- return _plugins3[key];
55
- }
56
- });
57
- });
58
-
59
- const createStorageOperations = params => {
1
+ import dynamoDbValueFilters from "@webiny/db-dynamodb/plugins/filters/index.js";
2
+ import dynamoDbPlugins from "./dynamoDb/index.js";
3
+ import { ENTITIES } from "./types.js";
4
+ import { createGroupEntity } from "./definitions/group.js";
5
+ import { createModelEntity } from "./definitions/model.js";
6
+ import { createEntryEntity } from "./definitions/entry.js";
7
+ import { PluginsContainer } from "@webiny/plugins";
8
+ import { createGroupsStorageOperations } from "./operations/group/index.js";
9
+ import { createModelsStorageOperations } from "./operations/model/index.js";
10
+ import { createEntriesStorageOperations } from "./operations/entry/index.js";
11
+ import { createFilterCreatePlugins } from "./operations/entry/filtering/plugins/index.js";
12
+ import { CmsEntryFieldFilterPathPlugin, CmsEntryFieldFilterPlugin, CmsEntryFieldSortingPlugin, CmsFieldFilterValueTransformPlugin } from "./plugins/index.js";
13
+ import { ValueFilterPlugin } from "@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin.js";
14
+ import { StorageOperationsCmsModelPlugin, StorageTransformPlugin } from "@webiny/api-headless-cms";
15
+ import { CompressorPlugin } from "@webiny/api";
16
+ import { createTable } from "./definitions/table.js";
17
+ export * from "./plugins/index.js";
18
+ export const createStorageOperations = params => {
60
19
  const {
61
- attributes,
62
20
  table,
63
21
  documentClient,
64
22
  plugins: userPlugins
65
23
  } = params;
66
- const tableInstance = (0, _table.createTable)({
67
- table,
24
+ const tableInstance = createTable({
25
+ name: table,
68
26
  documentClient
69
27
  });
70
28
  const entities = {
71
- settings: (0, _settings.createSettingsEntity)({
72
- entityName: _types.ENTITIES.SETTINGS,
73
- table: tableInstance,
74
- attributes: attributes ? attributes[_types.ENTITIES.SETTINGS] : {}
29
+ groups: createGroupEntity({
30
+ entityName: ENTITIES.GROUPS,
31
+ table: tableInstance
75
32
  }),
76
- system: (0, _system.createSystemEntity)({
77
- entityName: _types.ENTITIES.SYSTEM,
78
- table: tableInstance,
79
- attributes: attributes ? attributes[_types.ENTITIES.SYSTEM] : {}
33
+ models: createModelEntity({
34
+ entityName: ENTITIES.MODELS,
35
+ table: tableInstance
80
36
  }),
81
- groups: (0, _group.createGroupEntity)({
82
- entityName: _types.ENTITIES.GROUPS,
83
- table: tableInstance,
84
- attributes: attributes ? attributes[_types.ENTITIES.GROUPS] : {}
85
- }),
86
- models: (0, _model.createModelEntity)({
87
- entityName: _types.ENTITIES.MODELS,
88
- table: tableInstance,
89
- attributes: attributes ? attributes[_types.ENTITIES.MODELS] : {}
90
- }),
91
- entries: (0, _entry.createEntryEntity)({
92
- entityName: _types.ENTITIES.ENTRIES,
93
- table: tableInstance,
94
- attributes: attributes ? attributes[_types.ENTITIES.ENTRIES] : {}
37
+ entries: createEntryEntity({
38
+ entityName: ENTITIES.ENTRIES,
39
+ table: tableInstance
95
40
  })
96
41
  };
97
- const plugins = new _plugins.PluginsContainer([
42
+ const plugins = new PluginsContainer([
98
43
  /**
99
44
  * DynamoDB filter plugins for the where conditions.
100
45
  */
101
- (0, _filters.default)(),
46
+ dynamoDbValueFilters(),
102
47
  /**
103
48
  * Field plugins for DynamoDB.
104
49
  */
105
- (0, _dynamoDb.default)(),
50
+ dynamoDbPlugins(),
106
51
  /**
107
52
  * Filter create plugins.
108
53
  */
109
- (0, _plugins2.createFilterCreatePlugins)(),
54
+ createFilterCreatePlugins(),
110
55
  /**
111
56
  * User defined custom plugins.
112
57
  */
113
58
  ...(userPlugins || [])]);
59
+ const entries = createEntriesStorageOperations({
60
+ entity: entities.entries,
61
+ plugins
62
+ });
114
63
  return {
115
64
  name: "dynamodb",
116
65
  beforeInit: async context => {
66
+ const types = ["cms-model-field-to-graphql", CmsEntryFieldFilterPathPlugin.type, CmsFieldFilterValueTransformPlugin.type, CmsEntryFieldFilterPlugin.type, CmsEntryFieldSortingPlugin.type, ValueFilterPlugin.type, StorageOperationsCmsModelPlugin.type, StorageTransformPlugin.type, CompressorPlugin.type];
117
67
  /**
118
68
  * Collect all required plugins from parent context.
119
69
  */
120
- const fieldPlugins = context.plugins.byType("cms-model-field-to-graphql");
121
- plugins.register(fieldPlugins);
70
+ for (const type of types) {
71
+ plugins.mergeByType(context.plugins, type);
72
+ }
122
73
  /**
123
74
  * Pass the plugins to the parent context.
124
75
  */
125
-
126
- context.plugins.register([(0, _dynamoDb.default)()]);
76
+ context.plugins.register([dynamoDbPlugins()]);
77
+ entries.dataLoaders.clearAll();
127
78
  },
128
79
  getEntities: () => entities,
129
80
  getTable: () => tableInstance,
130
- system: (0, _system2.createSystemStorageOperations)({
131
- entity: entities.system
132
- }),
133
- settings: (0, _settings2.createSettingsStorageOperations)({
134
- entity: entities.settings
135
- }),
136
- groups: (0, _group2.createGroupsStorageOperations)({
81
+ groups: createGroupsStorageOperations({
137
82
  entity: entities.groups,
138
83
  plugins
139
84
  }),
140
- models: (0, _model2.createModelsStorageOperations)({
85
+ models: createModelsStorageOperations({
141
86
  entity: entities.models
142
87
  }),
143
- entries: (0, _entry2.createEntriesStorageOperations)({
144
- entity: entities.entries,
145
- plugins
146
- })
88
+ entries
147
89
  };
148
90
  };
149
91
 
150
- exports.createStorageOperations = createStorageOperations;
92
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createStorageOperations","params","attributes","table","documentClient","plugins","userPlugins","tableInstance","createTable","entities","settings","createSettingsEntity","entityName","ENTITIES","SETTINGS","system","createSystemEntity","SYSTEM","groups","createGroupEntity","GROUPS","models","createModelEntity","MODELS","entries","createEntryEntity","ENTRIES","PluginsContainer","dynamoDbValueFilters","dynamoDbPlugins","createFilterCreatePlugins","name","beforeInit","context","fieldPlugins","byType","register","getEntities","getTable","createSystemStorageOperations","entity","createSettingsStorageOperations","createGroupsStorageOperations","createModelsStorageOperations","createEntriesStorageOperations"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createSystemStorageOperations } from \"~/operations/system\";\nimport { createSettingsStorageOperations } from \"~/operations/settings\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport { createModelsStorageOperations } from \"~/operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\n\nimport { createFilterCreatePlugins } from \"~/operations/entry/filtering/plugins\";\n\nexport * from \"./plugins\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const { attributes, table, documentClient, plugins: userPlugins } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Filter create plugins.\n */\n createFilterCreatePlugins(),\n /**\n * User defined custom plugins.\n */\n ...(userPlugins || [])\n ]);\n\n return {\n name: \"dynamodb\",\n beforeInit: async context => {\n /**\n * Collect all required plugins from parent context.\n */\n const fieldPlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n plugins.register(fieldPlugins);\n\n /**\n * Pass the plugins to the parent context.\n */\n context.plugins.register([dynamoDbPlugins()]);\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n plugins\n })\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["dynamoDbValueFilters","dynamoDbPlugins","ENTITIES","createGroupEntity","createModelEntity","createEntryEntity","PluginsContainer","createGroupsStorageOperations","createModelsStorageOperations","createEntriesStorageOperations","createFilterCreatePlugins","CmsEntryFieldFilterPathPlugin","CmsEntryFieldFilterPlugin","CmsEntryFieldSortingPlugin","CmsFieldFilterValueTransformPlugin","ValueFilterPlugin","StorageOperationsCmsModelPlugin","StorageTransformPlugin","CompressorPlugin","createTable","createStorageOperations","params","table","documentClient","plugins","userPlugins","tableInstance","name","entities","groups","entityName","GROUPS","models","MODELS","entries","ENTRIES","entity","beforeInit","context","types","type","mergeByType","register","dataLoaders","clearAll","getEntities","getTable"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters/index.js\";\nimport dynamoDbPlugins from \"./dynamoDb/index.js\";\nimport type { StorageOperationsFactory } from \"~/types.js\";\nimport { ENTITIES } from \"~/types.js\";\nimport { createGroupEntity } from \"~/definitions/group.js\";\nimport { createModelEntity } from \"~/definitions/model.js\";\nimport { createEntryEntity } from \"~/definitions/entry.js\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group/index.js\";\nimport { createModelsStorageOperations } from \"~/operations/model/index.js\";\nimport { createEntriesStorageOperations } from \"./operations/entry/index.js\";\n\nimport { createFilterCreatePlugins } from \"~/operations/entry/filtering/plugins/index.js\";\nimport {\n CmsEntryFieldFilterPathPlugin,\n CmsEntryFieldFilterPlugin,\n CmsEntryFieldSortingPlugin,\n CmsFieldFilterValueTransformPlugin\n} from \"~/plugins/index.js\";\nimport { ValueFilterPlugin } from \"@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin.js\";\nimport { StorageOperationsCmsModelPlugin, StorageTransformPlugin } from \"@webiny/api-headless-cms\";\nimport { CompressorPlugin } from \"@webiny/api\";\nimport { createTable } from \"~/definitions/table.js\";\n\nexport * from \"./plugins/index.js\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const { table, documentClient, plugins: userPlugins } = params;\n\n const tableInstance = createTable({\n name: table,\n documentClient\n });\n\n const entities = {\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Filter create plugins.\n */\n createFilterCreatePlugins(),\n /**\n * User defined custom plugins.\n */\n ...(userPlugins || [])\n ]);\n\n const entries = createEntriesStorageOperations({\n entity: entities.entries,\n plugins\n });\n\n return {\n name: \"dynamodb\",\n beforeInit: async context => {\n const types: string[] = [\n \"cms-model-field-to-graphql\",\n CmsEntryFieldFilterPathPlugin.type,\n CmsFieldFilterValueTransformPlugin.type,\n CmsEntryFieldFilterPlugin.type,\n CmsEntryFieldSortingPlugin.type,\n ValueFilterPlugin.type,\n StorageOperationsCmsModelPlugin.type,\n StorageTransformPlugin.type,\n CompressorPlugin.type\n ];\n /**\n * Collect all required plugins from parent context.\n */\n for (const type of types) {\n plugins.mergeByType(context.plugins, type);\n }\n /**\n * Pass the plugins to the parent context.\n */\n context.plugins.register([dynamoDbPlugins()]);\n\n entries.dataLoaders.clearAll();\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models\n }),\n entries\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import type DataLoader from "dataloader";
2
+ export interface CacheKeyParams {
3
+ name: string;
4
+ tenant: string;
5
+ }
6
+ export interface ClearAllParams {
7
+ tenant: string;
8
+ }
9
+ export declare class DataLoaderCache {
10
+ private readonly cache;
11
+ getDataLoader<I = any, R = any>(params: CacheKeyParams): DataLoader<I, R> | null;
12
+ setDataLoader(params: CacheKeyParams, dataLoader: DataLoader<any, any>): void;
13
+ clearAll(params?: ClearAllParams): void;
14
+ private createKey;
15
+ }
@@ -0,0 +1,34 @@
1
+ export class DataLoaderCache {
2
+ cache = {};
3
+ getDataLoader(params) {
4
+ const key = this.createKey(params);
5
+ return this.cache[key] || null;
6
+ }
7
+ setDataLoader(params, dataLoader) {
8
+ const key = this.createKey(params);
9
+ this.cache[key] = dataLoader;
10
+ }
11
+ clearAll(params) {
12
+ if (!params) {
13
+ for (const current in this.cache) {
14
+ this.cache[current].clearAll();
15
+ }
16
+ return;
17
+ }
18
+ const key = this.createKey({
19
+ ...params,
20
+ name: ""
21
+ });
22
+ for (const current in this.cache) {
23
+ if (current.startsWith(key) === false) {
24
+ continue;
25
+ }
26
+ this.cache[current].clearAll();
27
+ }
28
+ }
29
+ createKey(params) {
30
+ return `${params.tenant}_${params.name}`;
31
+ }
32
+ }
33
+
34
+ //# sourceMappingURL=DataLoaderCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DataLoaderCache","cache","getDataLoader","params","key","createKey","setDataLoader","dataLoader","clearAll","current","name","startsWith","tenant"],"sources":["DataLoaderCache.ts"],"sourcesContent":["import type DataLoader from \"dataloader\";\n\nexport interface CacheKeyParams {\n name: string;\n tenant: string;\n}\n\nexport interface ClearAllParams {\n tenant: string;\n}\n\nexport class DataLoaderCache {\n private readonly cache: Record<string, DataLoader<any, any>> = {};\n\n public getDataLoader<I = any, R = any>(params: CacheKeyParams): DataLoader<I, R> | null {\n const key = this.createKey(params);\n\n return this.cache[key] || null;\n }\n\n public setDataLoader(params: CacheKeyParams, dataLoader: DataLoader<any, any>): void {\n const key = this.createKey(params);\n this.cache[key] = dataLoader;\n }\n\n public clearAll(params?: ClearAllParams): void {\n if (!params) {\n for (const current in this.cache) {\n this.cache[current].clearAll();\n }\n return;\n }\n const key = this.createKey({\n ...params,\n name: \"\"\n });\n for (const current in this.cache) {\n if (current.startsWith(key) === false) {\n continue;\n }\n this.cache[current].clearAll();\n }\n }\n\n private createKey(params: CacheKeyParams): string {\n return `${params.tenant}_${params.name}`;\n }\n}\n"],"mappings":"AAWA,OAAO,MAAMA,eAAe,CAAC;EACRC,KAAK,GAAyC,CAAC,CAAC;EAE1DC,aAAaA,CAAmBC,MAAsB,EAA2B;IACpF,MAAMC,GAAG,GAAG,IAAI,CAACC,SAAS,CAACF,MAAM,CAAC;IAElC,OAAO,IAAI,CAACF,KAAK,CAACG,GAAG,CAAC,IAAI,IAAI;EAClC;EAEOE,aAAaA,CAACH,MAAsB,EAAEI,UAAgC,EAAQ;IACjF,MAAMH,GAAG,GAAG,IAAI,CAACC,SAAS,CAACF,MAAM,CAAC;IAClC,IAAI,CAACF,KAAK,CAACG,GAAG,CAAC,GAAGG,UAAU;EAChC;EAEOC,QAAQA,CAACL,MAAuB,EAAQ;IAC3C,IAAI,CAACA,MAAM,EAAE;MACT,KAAK,MAAMM,OAAO,IAAI,IAAI,CAACR,KAAK,EAAE;QAC9B,IAAI,CAACA,KAAK,CAACQ,OAAO,CAAC,CAACD,QAAQ,CAAC,CAAC;MAClC;MACA;IACJ;IACA,MAAMJ,GAAG,GAAG,IAAI,CAACC,SAAS,CAAC;MACvB,GAAGF,MAAM;MACTO,IAAI,EAAE;IACV,CAAC,CAAC;IACF,KAAK,MAAMD,OAAO,IAAI,IAAI,CAACR,KAAK,EAAE;MAC9B,IAAIQ,OAAO,CAACE,UAAU,CAACP,GAAG,CAAC,KAAK,KAAK,EAAE;QACnC;MACJ;MACA,IAAI,CAACH,KAAK,CAACQ,OAAO,CAAC,CAACD,QAAQ,CAAC,CAAC;IAClC;EACJ;EAEQH,SAASA,CAACF,MAAsB,EAAU;IAC9C,OAAO,GAAGA,MAAM,CAACS,MAAM,IAAIT,MAAM,CAACO,IAAI,EAAE;EAC5C;AACJ","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const CMS_ENTRY_BATCH_SCHEDULE_WAIT: number;
@@ -0,0 +1,4 @@
1
+ const batchScheduleWaitEnv = Number(process.env.WEBINY_API_CMS_ENTRY_BATCH_SCHEDULE_WAIT || "0");
2
+ export const CMS_ENTRY_BATCH_SCHEDULE_WAIT = isNaN(batchScheduleWaitEnv) ? 0 : batchScheduleWaitEnv;
3
+
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["batchScheduleWaitEnv","Number","process","env","WEBINY_API_CMS_ENTRY_BATCH_SCHEDULE_WAIT","CMS_ENTRY_BATCH_SCHEDULE_WAIT","isNaN"],"sources":["constants.ts"],"sourcesContent":["const batchScheduleWaitEnv = Number(process.env.WEBINY_API_CMS_ENTRY_BATCH_SCHEDULE_WAIT || \"0\");\nexport const CMS_ENTRY_BATCH_SCHEDULE_WAIT = isNaN(batchScheduleWaitEnv) ? 0 : batchScheduleWaitEnv;\n"],"mappings":"AAAA,MAAMA,oBAAoB,GAAGC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,wCAAwC,IAAI,GAAG,CAAC;AAChG,OAAO,MAAMC,6BAA6B,GAAGC,KAAK,CAACN,oBAAoB,CAAC,GAAG,CAAC,GAAGA,oBAAoB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This is to be used when user wants to wait for a number of milliseconds before the batch is executed.
3
+ * Intended to be used internally or for a specific user case.
4
+ * Not to be documented and exposed to publish as it can slow the data loading a lot.
5
+ *
6
+ * https://github.com/graphql/dataloader#batch-scheduling
7
+ */
8
+ export declare const createBatchScheduleFn: () => ((callback: () => void) => void) | undefined;
@@ -0,0 +1,19 @@
1
+ import { CMS_ENTRY_BATCH_SCHEDULE_WAIT } from "./constants.js";
2
+
3
+ /**
4
+ * This is to be used when user wants to wait for a number of milliseconds before the batch is executed.
5
+ * Intended to be used internally or for a specific user case.
6
+ * Not to be documented and exposed to publish as it can slow the data loading a lot.
7
+ *
8
+ * https://github.com/graphql/dataloader#batch-scheduling
9
+ */
10
+ export const createBatchScheduleFn = () => {
11
+ if (CMS_ENTRY_BATCH_SCHEDULE_WAIT <= 0) {
12
+ return undefined;
13
+ }
14
+ return callback => {
15
+ setTimeout(callback, CMS_ENTRY_BATCH_SCHEDULE_WAIT);
16
+ };
17
+ };
18
+
19
+ //# sourceMappingURL=createBatchScheduleFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CMS_ENTRY_BATCH_SCHEDULE_WAIT","createBatchScheduleFn","undefined","callback","setTimeout"],"sources":["createBatchScheduleFn.ts"],"sourcesContent":["import { CMS_ENTRY_BATCH_SCHEDULE_WAIT } from \"./constants.js\";\n\n/**\n * This is to be used when user wants to wait for a number of milliseconds before the batch is executed.\n * Intended to be used internally or for a specific user case.\n * Not to be documented and exposed to publish as it can slow the data loading a lot.\n *\n * https://github.com/graphql/dataloader#batch-scheduling\n */\nexport const createBatchScheduleFn = () => {\n if (CMS_ENTRY_BATCH_SCHEDULE_WAIT <= 0) {\n return undefined;\n }\n return (callback: () => void) => {\n setTimeout(callback, CMS_ENTRY_BATCH_SCHEDULE_WAIT);\n };\n};\n"],"mappings":"AAAA,SAASA,6BAA6B;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,IAAID,6BAA6B,IAAI,CAAC,EAAE;IACpC,OAAOE,SAAS;EACpB;EACA,OAAQC,QAAoB,IAAK;IAC7BC,UAAU,CAACD,QAAQ,EAAEH,6BAA6B,CAAC;EACvD,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import DataLoader from "dataloader";
2
+ import type { CmsStorageEntry } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { IDataLoaderParams } from "./types.js";
4
+ export declare const createGetAllEntryRevisions: (params: IDataLoaderParams) => DataLoader<string, CmsStorageEntry<import("@webiny/api-headless-cms/types/types.js").CmsEntryValues>[], string>;
@@ -0,0 +1,32 @@
1
+ import DataLoader from "dataloader";
2
+ import { createPartitionKey } from "../keys.js";
3
+ import { createBatchScheduleFn } from "./createBatchScheduleFn.js";
4
+ export const createGetAllEntryRevisions = params => {
5
+ const {
6
+ entity,
7
+ tenant
8
+ } = params;
9
+ return new DataLoader(async ids => {
10
+ const results = {};
11
+ for (const id of ids) {
12
+ results[id] = (await entity.queryAllClean({
13
+ partitionKey: createPartitionKey({
14
+ tenant,
15
+ id
16
+ }),
17
+ options: {
18
+ beginsWith: "REV#"
19
+ }
20
+ })).map(result => {
21
+ return result.data;
22
+ });
23
+ }
24
+ return ids.map(id => {
25
+ return results[id] || [];
26
+ });
27
+ }, {
28
+ batchScheduleFn: createBatchScheduleFn()
29
+ });
30
+ };
31
+
32
+ //# sourceMappingURL=getAllEntryRevisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DataLoader","createPartitionKey","createBatchScheduleFn","createGetAllEntryRevisions","params","entity","tenant","ids","results","id","queryAllClean","partitionKey","options","beginsWith","map","result","data","batchScheduleFn"],"sources":["getAllEntryRevisions.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport type { CmsStorageEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createPartitionKey } from \"~/operations/entry/keys.js\";\nimport type { IDataLoaderParams } from \"./types.js\";\nimport { createBatchScheduleFn } from \"./createBatchScheduleFn.js\";\n\nexport const createGetAllEntryRevisions = (params: IDataLoaderParams) => {\n const { entity, tenant } = params;\n return new DataLoader<string, CmsStorageEntry[]>(\n async ids => {\n const results: Record<string, CmsStorageEntry[]> = {};\n\n for (const id of ids) {\n results[id] = (\n await entity.queryAllClean({\n partitionKey: createPartitionKey({\n tenant,\n id\n }),\n options: {\n beginsWith: \"REV#\"\n }\n })\n ).map(result => {\n return result.data;\n });\n }\n\n return ids.map(id => {\n return results[id] || [];\n });\n },\n {\n batchScheduleFn: createBatchScheduleFn()\n }\n );\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AAEnC,SAASC,kBAAkB;AAE3B,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,0BAA0B,GAAIC,MAAyB,IAAK;EACrE,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGF,MAAM;EACjC,OAAO,IAAIJ,UAAU,CACjB,MAAMO,GAAG,IAAI;IACT,MAAMC,OAA0C,GAAG,CAAC,CAAC;IAErD,KAAK,MAAMC,EAAE,IAAIF,GAAG,EAAE;MAClBC,OAAO,CAACC,EAAE,CAAC,GAAG,CACV,MAAMJ,MAAM,CAACK,aAAa,CAAC;QACvBC,YAAY,EAAEV,kBAAkB,CAAC;UAC7BK,MAAM;UACNG;QACJ,CAAC,CAAC;QACFG,OAAO,EAAE;UACLC,UAAU,EAAE;QAChB;MACJ,CAAC,CAAC,EACJC,GAAG,CAACC,MAAM,IAAI;QACZ,OAAOA,MAAM,CAACC,IAAI;MACtB,CAAC,CAAC;IACN;IAEA,OAAOT,GAAG,CAACO,GAAG,CAACL,EAAE,IAAI;MACjB,OAAOD,OAAO,CAACC,EAAE,CAAC,IAAI,EAAE;IAC5B,CAAC,CAAC;EACN,CAAC,EACD;IACIQ,eAAe,EAAEf,qBAAqB,CAAC;EAC3C,CACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import DataLoader from "dataloader";
2
+ import type { CmsStorageEntry } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { IDataLoaderParams } from "./types.js";
4
+ export declare const createGetLatestRevisionByEntryId: (params: IDataLoaderParams) => DataLoader<string, CmsStorageEntry<import("@webiny/api-headless-cms/types/types.js").CmsEntryValues>[], string>;
@@ -0,0 +1,46 @@
1
+ import DataLoader from "dataloader";
2
+ import { cleanupItems } from "@webiny/db-dynamodb/utils/cleanup.js";
3
+ import { createBatchScheduleFn } from "./createBatchScheduleFn.js";
4
+ import { createLatestSortKey, createPartitionKey } from "../keys.js";
5
+ import { parseIdentifier } from "@webiny/utils";
6
+ export const createGetLatestRevisionByEntryId = params => {
7
+ const {
8
+ entity,
9
+ tenant
10
+ } = params;
11
+ const latestKey = createLatestSortKey();
12
+ return new DataLoader(async ids => {
13
+ const reader = entity.createEntityReader();
14
+ const keys = new Set();
15
+ for (const id of ids) {
16
+ const partitionKey = createPartitionKey({
17
+ tenant,
18
+ id
19
+ });
20
+ if (keys.has(partitionKey)) {
21
+ continue;
22
+ }
23
+ keys.add(partitionKey);
24
+ reader.get({
25
+ PK: partitionKey,
26
+ SK: latestKey
27
+ });
28
+ }
29
+ const records = await reader.execute();
30
+ const items = cleanupItems(entity.entity, records).map(item => {
31
+ return item.data;
32
+ });
33
+ return ids.map(id => {
34
+ const {
35
+ id: entryId
36
+ } = parseIdentifier(id);
37
+ return items.filter(item => {
38
+ return entryId === item.entryId;
39
+ });
40
+ });
41
+ }, {
42
+ batchScheduleFn: createBatchScheduleFn()
43
+ });
44
+ };
45
+
46
+ //# sourceMappingURL=getLatestRevisionByEntryId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DataLoader","cleanupItems","createBatchScheduleFn","createLatestSortKey","createPartitionKey","parseIdentifier","createGetLatestRevisionByEntryId","params","entity","tenant","latestKey","ids","reader","createEntityReader","keys","Set","id","partitionKey","has","add","get","PK","SK","records","execute","items","map","item","data","entryId","filter","batchScheduleFn"],"sources":["getLatestRevisionByEntryId.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup.js\";\nimport type { CmsStorageEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createBatchScheduleFn } from \"./createBatchScheduleFn.js\";\nimport { createLatestSortKey, createPartitionKey } from \"~/operations/entry/keys.js\";\nimport type { IDataLoaderParams } from \"./types.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nexport const createGetLatestRevisionByEntryId = (params: IDataLoaderParams) => {\n const { entity, tenant } = params;\n\n const latestKey = createLatestSortKey();\n\n return new DataLoader<string, CmsStorageEntry[]>(\n async ids => {\n const reader = entity.createEntityReader();\n\n const keys = new Set<string>();\n\n for (const id of ids) {\n const partitionKey = createPartitionKey({\n tenant,\n id\n });\n if (keys.has(partitionKey)) {\n continue;\n }\n keys.add(partitionKey);\n\n reader.get({\n PK: partitionKey,\n SK: latestKey\n });\n }\n\n const records = await reader.execute();\n const items = cleanupItems(entity.entity, records).map(item => {\n return item.data;\n });\n\n return ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return items.filter(item => {\n return entryId === item.entryId;\n });\n });\n },\n {\n batchScheduleFn: createBatchScheduleFn()\n }\n );\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,sCAAsC;AAEnE,SAASC,qBAAqB;AAC9B,SAASC,mBAAmB,EAAEC,kBAAkB;AAEhD,SAASC,eAAe,QAAQ,eAAe;AAE/C,OAAO,MAAMC,gCAAgC,GAAIC,MAAyB,IAAK;EAC3E,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAEjC,MAAMG,SAAS,GAAGP,mBAAmB,CAAC,CAAC;EAEvC,OAAO,IAAIH,UAAU,CACjB,MAAMW,GAAG,IAAI;IACT,MAAMC,MAAM,GAAGJ,MAAM,CAACK,kBAAkB,CAAC,CAAC;IAE1C,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;IAE9B,KAAK,MAAMC,EAAE,IAAIL,GAAG,EAAE;MAClB,MAAMM,YAAY,GAAGb,kBAAkB,CAAC;QACpCK,MAAM;QACNO;MACJ,CAAC,CAAC;MACF,IAAIF,IAAI,CAACI,GAAG,CAACD,YAAY,CAAC,EAAE;QACxB;MACJ;MACAH,IAAI,CAACK,GAAG,CAACF,YAAY,CAAC;MAEtBL,MAAM,CAACQ,GAAG,CAAC;QACPC,EAAE,EAAEJ,YAAY;QAChBK,EAAE,EAAEZ;MACR,CAAC,CAAC;IACN;IAEA,MAAMa,OAAO,GAAG,MAAMX,MAAM,CAACY,OAAO,CAAC,CAAC;IACtC,MAAMC,KAAK,GAAGxB,YAAY,CAACO,MAAM,CAACA,MAAM,EAAEe,OAAO,CAAC,CAACG,GAAG,CAACC,IAAI,IAAI;MAC3D,OAAOA,IAAI,CAACC,IAAI;IACpB,CAAC,CAAC;IAEF,OAAOjB,GAAG,CAACe,GAAG,CAACV,EAAE,IAAI;MACjB,MAAM;QAAEA,EAAE,EAAEa;MAAQ,CAAC,GAAGxB,eAAe,CAACW,EAAE,CAAC;MAC3C,OAAOS,KAAK,CAACK,MAAM,CAACH,IAAI,IAAI;QACxB,OAAOE,OAAO,KAAKF,IAAI,CAACE,OAAO;MACnC,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC,EACD;IACIE,eAAe,EAAE7B,qBAAqB,CAAC;EAC3C,CACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import DataLoader from "dataloader";
2
+ import type { CmsStorageEntry } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { IDataLoaderParams } from "./types.js";
4
+ export declare const createGetPublishedRevisionByEntryId: (params: IDataLoaderParams) => DataLoader<string, CmsStorageEntry<import("@webiny/api-headless-cms/types/types.js").CmsEntryValues>[], string>;
@@ -0,0 +1,46 @@
1
+ import DataLoader from "dataloader";
2
+ import { cleanupItems } from "@webiny/db-dynamodb/utils/cleanup.js";
3
+ import { createPartitionKey, createPublishedSortKey } from "../keys.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { createBatchScheduleFn } from "./createBatchScheduleFn.js";
6
+ export const createGetPublishedRevisionByEntryId = params => {
7
+ const {
8
+ entity,
9
+ tenant
10
+ } = params;
11
+ const publishedKey = createPublishedSortKey();
12
+ return new DataLoader(async ids => {
13
+ const reader = entity.createEntityReader();
14
+ const keys = new Set();
15
+ for (const id of ids) {
16
+ const partitionKey = createPartitionKey({
17
+ tenant,
18
+ id
19
+ });
20
+ if (keys.has(partitionKey)) {
21
+ continue;
22
+ }
23
+ keys.add(partitionKey);
24
+ reader.get({
25
+ PK: partitionKey,
26
+ SK: publishedKey
27
+ });
28
+ }
29
+ const records = await reader.execute();
30
+ const items = cleanupItems(entity.entity, records).map(item => {
31
+ return item.data;
32
+ });
33
+ return ids.map(id => {
34
+ const {
35
+ id: entryId
36
+ } = parseIdentifier(id);
37
+ return items.filter(item => {
38
+ return entryId === item.entryId;
39
+ });
40
+ });
41
+ }, {
42
+ batchScheduleFn: createBatchScheduleFn()
43
+ });
44
+ };
45
+
46
+ //# sourceMappingURL=getPublishedRevisionByEntryId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DataLoader","cleanupItems","createPartitionKey","createPublishedSortKey","parseIdentifier","createBatchScheduleFn","createGetPublishedRevisionByEntryId","params","entity","tenant","publishedKey","ids","reader","createEntityReader","keys","Set","id","partitionKey","has","add","get","PK","SK","records","execute","items","map","item","data","entryId","filter","batchScheduleFn"],"sources":["getPublishedRevisionByEntryId.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup.js\";\nimport type { CmsStorageEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createPartitionKey, createPublishedSortKey } from \"~/operations/entry/keys.js\";\nimport type { IDataLoaderParams } from \"./types.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { createBatchScheduleFn } from \"./createBatchScheduleFn.js\";\n\nexport const createGetPublishedRevisionByEntryId = (params: IDataLoaderParams) => {\n const { entity, tenant } = params;\n\n const publishedKey = createPublishedSortKey();\n return new DataLoader<string, CmsStorageEntry[]>(\n async ids => {\n const reader = entity.createEntityReader();\n\n const keys = new Set<string>();\n\n for (const id of ids) {\n const partitionKey = createPartitionKey({\n tenant,\n id\n });\n if (keys.has(partitionKey)) {\n continue;\n }\n keys.add(partitionKey);\n reader.get({\n PK: partitionKey,\n SK: publishedKey\n });\n }\n\n const records = await reader.execute();\n const items = cleanupItems(entity.entity, records).map(item => {\n return item.data;\n });\n\n return ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return items.filter(item => {\n return entryId === item.entryId;\n });\n });\n },\n {\n batchScheduleFn: createBatchScheduleFn()\n }\n );\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,sCAAsC;AAEnE,SAASC,kBAAkB,EAAEC,sBAAsB;AAEnD,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,mCAAmC,GAAIC,MAAyB,IAAK;EAC9E,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAEjC,MAAMG,YAAY,GAAGP,sBAAsB,CAAC,CAAC;EAC7C,OAAO,IAAIH,UAAU,CACjB,MAAMW,GAAG,IAAI;IACT,MAAMC,MAAM,GAAGJ,MAAM,CAACK,kBAAkB,CAAC,CAAC;IAE1C,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;IAE9B,KAAK,MAAMC,EAAE,IAAIL,GAAG,EAAE;MAClB,MAAMM,YAAY,GAAGf,kBAAkB,CAAC;QACpCO,MAAM;QACNO;MACJ,CAAC,CAAC;MACF,IAAIF,IAAI,CAACI,GAAG,CAACD,YAAY,CAAC,EAAE;QACxB;MACJ;MACAH,IAAI,CAACK,GAAG,CAACF,YAAY,CAAC;MACtBL,MAAM,CAACQ,GAAG,CAAC;QACPC,EAAE,EAAEJ,YAAY;QAChBK,EAAE,EAAEZ;MACR,CAAC,CAAC;IACN;IAEA,MAAMa,OAAO,GAAG,MAAMX,MAAM,CAACY,OAAO,CAAC,CAAC;IACtC,MAAMC,KAAK,GAAGxB,YAAY,CAACO,MAAM,CAACA,MAAM,EAAEe,OAAO,CAAC,CAACG,GAAG,CAACC,IAAI,IAAI;MAC3D,OAAOA,IAAI,CAACC,IAAI;IACpB,CAAC,CAAC;IAEF,OAAOjB,GAAG,CAACe,GAAG,CAACV,EAAE,IAAI;MACjB,MAAM;QAAEA,EAAE,EAAEa;MAAQ,CAAC,GAAGzB,eAAe,CAACY,EAAE,CAAC;MAC3C,OAAOS,KAAK,CAACK,MAAM,CAACH,IAAI,IAAI;QACxB,OAAOE,OAAO,KAAKF,IAAI,CAACE,OAAO;MACnC,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC,EACD;IACIE,eAAe,EAAE1B,qBAAqB,CAAC;EAC3C,CACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import DataLoader from "dataloader";
2
+ import type { CmsStorageEntry } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { IDataLoaderParams } from "./types.js";
4
+ export declare const createGetRevisionById: (params: IDataLoaderParams) => DataLoader<string, CmsStorageEntry<import("@webiny/api-headless-cms/types/types.js").CmsEntryValues>[], string>;
@@ -0,0 +1,52 @@
1
+ import DataLoader from "dataloader";
2
+ import { cleanupItems } from "@webiny/db-dynamodb/utils/cleanup.js";
3
+ import { createPartitionKey, createRevisionSortKey } from "../keys.js";
4
+ import { parseIdentifier } from "@webiny/utils";
5
+ import { createBatchScheduleFn } from "./createBatchScheduleFn.js";
6
+ export const createGetRevisionById = params => {
7
+ const {
8
+ entity,
9
+ tenant
10
+ } = params;
11
+ return new DataLoader(async ids => {
12
+ const reader = entity.createEntityReader();
13
+ const keys = new Set();
14
+ for (const id of ids) {
15
+ const partitionKey = createPartitionKey({
16
+ tenant,
17
+ id
18
+ });
19
+ const {
20
+ version
21
+ } = parseIdentifier(id);
22
+ if (version === null) {
23
+ continue;
24
+ }
25
+ const sortKey = createRevisionSortKey({
26
+ version
27
+ });
28
+ const key = `${partitionKey}__${sortKey}`;
29
+ if (keys.has(key)) {
30
+ continue;
31
+ }
32
+ keys.add(key);
33
+ reader.get({
34
+ PK: partitionKey,
35
+ SK: sortKey
36
+ });
37
+ }
38
+ const records = await reader.execute();
39
+ const items = cleanupItems(entity.entity, records).map(item => {
40
+ return item.data;
41
+ });
42
+ return ids.map(id => {
43
+ return items.filter(item => {
44
+ return id === item.id;
45
+ });
46
+ });
47
+ }, {
48
+ batchScheduleFn: createBatchScheduleFn()
49
+ });
50
+ };
51
+
52
+ //# sourceMappingURL=getRevisionById.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DataLoader","cleanupItems","createPartitionKey","createRevisionSortKey","parseIdentifier","createBatchScheduleFn","createGetRevisionById","params","entity","tenant","ids","reader","createEntityReader","keys","Set","id","partitionKey","version","sortKey","key","has","add","get","PK","SK","records","execute","items","map","item","data","filter","batchScheduleFn"],"sources":["getRevisionById.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport type { CmsStorageEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup.js\";\nimport { createPartitionKey, createRevisionSortKey } from \"~/operations/entry/keys.js\";\nimport type { IDataLoaderParams } from \"./types.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { createBatchScheduleFn } from \"./createBatchScheduleFn.js\";\n\nexport const createGetRevisionById = (params: IDataLoaderParams) => {\n const { entity, tenant } = params;\n\n return new DataLoader<string, CmsStorageEntry[]>(\n async ids => {\n const reader = entity.createEntityReader();\n\n const keys = new Set<string>();\n\n for (const id of ids) {\n const partitionKey = createPartitionKey({\n tenant,\n id\n });\n const { version } = parseIdentifier(id);\n if (version === null) {\n continue;\n }\n const sortKey = createRevisionSortKey({\n version\n });\n const key = `${partitionKey}__${sortKey}`;\n if (keys.has(key)) {\n continue;\n }\n keys.add(key);\n\n reader.get({\n PK: partitionKey,\n SK: sortKey\n });\n }\n\n const records = await reader.execute();\n const items = cleanupItems(entity.entity, records).map(item => {\n return item.data;\n });\n\n return ids.map(id => {\n return items.filter(item => {\n return id === item.id;\n });\n });\n },\n {\n batchScheduleFn: createBatchScheduleFn()\n }\n );\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AAEnC,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,kBAAkB,EAAEC,qBAAqB;AAElD,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,qBAAqB,GAAIC,MAAyB,IAAK;EAChE,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAEjC,OAAO,IAAIP,UAAU,CACjB,MAAMU,GAAG,IAAI;IACT,MAAMC,MAAM,GAAGH,MAAM,CAACI,kBAAkB,CAAC,CAAC;IAE1C,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;IAE9B,KAAK,MAAMC,EAAE,IAAIL,GAAG,EAAE;MAClB,MAAMM,YAAY,GAAGd,kBAAkB,CAAC;QACpCO,MAAM;QACNM;MACJ,CAAC,CAAC;MACF,MAAM;QAAEE;MAAQ,CAAC,GAAGb,eAAe,CAACW,EAAE,CAAC;MACvC,IAAIE,OAAO,KAAK,IAAI,EAAE;QAClB;MACJ;MACA,MAAMC,OAAO,GAAGf,qBAAqB,CAAC;QAClCc;MACJ,CAAC,CAAC;MACF,MAAME,GAAG,GAAG,GAAGH,YAAY,KAAKE,OAAO,EAAE;MACzC,IAAIL,IAAI,CAACO,GAAG,CAACD,GAAG,CAAC,EAAE;QACf;MACJ;MACAN,IAAI,CAACQ,GAAG,CAACF,GAAG,CAAC;MAEbR,MAAM,CAACW,GAAG,CAAC;QACPC,EAAE,EAAEP,YAAY;QAChBQ,EAAE,EAAEN;MACR,CAAC,CAAC;IACN;IAEA,MAAMO,OAAO,GAAG,MAAMd,MAAM,CAACe,OAAO,CAAC,CAAC;IACtC,MAAMC,KAAK,GAAG1B,YAAY,CAACO,MAAM,CAACA,MAAM,EAAEiB,OAAO,CAAC,CAACG,GAAG,CAACC,IAAI,IAAI;MAC3D,OAAOA,IAAI,CAACC,IAAI;IACpB,CAAC,CAAC;IAEF,OAAOpB,GAAG,CAACkB,GAAG,CAACb,EAAE,IAAI;MACjB,OAAOY,KAAK,CAACI,MAAM,CAACF,IAAI,IAAI;QACxB,OAAOd,EAAE,KAAKc,IAAI,CAACd,EAAE;MACzB,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC,EACD;IACIiB,eAAe,EAAE3B,qBAAqB,CAAC;EAC3C,CACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type DataLoader from "dataloader";
2
+ import type { IDataLoaderParams } from "./types.js";
3
+ export * from "./DataLoaderCache.js";
4
+ interface Callable {
5
+ (params: IDataLoaderParams): DataLoader<any, any>;
6
+ }
7
+ export type DataLoaders = "getAllEntryRevisions" | "getRevisionById" | "getPublishedRevisionByEntryId" | "getLatestRevisionByEntryId";
8
+ export declare const getDataLoaderFactory: (name: string) => Callable;
@@ -0,0 +1,19 @@
1
+ import { createGetAllEntryRevisions } from "./getAllEntryRevisions.js";
2
+ import { createGetLatestRevisionByEntryId } from "./getLatestRevisionByEntryId.js";
3
+ import { createGetPublishedRevisionByEntryId } from "./getPublishedRevisionByEntryId.js";
4
+ import { createGetRevisionById } from "./getRevisionById.js";
5
+ export * from "./DataLoaderCache.js";
6
+ const dataLoaders = {
7
+ getAllEntryRevisions: createGetAllEntryRevisions,
8
+ getLatestRevisionByEntryId: createGetLatestRevisionByEntryId,
9
+ getPublishedRevisionByEntryId: createGetPublishedRevisionByEntryId,
10
+ getRevisionById: createGetRevisionById
11
+ };
12
+ export const getDataLoaderFactory = name => {
13
+ if (!dataLoaders[name]) {
14
+ throw new Error(`Missing data loader "${name}".`);
15
+ }
16
+ return dataLoaders[name];
17
+ };
18
+
19
+ //# sourceMappingURL=index.js.map