@webiny/api-prerendering-service-so-ddb 0.0.0-unstable.fcdad0bc61 → 0.0.0-unstable.fdd9228b5d

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 (43) hide show
  1. package/definitions/queueJob.d.ts +4 -3
  2. package/definitions/queueJob.js +8 -12
  3. package/definitions/queueJob.js.map +1 -1
  4. package/definitions/render.d.ts +4 -3
  5. package/definitions/render.js +8 -12
  6. package/definitions/render.js.map +1 -1
  7. package/definitions/renderLegacy.d.ts +4 -3
  8. package/definitions/renderLegacy.js +8 -12
  9. package/definitions/renderLegacy.js.map +1 -1
  10. package/definitions/settings.d.ts +4 -3
  11. package/definitions/settings.js +8 -12
  12. package/definitions/settings.js.map +1 -1
  13. package/definitions/table.d.ts +5 -5
  14. package/definitions/table.js +7 -6
  15. package/definitions/table.js.map +1 -1
  16. package/definitions/tagPathLink.d.ts +51 -4
  17. package/definitions/tagPathLink.js +8 -12
  18. package/definitions/tagPathLink.js.map +1 -1
  19. package/definitions/tagPathLinkLegacy.d.ts +57 -4
  20. package/definitions/tagPathLinkLegacy.js +8 -12
  21. package/definitions/tagPathLinkLegacy.js.map +1 -1
  22. package/definitions/tenantEntity.d.ts +8 -0
  23. package/definitions/tenantEntity.js +39 -0
  24. package/definitions/tenantEntity.js.map +1 -0
  25. package/index.d.ts +1 -1
  26. package/index.js +24 -30
  27. package/index.js.map +1 -1
  28. package/operations/queueJob.d.ts +2 -2
  29. package/operations/queueJob.js +21 -35
  30. package/operations/queueJob.js.map +1 -1
  31. package/operations/render.d.ts +4 -5
  32. package/operations/render.js +67 -112
  33. package/operations/render.js.map +1 -1
  34. package/operations/settings.d.ts +2 -2
  35. package/operations/settings.js +12 -19
  36. package/operations/settings.js.map +1 -1
  37. package/operations/tenant.d.ts +6 -0
  38. package/operations/tenant.js +29 -0
  39. package/operations/tenant.js.map +1 -0
  40. package/package.json +16 -31
  41. package/types.d.ts +12 -12
  42. package/types.js +6 -5
  43. package/types.js.map +1 -1
@@ -1,32 +1,17 @@
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.createRenderStorageOperations = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
8
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
- var _get = require("@webiny/db-dynamodb/utils/get");
15
-
16
- var _query = require("@webiny/db-dynamodb/utils/query");
17
-
18
- var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
19
-
20
- var _batchWrite = require("@webiny/db-dynamodb/utils/batchWrite");
21
-
22
- var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
23
-
9
+ var _dbDynamodb = require("@webiny/db-dynamodb");
24
10
  const createRenderStorageOperations = params => {
25
11
  const {
26
12
  entity,
27
13
  tagPathLinkEntity
28
14
  } = params;
29
-
30
15
  const createRenderPartitionKey = (tenant, path) => {
31
16
  /**
32
17
  * For backwards compatibility remove the T# if it exists.
@@ -34,22 +19,17 @@ const createRenderStorageOperations = params => {
34
19
  if (tenant.startsWith("T#")) {
35
20
  tenant = tenant.replace(/^T#/, "");
36
21
  }
37
-
38
22
  return `T#${tenant}#PS#RENDER#${path}`;
39
23
  };
40
-
41
24
  const createRenderSortKey = () => {
42
25
  return "A";
43
26
  };
44
-
45
27
  const createRenderGSI1PartitionKey = tenant => {
46
28
  return `T#${tenant}#PS#RENDER`;
47
29
  };
48
-
49
30
  const createRenderType = () => {
50
31
  return "ps.render";
51
32
  };
52
-
53
33
  const createTagPathLinkPartitionKey = params => {
54
34
  const {
55
35
  tag,
@@ -58,40 +38,31 @@ const createRenderStorageOperations = params => {
58
38
  let {
59
39
  tenant
60
40
  } = params;
61
-
62
41
  if (tenant.startsWith("T#")) {
63
42
  tenant = tenant.replace(/^T#/, "");
64
43
  }
65
-
66
44
  return `T#${tenant}#PS#TAG#${tag.key}#${tag.value}#${path}`;
67
45
  };
68
-
69
46
  const createTagPathLinkSortKey = params => {
70
47
  const {
71
48
  tag,
72
49
  path
73
50
  } = params;
74
51
  const values = [tag.value];
75
-
76
52
  if (path) {
77
53
  values.push(path);
78
54
  }
79
-
80
55
  return values.join("#");
81
56
  };
82
-
83
57
  const createTagPathLinkGSI1PartitionKey = params => {
84
58
  let {
85
59
  tenant
86
60
  } = params;
87
-
88
61
  if (tenant.startsWith("T#")) {
89
62
  tenant = tenant.replace(/^T#/, "");
90
63
  }
91
-
92
64
  return `T#${tenant}#PS#TAG`;
93
65
  };
94
-
95
66
  const createTagPathLinkGSI1SortKey = params => {
96
67
  const {
97
68
  tag,
@@ -99,11 +70,9 @@ const createRenderStorageOperations = params => {
99
70
  } = params;
100
71
  return `${tag.key}#${tag.value}#${path}`;
101
72
  };
102
-
103
73
  const createTagPathLinkType = () => {
104
74
  return "ps.tagPathLink";
105
75
  };
106
-
107
76
  const getRender = async params => {
108
77
  const {
109
78
  where
@@ -112,13 +81,12 @@ const createRenderStorageOperations = params => {
112
81
  PK: createRenderPartitionKey(where.tenant, where.path),
113
82
  SK: createRenderSortKey()
114
83
  };
115
-
116
84
  try {
117
- const result = await (0, _get.get)({
85
+ const result = await (0, _dbDynamodb.get)({
118
86
  entity,
119
87
  keys
120
88
  });
121
- const dbItem = (0, _cleanup.cleanupItem)(entity, result);
89
+ const dbItem = (0, _dbDynamodb.cleanupItem)(entity, result);
122
90
  return dbItem ? dbItem.data : null;
123
91
  } catch (ex) {
124
92
  throw new _error.default(ex.message || "Could not get render record by given key.", ex.code || "GET_RENDER_ERROR", {
@@ -127,7 +95,6 @@ const createRenderStorageOperations = params => {
127
95
  });
128
96
  }
129
97
  };
130
-
131
98
  const createRender = async params => {
132
99
  const {
133
100
  render
@@ -136,14 +103,17 @@ const createRenderStorageOperations = params => {
136
103
  PK: createRenderPartitionKey(render.tenant, render.path),
137
104
  SK: createRenderSortKey()
138
105
  };
139
-
140
106
  try {
141
- await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, keys), {}, {
142
- data: render,
143
- TYPE: createRenderType(),
144
- GSI1_PK: createRenderGSI1PartitionKey(render.tenant),
145
- GSI1_SK: render.path
146
- }));
107
+ await (0, _dbDynamodb.put)({
108
+ entity,
109
+ item: {
110
+ ...keys,
111
+ data: render,
112
+ TYPE: createRenderType(),
113
+ GSI1_PK: createRenderGSI1PartitionKey(render.tenant),
114
+ GSI1_SK: render.path
115
+ }
116
+ });
147
117
  return render;
148
118
  } catch (ex) {
149
119
  throw new _error.default(ex.message || "Could not create render record.", ex.code || "CREATE_RENDER_ERROR", {
@@ -152,7 +122,6 @@ const createRenderStorageOperations = params => {
152
122
  });
153
123
  }
154
124
  };
155
-
156
125
  const deleteRender = async params => {
157
126
  const {
158
127
  render
@@ -161,9 +130,11 @@ const createRenderStorageOperations = params => {
161
130
  PK: createRenderPartitionKey(render.tenant, render.path),
162
131
  SK: createRenderSortKey()
163
132
  };
164
-
165
133
  try {
166
- await entity.delete(keys);
134
+ await (0, _dbDynamodb.deleteItem)({
135
+ entity,
136
+ keys
137
+ });
167
138
  } catch (ex) {
168
139
  throw new _error.default(ex.message || "Could not delete render record.", ex.code || "DELETE_RENDER_ERROR", {
169
140
  keys,
@@ -171,7 +142,6 @@ const createRenderStorageOperations = params => {
171
142
  });
172
143
  }
173
144
  };
174
-
175
145
  const listRendersByTag = async params => {
176
146
  const {
177
147
  where
@@ -183,11 +153,9 @@ const createRenderStorageOperations = params => {
183
153
  /**
184
154
  * Possibly there is no tag.key so no need to go further
185
155
  */
186
-
187
156
  if (!tag || !tag.key) {
188
157
  return [];
189
158
  }
190
-
191
159
  const links = await listTagPathLinks({
192
160
  where: {
193
161
  tenant,
@@ -200,20 +168,18 @@ const createRenderStorageOperations = params => {
200
168
  SK: createRenderSortKey()
201
169
  });
202
170
  });
203
-
204
171
  try {
205
- const results = await (0, _batchRead.batchReadAll)({
172
+ const results = await (0, _dbDynamodb.batchReadAll)({
206
173
  table: entity.table,
207
174
  items
208
175
  });
209
- return (0, _cleanup.cleanupItems)(entity, results).map(item => item.data);
176
+ return (0, _dbDynamodb.cleanupItems)(entity, results).map(item => item.data);
210
177
  } catch (ex) {
211
178
  throw new _error.default(ex.message || "Could not list render records after links.", ex.code || "LIST_LINKS_RENDER_ERROR", {
212
179
  links
213
180
  });
214
181
  }
215
182
  };
216
-
217
183
  const listRenders = async params => {
218
184
  const {
219
185
  where
@@ -222,11 +188,9 @@ const createRenderStorageOperations = params => {
222
188
  tenant,
223
189
  tag
224
190
  } = where;
225
-
226
191
  if (tag) {
227
192
  return listRendersByTag(params);
228
193
  }
229
-
230
194
  const queryAllParams = {
231
195
  entity,
232
196
  partitionKey: createRenderGSI1PartitionKey(tenant),
@@ -235,10 +199,9 @@ const createRenderStorageOperations = params => {
235
199
  gte: " "
236
200
  }
237
201
  };
238
-
239
202
  try {
240
- const results = await (0, _query.queryAll)(queryAllParams);
241
- return (0, _cleanup.cleanupItems)(entity, results).map(item => item.data);
203
+ const results = await (0, _dbDynamodb.queryAllClean)(queryAllParams);
204
+ return results.map(item => item.data);
242
205
  } catch (ex) {
243
206
  throw new _error.default(ex.message || "Could not list render records.", ex.code || "LIST_RENDER_ERROR", {
244
207
  partitionKey: queryAllParams.partitionKey,
@@ -246,40 +209,38 @@ const createRenderStorageOperations = params => {
246
209
  });
247
210
  }
248
211
  };
249
-
250
212
  const createTagPathLinks = async params => {
251
213
  const {
252
214
  tagPathLinks
253
215
  } = params;
254
- const items = tagPathLinks.map(item => {
255
- return tagPathLinkEntity.putBatch({
256
- data: item,
257
- TYPE: createTagPathLinkType(),
258
- PK: createTagPathLinkPartitionKey({
259
- tenant: item.tenant,
260
- tag: item,
261
- path: item.path
262
- }),
263
- SK: createTagPathLinkSortKey({
264
- tag: item,
265
- path: item.path
266
- }),
267
- GSI1_PK: createTagPathLinkGSI1PartitionKey({
268
- tag: item,
269
- tenant: item.tenant
270
- }),
271
- GSI1_SK: createTagPathLinkGSI1SortKey({
272
- tag: item,
273
- path: item.path
274
- })
275
- });
216
+ const tagPathLinksBatch = (0, _dbDynamodb.createEntityWriteBatch)({
217
+ entity: tagPathLinkEntity,
218
+ put: tagPathLinks.map(item => {
219
+ return {
220
+ data: item,
221
+ TYPE: createTagPathLinkType(),
222
+ PK: createTagPathLinkPartitionKey({
223
+ tenant: item.tenant,
224
+ tag: item,
225
+ path: item.path
226
+ }),
227
+ SK: createTagPathLinkSortKey({
228
+ tag: item,
229
+ path: item.path
230
+ }),
231
+ GSI1_PK: createTagPathLinkGSI1PartitionKey({
232
+ tag: item,
233
+ tenant: item.tenant
234
+ }),
235
+ GSI1_SK: createTagPathLinkGSI1SortKey({
236
+ tag: item,
237
+ path: item.path
238
+ })
239
+ };
240
+ })
276
241
  });
277
-
278
242
  try {
279
- await (0, _batchWrite.batchWriteAll)({
280
- table: tagPathLinkEntity.table,
281
- items
282
- });
243
+ await tagPathLinksBatch.execute();
283
244
  return tagPathLinks;
284
245
  } catch (ex) {
285
246
  throw new _error.default(ex.message || "Could not create tagPathLink records.", ex.code || "CREATE_URL_TAG_LINKS_ERROR", {
@@ -287,32 +248,30 @@ const createRenderStorageOperations = params => {
287
248
  });
288
249
  }
289
250
  };
290
-
291
251
  const deleteTagPathLinks = async params => {
292
252
  const {
293
253
  tenant,
294
254
  tags,
295
255
  path
296
256
  } = params;
297
- const items = tags.map(tag => {
298
- return tagPathLinkEntity.deleteBatch({
299
- PK: createTagPathLinkPartitionKey({
300
- tag,
301
- tenant,
302
- path
303
- }),
304
- SK: createTagPathLinkSortKey({
305
- tag,
306
- path
307
- })
308
- });
257
+ const tagPathLinksBatch = (0, _dbDynamodb.createEntityWriteBatch)({
258
+ entity: tagPathLinkEntity,
259
+ delete: tags.map(tag => {
260
+ return {
261
+ PK: createTagPathLinkPartitionKey({
262
+ tag,
263
+ tenant,
264
+ path
265
+ }),
266
+ SK: createTagPathLinkSortKey({
267
+ tag,
268
+ path
269
+ })
270
+ };
271
+ })
309
272
  });
310
-
311
273
  try {
312
- await (0, _batchWrite.batchWriteAll)({
313
- table: tagPathLinkEntity.table,
314
- items
315
- });
274
+ await tagPathLinksBatch.execute();
316
275
  } catch (ex) {
317
276
  throw new _error.default(ex.message || "Could not delete tagPathLink records.", ex.code || "DELETE_URL_TAG_LINKS_ERROR", {
318
277
  tags,
@@ -321,7 +280,6 @@ const createRenderStorageOperations = params => {
321
280
  });
322
281
  }
323
282
  };
324
-
325
283
  const listTagPathLinks = async params => {
326
284
  const {
327
285
  where
@@ -337,22 +295,19 @@ const createRenderStorageOperations = params => {
337
295
  const options = {
338
296
  index: "GSI1"
339
297
  };
340
-
341
298
  if (tag.value) {
342
299
  options.beginsWith = `${tag.key}#${tag.value}#`;
343
300
  } else {
344
301
  options.beginsWith = `${tag.key}#`;
345
302
  }
346
-
347
303
  const queryAllParams = {
348
304
  entity: tagPathLinkEntity,
349
305
  partitionKey,
350
306
  options
351
307
  };
352
-
353
308
  try {
354
- const results = await (0, _query.queryAll)(queryAllParams);
355
- return (0, _cleanup.cleanupItems)(tagPathLinkEntity, results).map(item => item.data);
309
+ const results = await (0, _dbDynamodb.queryAll)(queryAllParams);
310
+ return (0, _dbDynamodb.cleanupItems)(tagPathLinkEntity, results).map(item => item.data);
356
311
  } catch (ex) {
357
312
  throw new _error.default(ex.message || "Could not list tagPathLink records.", ex.code || "LIST_TAG_PATH_LINK_ERROR", {
358
313
  partitionKey,
@@ -360,7 +315,6 @@ const createRenderStorageOperations = params => {
360
315
  });
361
316
  }
362
317
  };
363
-
364
318
  return {
365
319
  createRender,
366
320
  deleteRender,
@@ -371,5 +325,6 @@ const createRenderStorageOperations = params => {
371
325
  listTagPathLinks
372
326
  };
373
327
  };
328
+ exports.createRenderStorageOperations = createRenderStorageOperations;
374
329
 
375
- exports.createRenderStorageOperations = createRenderStorageOperations;
330
+ //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createRenderStorageOperations","params","entity","tagPathLinkEntity","createRenderPartitionKey","tenant","path","startsWith","replace","createRenderSortKey","createRenderGSI1PartitionKey","createRenderType","createTagPathLinkPartitionKey","tag","key","value","createTagPathLinkSortKey","values","push","join","createTagPathLinkGSI1PartitionKey","createTagPathLinkGSI1SortKey","createTagPathLinkType","getRender","where","keys","PK","SK","result","get","dbItem","cleanupItem","data","ex","WebinyError","message","code","createRender","render","put","TYPE","GSI1_PK","GSI1_SK","deleteRender","delete","listRendersByTag","links","listTagPathLinks","items","map","link","getBatch","results","batchReadAll","table","cleanupItems","item","listRenders","queryAllParams","partitionKey","options","index","gte","queryAll","createTagPathLinks","tagPathLinks","putBatch","batchWriteAll","deleteTagPathLinks","tags","deleteBatch","beginsWith"],"sources":["render.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PrerenderingServiceRenderStorageOperations,\n PrerenderingServiceStorageOperationsCreateRenderParams,\n PrerenderingServiceStorageOperationsCreateTagPathLinksParams,\n PrerenderingServiceStorageOperationsDeleteRenderParams,\n PrerenderingServiceStorageOperationsDeleteTagPathLinksParams,\n PrerenderingServiceStorageOperationsGetRenderParams,\n PrerenderingServiceStorageOperationsListRendersParams,\n PrerenderingServiceStorageOperationsListTagPathLinksParams,\n Render,\n TagPathLink\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { Tag } from \"@webiny/api-prerendering-service/types\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryOptions as DynamoDBToolboxQueryOptions } from \"dynamodb-toolbox/dist/classes/Table\";\nimport { DataContainer } from \"~/types\";\n\nexport interface CreateRenderStorageOperationsParams {\n entity: Entity<any>;\n tagPathLinkEntity: Entity<any>;\n}\n\nexport interface CreateTagPathLinkPartitionKeyParams {\n tenant: string;\n tag: Tag;\n path: string;\n}\n\nexport interface CreateTagPathLinkGSI1PartitionKeyParams {\n tenant: string;\n tag: Tag;\n}\n\nexport interface CreateTagPathLinkSortKeyParams {\n tag: Tag;\n path?: string;\n}\n\nexport const createRenderStorageOperations = (\n params: CreateRenderStorageOperationsParams\n): PrerenderingServiceRenderStorageOperations => {\n const { entity, tagPathLinkEntity } = params;\n\n const createRenderPartitionKey = (tenant: string, path: string): string => {\n /**\n * For backwards compatibility remove the T# if it exists.\n */\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#RENDER#${path}`;\n };\n\n const createRenderSortKey = (): string => {\n return \"A\";\n };\n\n const createRenderGSI1PartitionKey = (tenant: string): string => {\n return `T#${tenant}#PS#RENDER`;\n };\n\n const createRenderType = (): string => {\n return \"ps.render\";\n };\n\n const createTagPathLinkPartitionKey = (params: CreateTagPathLinkPartitionKeyParams): string => {\n const { tag, path } = params;\n let { tenant } = params;\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#TAG#${tag.key}#${tag.value}#${path}`;\n };\n\n const createTagPathLinkSortKey = (params: CreateTagPathLinkSortKeyParams): string => {\n const { tag, path } = params;\n const values = [tag.value];\n if (path) {\n values.push(path);\n }\n return values.join(\"#\");\n };\n\n const createTagPathLinkGSI1PartitionKey = (\n params: CreateTagPathLinkGSI1PartitionKeyParams\n ): string => {\n let { tenant } = params;\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#TAG`;\n };\n\n const createTagPathLinkGSI1SortKey = (params: CreateTagPathLinkSortKeyParams): string => {\n const { tag, path } = params;\n\n return `${tag.key}#${tag.value}#${path}`;\n };\n\n const createTagPathLinkType = (): string => {\n return \"ps.tagPathLink\";\n };\n\n const getRender = async (\n params: PrerenderingServiceStorageOperationsGetRenderParams\n ): Promise<Render | null> => {\n const { where } = params;\n\n const keys = {\n PK: createRenderPartitionKey(where.tenant, where.path),\n SK: createRenderSortKey()\n };\n\n try {\n const result = await get<DataContainer<Render>>({\n entity,\n keys\n });\n\n const dbItem = cleanupItem(entity, result);\n\n return dbItem ? dbItem.data : null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get render record by given key.\",\n ex.code || \"GET_RENDER_ERROR\",\n {\n keys,\n params\n }\n );\n }\n };\n const createRender = async (params: PrerenderingServiceStorageOperationsCreateRenderParams) => {\n const { render } = params;\n\n const keys = {\n PK: createRenderPartitionKey(render.tenant, render.path),\n SK: createRenderSortKey()\n };\n\n try {\n await entity.put({\n ...keys,\n data: render,\n TYPE: createRenderType(),\n GSI1_PK: createRenderGSI1PartitionKey(render.tenant),\n GSI1_SK: render.path\n });\n\n return render;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create render record.\",\n ex.code || \"CREATE_RENDER_ERROR\",\n {\n keys,\n render\n }\n );\n }\n };\n const deleteRender = async (\n params: PrerenderingServiceStorageOperationsDeleteRenderParams\n ): Promise<void> => {\n const { render } = params;\n\n const keys = {\n PK: createRenderPartitionKey(render.tenant, render.path),\n SK: createRenderSortKey()\n };\n\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete render record.\",\n ex.code || \"DELETE_RENDER_ERROR\",\n {\n keys,\n render\n }\n );\n }\n };\n\n const listRendersByTag = async (\n params: PrerenderingServiceStorageOperationsListRendersParams\n ) => {\n const { where } = params;\n const { tenant, tag } = where;\n /**\n * Possibly there is no tag.key so no need to go further\n */\n if (!tag || !tag.key) {\n return [];\n }\n\n const links = await listTagPathLinks({\n where: {\n tenant,\n tag\n }\n });\n\n const items = links.map(link => {\n return entity.getBatch({\n PK: createRenderPartitionKey(tenant, link.path),\n SK: createRenderSortKey()\n });\n });\n try {\n const results = await batchReadAll<DataContainer<Render>>({\n table: entity.table,\n items\n });\n return cleanupItems(entity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list render records after links.\",\n ex.code || \"LIST_LINKS_RENDER_ERROR\",\n {\n links\n }\n );\n }\n };\n\n const listRenders = async (params: PrerenderingServiceStorageOperationsListRendersParams) => {\n const { where } = params;\n const { tenant, tag } = where;\n\n if (tag) {\n return listRendersByTag(params);\n }\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createRenderGSI1PartitionKey(tenant),\n options: {\n index: \"GSI1\",\n gte: \" \"\n }\n };\n\n try {\n const results = await queryAll<DataContainer<Render>>(queryAllParams);\n\n return cleanupItems(entity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list render records.\",\n ex.code || \"LIST_RENDER_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n };\n\n const createTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsCreateTagPathLinksParams\n ) => {\n const { tagPathLinks } = params;\n\n const items = tagPathLinks.map(item => {\n return tagPathLinkEntity.putBatch({\n data: item,\n TYPE: createTagPathLinkType(),\n PK: createTagPathLinkPartitionKey({\n tenant: item.tenant,\n tag: item,\n path: item.path\n }),\n SK: createTagPathLinkSortKey({\n tag: item,\n path: item.path\n }),\n GSI1_PK: createTagPathLinkGSI1PartitionKey({ tag: item, tenant: item.tenant }),\n GSI1_SK: createTagPathLinkGSI1SortKey({ tag: item, path: item.path })\n });\n });\n\n try {\n await batchWriteAll({\n table: tagPathLinkEntity.table,\n items\n });\n return tagPathLinks;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create tagPathLink records.\",\n ex.code || \"CREATE_URL_TAG_LINKS_ERROR\",\n {\n tagPathLinks\n }\n );\n }\n };\n\n const deleteTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsDeleteTagPathLinksParams\n ): Promise<void> => {\n const { tenant, tags, path } = params;\n const items = tags.map(tag => {\n return tagPathLinkEntity.deleteBatch({\n PK: createTagPathLinkPartitionKey({\n tag,\n tenant,\n path\n }),\n SK: createTagPathLinkSortKey({\n tag,\n path\n })\n });\n });\n\n try {\n await batchWriteAll({\n table: tagPathLinkEntity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete tagPathLink records.\",\n ex.code || \"DELETE_URL_TAG_LINKS_ERROR\",\n {\n tags,\n tenant,\n path\n }\n );\n }\n };\n\n const listTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsListTagPathLinksParams\n ) => {\n const { where } = params;\n const { tenant, tag } = where;\n\n const partitionKey = createTagPathLinkGSI1PartitionKey({\n tenant,\n tag\n });\n\n const options: DynamoDBToolboxQueryOptions = { index: \"GSI1\" };\n\n if (tag.value) {\n options.beginsWith = `${tag.key}#${tag.value}#`;\n } else {\n options.beginsWith = `${tag.key}#`;\n }\n\n const queryAllParams: QueryAllParams = {\n entity: tagPathLinkEntity,\n partitionKey,\n options\n };\n\n try {\n const results = await queryAll<DataContainer<TagPathLink>>(queryAllParams);\n\n return cleanupItems(tagPathLinkEntity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list tagPathLink records.\",\n ex.code || \"LIST_TAG_PATH_LINK_ERROR\",\n {\n partitionKey,\n options\n }\n );\n }\n };\n\n return {\n createRender,\n deleteRender,\n listRenders,\n getRender,\n createTagPathLinks,\n deleteTagPathLinks,\n listTagPathLinks\n };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAcA;;AACA;;AACA;;AACA;;AAEA;;AAyBO,MAAMA,6BAA6B,GACtCC,MADyC,IAEI;EAC7C,MAAM;IAAEC,MAAF;IAAUC;EAAV,IAAgCF,MAAtC;;EAEA,MAAMG,wBAAwB,GAAG,CAACC,MAAD,EAAiBC,IAAjB,KAA0C;IACvE;AACR;AACA;IACQ,IAAID,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAJ,EAA6B;MACzBF,MAAM,GAAGA,MAAM,CAACG,OAAP,CAAe,KAAf,EAAsB,EAAtB,CAAT;IACH;;IACD,OAAQ,KAAIH,MAAO,cAAaC,IAAK,EAArC;EACH,CARD;;EAUA,MAAMG,mBAAmB,GAAG,MAAc;IACtC,OAAO,GAAP;EACH,CAFD;;EAIA,MAAMC,4BAA4B,GAAIL,MAAD,IAA4B;IAC7D,OAAQ,KAAIA,MAAO,YAAnB;EACH,CAFD;;EAIA,MAAMM,gBAAgB,GAAG,MAAc;IACnC,OAAO,WAAP;EACH,CAFD;;EAIA,MAAMC,6BAA6B,GAAIX,MAAD,IAAyD;IAC3F,MAAM;MAAEY,GAAF;MAAOP;IAAP,IAAgBL,MAAtB;IACA,IAAI;MAAEI;IAAF,IAAaJ,MAAjB;;IACA,IAAII,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAJ,EAA6B;MACzBF,MAAM,GAAGA,MAAM,CAACG,OAAP,CAAe,KAAf,EAAsB,EAAtB,CAAT;IACH;;IACD,OAAQ,KAAIH,MAAO,WAAUQ,GAAG,CAACC,GAAI,IAAGD,GAAG,CAACE,KAAM,IAAGT,IAAK,EAA1D;EACH,CAPD;;EASA,MAAMU,wBAAwB,GAAIf,MAAD,IAAoD;IACjF,MAAM;MAAEY,GAAF;MAAOP;IAAP,IAAgBL,MAAtB;IACA,MAAMgB,MAAM,GAAG,CAACJ,GAAG,CAACE,KAAL,CAAf;;IACA,IAAIT,IAAJ,EAAU;MACNW,MAAM,CAACC,IAAP,CAAYZ,IAAZ;IACH;;IACD,OAAOW,MAAM,CAACE,IAAP,CAAY,GAAZ,CAAP;EACH,CAPD;;EASA,MAAMC,iCAAiC,GACnCnB,MADsC,IAE7B;IACT,IAAI;MAAEI;IAAF,IAAaJ,MAAjB;;IACA,IAAII,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAJ,EAA6B;MACzBF,MAAM,GAAGA,MAAM,CAACG,OAAP,CAAe,KAAf,EAAsB,EAAtB,CAAT;IACH;;IACD,OAAQ,KAAIH,MAAO,SAAnB;EACH,CARD;;EAUA,MAAMgB,4BAA4B,GAAIpB,MAAD,IAAoD;IACrF,MAAM;MAAEY,GAAF;MAAOP;IAAP,IAAgBL,MAAtB;IAEA,OAAQ,GAAEY,GAAG,CAACC,GAAI,IAAGD,GAAG,CAACE,KAAM,IAAGT,IAAK,EAAvC;EACH,CAJD;;EAMA,MAAMgB,qBAAqB,GAAG,MAAc;IACxC,OAAO,gBAAP;EACH,CAFD;;EAIA,MAAMC,SAAS,GAAG,MACdtB,MADc,IAEW;IACzB,MAAM;MAAEuB;IAAF,IAAYvB,MAAlB;IAEA,MAAMwB,IAAI,GAAG;MACTC,EAAE,EAAEtB,wBAAwB,CAACoB,KAAK,CAACnB,MAAP,EAAemB,KAAK,CAAClB,IAArB,CADnB;MAETqB,EAAE,EAAElB,mBAAmB;IAFd,CAAb;;IAKA,IAAI;MACA,MAAMmB,MAAM,GAAG,MAAM,IAAAC,QAAA,EAA2B;QAC5C3B,MAD4C;QAE5CuB;MAF4C,CAA3B,CAArB;MAKA,MAAMK,MAAM,GAAG,IAAAC,oBAAA,EAAY7B,MAAZ,EAAoB0B,MAApB,CAAf;MAEA,OAAOE,MAAM,GAAGA,MAAM,CAACE,IAAV,GAAiB,IAA9B;IACH,CATD,CASE,OAAOC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,2CADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,kBAFT,EAGF;QACIX,IADJ;QAEIxB;MAFJ,CAHE,CAAN;IAQH;EACJ,CA7BD;;EA8BA,MAAMoC,YAAY,GAAG,MAAOpC,MAAP,IAA0E;IAC3F,MAAM;MAAEqC;IAAF,IAAarC,MAAnB;IAEA,MAAMwB,IAAI,GAAG;MACTC,EAAE,EAAEtB,wBAAwB,CAACkC,MAAM,CAACjC,MAAR,EAAgBiC,MAAM,CAAChC,IAAvB,CADnB;MAETqB,EAAE,EAAElB,mBAAmB;IAFd,CAAb;;IAKA,IAAI;MACA,MAAMP,MAAM,CAACqC,GAAP,6DACCd,IADD;QAEFO,IAAI,EAAEM,MAFJ;QAGFE,IAAI,EAAE7B,gBAAgB,EAHpB;QAIF8B,OAAO,EAAE/B,4BAA4B,CAAC4B,MAAM,CAACjC,MAAR,CAJnC;QAKFqC,OAAO,EAAEJ,MAAM,CAAChC;MALd,GAAN;MAQA,OAAOgC,MAAP;IACH,CAVD,CAUE,OAAOL,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIX,IADJ;QAEIa;MAFJ,CAHE,CAAN;IAQH;EACJ,CA5BD;;EA6BA,MAAMK,YAAY,GAAG,MACjB1C,MADiB,IAED;IAChB,MAAM;MAAEqC;IAAF,IAAarC,MAAnB;IAEA,MAAMwB,IAAI,GAAG;MACTC,EAAE,EAAEtB,wBAAwB,CAACkC,MAAM,CAACjC,MAAR,EAAgBiC,MAAM,CAAChC,IAAvB,CADnB;MAETqB,EAAE,EAAElB,mBAAmB;IAFd,CAAb;;IAKA,IAAI;MACA,MAAMP,MAAM,CAAC0C,MAAP,CAAcnB,IAAd,CAAN;IACH,CAFD,CAEE,OAAOQ,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIX,IADJ;QAEIa;MAFJ,CAHE,CAAN;IAQH;EACJ,CAtBD;;EAwBA,MAAMO,gBAAgB,GAAG,MACrB5C,MADqB,IAEpB;IACD,MAAM;MAAEuB;IAAF,IAAYvB,MAAlB;IACA,MAAM;MAAEI,MAAF;MAAUQ;IAAV,IAAkBW,KAAxB;IACA;AACR;AACA;;IACQ,IAAI,CAACX,GAAD,IAAQ,CAACA,GAAG,CAACC,GAAjB,EAAsB;MAClB,OAAO,EAAP;IACH;;IAED,MAAMgC,KAAK,GAAG,MAAMC,gBAAgB,CAAC;MACjCvB,KAAK,EAAE;QACHnB,MADG;QAEHQ;MAFG;IAD0B,CAAD,CAApC;IAOA,MAAMmC,KAAK,GAAGF,KAAK,CAACG,GAAN,CAAUC,IAAI,IAAI;MAC5B,OAAOhD,MAAM,CAACiD,QAAP,CAAgB;QACnBzB,EAAE,EAAEtB,wBAAwB,CAACC,MAAD,EAAS6C,IAAI,CAAC5C,IAAd,CADT;QAEnBqB,EAAE,EAAElB,mBAAmB;MAFJ,CAAhB,CAAP;IAIH,CALa,CAAd;;IAMA,IAAI;MACA,MAAM2C,OAAO,GAAG,MAAM,IAAAC,uBAAA,EAAoC;QACtDC,KAAK,EAAEpD,MAAM,CAACoD,KADwC;QAEtDN;MAFsD,CAApC,CAAtB;MAIA,OAAO,IAAAO,qBAAA,EAAarD,MAAb,EAAqBkD,OAArB,EAA8BH,GAA9B,CAAkCO,IAAI,IAAIA,IAAI,CAACxB,IAA/C,CAAP;IACH,CAND,CAME,OAAOC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,4CADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,yBAFT,EAGF;QACIU;MADJ,CAHE,CAAN;IAOH;EACJ,CAxCD;;EA0CA,MAAMW,WAAW,GAAG,MAAOxD,MAAP,IAAyE;IACzF,MAAM;MAAEuB;IAAF,IAAYvB,MAAlB;IACA,MAAM;MAAEI,MAAF;MAAUQ;IAAV,IAAkBW,KAAxB;;IAEA,IAAIX,GAAJ,EAAS;MACL,OAAOgC,gBAAgB,CAAC5C,MAAD,CAAvB;IACH;;IAED,MAAMyD,cAA8B,GAAG;MACnCxD,MADmC;MAEnCyD,YAAY,EAAEjD,4BAA4B,CAACL,MAAD,CAFP;MAGnCuD,OAAO,EAAE;QACLC,KAAK,EAAE,MADF;QAELC,GAAG,EAAE;MAFA;IAH0B,CAAvC;;IASA,IAAI;MACA,MAAMV,OAAO,GAAG,MAAM,IAAAW,eAAA,EAAgCL,cAAhC,CAAtB;MAEA,OAAO,IAAAH,qBAAA,EAAarD,MAAb,EAAqBkD,OAArB,EAA8BH,GAA9B,CAAkCO,IAAI,IAAIA,IAAI,CAACxB,IAA/C,CAAP;IACH,CAJD,CAIE,OAAOC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,gCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,mBAFT,EAGF;QACIuB,YAAY,EAAED,cAAc,CAACC,YADjC;QAEIC,OAAO,EAAEF,cAAc,CAACE;MAF5B,CAHE,CAAN;IAQH;EACJ,CA/BD;;EAiCA,MAAMI,kBAAkB,GAAG,MACvB/D,MADuB,IAEtB;IACD,MAAM;MAAEgE;IAAF,IAAmBhE,MAAzB;IAEA,MAAM+C,KAAK,GAAGiB,YAAY,CAAChB,GAAb,CAAiBO,IAAI,IAAI;MACnC,OAAOrD,iBAAiB,CAAC+D,QAAlB,CAA2B;QAC9BlC,IAAI,EAAEwB,IADwB;QAE9BhB,IAAI,EAAElB,qBAAqB,EAFG;QAG9BI,EAAE,EAAEd,6BAA6B,CAAC;UAC9BP,MAAM,EAAEmD,IAAI,CAACnD,MADiB;UAE9BQ,GAAG,EAAE2C,IAFyB;UAG9BlD,IAAI,EAAEkD,IAAI,CAAClD;QAHmB,CAAD,CAHH;QAQ9BqB,EAAE,EAAEX,wBAAwB,CAAC;UACzBH,GAAG,EAAE2C,IADoB;UAEzBlD,IAAI,EAAEkD,IAAI,CAAClD;QAFc,CAAD,CARE;QAY9BmC,OAAO,EAAErB,iCAAiC,CAAC;UAAEP,GAAG,EAAE2C,IAAP;UAAanD,MAAM,EAAEmD,IAAI,CAACnD;QAA1B,CAAD,CAZZ;QAa9BqC,OAAO,EAAErB,4BAA4B,CAAC;UAAER,GAAG,EAAE2C,IAAP;UAAalD,IAAI,EAAEkD,IAAI,CAAClD;QAAxB,CAAD;MAbP,CAA3B,CAAP;IAeH,CAhBa,CAAd;;IAkBA,IAAI;MACA,MAAM,IAAA6D,yBAAA,EAAc;QAChBb,KAAK,EAAEnD,iBAAiB,CAACmD,KADT;QAEhBN;MAFgB,CAAd,CAAN;MAIA,OAAOiB,YAAP;IACH,CAND,CAME,OAAOhC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,uCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,4BAFT,EAGF;QACI6B;MADJ,CAHE,CAAN;IAOH;EACJ,CAtCD;;EAwCA,MAAMG,kBAAkB,GAAG,MACvBnE,MADuB,IAEP;IAChB,MAAM;MAAEI,MAAF;MAAUgE,IAAV;MAAgB/D;IAAhB,IAAyBL,MAA/B;IACA,MAAM+C,KAAK,GAAGqB,IAAI,CAACpB,GAAL,CAASpC,GAAG,IAAI;MAC1B,OAAOV,iBAAiB,CAACmE,WAAlB,CAA8B;QACjC5C,EAAE,EAAEd,6BAA6B,CAAC;UAC9BC,GAD8B;UAE9BR,MAF8B;UAG9BC;QAH8B,CAAD,CADA;QAMjCqB,EAAE,EAAEX,wBAAwB,CAAC;UACzBH,GADyB;UAEzBP;QAFyB,CAAD;MANK,CAA9B,CAAP;IAWH,CAZa,CAAd;;IAcA,IAAI;MACA,MAAM,IAAA6D,yBAAA,EAAc;QAChBb,KAAK,EAAEnD,iBAAiB,CAACmD,KADT;QAEhBN;MAFgB,CAAd,CAAN;IAIH,CALD,CAKE,OAAOf,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,uCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,4BAFT,EAGF;QACIiC,IADJ;QAEIhE,MAFJ;QAGIC;MAHJ,CAHE,CAAN;IASH;EACJ,CAlCD;;EAoCA,MAAMyC,gBAAgB,GAAG,MACrB9C,MADqB,IAEpB;IACD,MAAM;MAAEuB;IAAF,IAAYvB,MAAlB;IACA,MAAM;MAAEI,MAAF;MAAUQ;IAAV,IAAkBW,KAAxB;IAEA,MAAMmC,YAAY,GAAGvC,iCAAiC,CAAC;MACnDf,MADmD;MAEnDQ;IAFmD,CAAD,CAAtD;IAKA,MAAM+C,OAAoC,GAAG;MAAEC,KAAK,EAAE;IAAT,CAA7C;;IAEA,IAAIhD,GAAG,CAACE,KAAR,EAAe;MACX6C,OAAO,CAACW,UAAR,GAAsB,GAAE1D,GAAG,CAACC,GAAI,IAAGD,GAAG,CAACE,KAAM,GAA7C;IACH,CAFD,MAEO;MACH6C,OAAO,CAACW,UAAR,GAAsB,GAAE1D,GAAG,CAACC,GAAI,GAAhC;IACH;;IAED,MAAM4C,cAA8B,GAAG;MACnCxD,MAAM,EAAEC,iBAD2B;MAEnCwD,YAFmC;MAGnCC;IAHmC,CAAvC;;IAMA,IAAI;MACA,MAAMR,OAAO,GAAG,MAAM,IAAAW,eAAA,EAAqCL,cAArC,CAAtB;MAEA,OAAO,IAAAH,qBAAA,EAAapD,iBAAb,EAAgCiD,OAAhC,EAAyCH,GAAzC,CAA6CO,IAAI,IAAIA,IAAI,CAACxB,IAA1D,CAAP;IACH,CAJD,CAIE,OAAOC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,qCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,0BAFT,EAGF;QACIuB,YADJ;QAEIC;MAFJ,CAHE,CAAN;IAQH;EACJ,CAvCD;;EAyCA,OAAO;IACHvB,YADG;IAEHM,YAFG;IAGHc,WAHG;IAIHlC,SAJG;IAKHyC,kBALG;IAMHI,kBANG;IAOHrB;EAPG,CAAP;AASH,CA7VM"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_dbDynamodb","createRenderStorageOperations","params","entity","tagPathLinkEntity","createRenderPartitionKey","tenant","path","startsWith","replace","createRenderSortKey","createRenderGSI1PartitionKey","createRenderType","createTagPathLinkPartitionKey","tag","key","value","createTagPathLinkSortKey","values","push","join","createTagPathLinkGSI1PartitionKey","createTagPathLinkGSI1SortKey","createTagPathLinkType","getRender","where","keys","PK","SK","result","get","dbItem","cleanupItem","data","ex","WebinyError","message","code","createRender","render","put","item","TYPE","GSI1_PK","GSI1_SK","deleteRender","deleteItem","listRendersByTag","links","listTagPathLinks","items","map","link","getBatch","results","batchReadAll","table","cleanupItems","listRenders","queryAllParams","partitionKey","options","index","gte","queryAllClean","createTagPathLinks","tagPathLinks","tagPathLinksBatch","createEntityWriteBatch","execute","deleteTagPathLinks","tags","delete","beginsWith","queryAll","exports"],"sources":["render.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n PrerenderingServiceRenderStorageOperations,\n PrerenderingServiceStorageOperationsCreateRenderParams,\n PrerenderingServiceStorageOperationsCreateTagPathLinksParams,\n PrerenderingServiceStorageOperationsDeleteRenderParams,\n PrerenderingServiceStorageOperationsDeleteTagPathLinksParams,\n PrerenderingServiceStorageOperationsGetRenderParams,\n PrerenderingServiceStorageOperationsListRendersParams,\n PrerenderingServiceStorageOperationsListTagPathLinksParams,\n Render,\n Tag,\n TagPathLink\n} from \"@webiny/api-prerendering-service/types\";\nimport type { Entity, EntityQueryOptions } from \"@webiny/db-dynamodb/toolbox\";\nimport {\n batchReadAll,\n cleanupItem,\n cleanupItems,\n createEntityWriteBatch,\n deleteItem,\n get,\n put,\n queryAll,\n queryAllClean\n} from \"@webiny/db-dynamodb\";\nimport type { QueryAllParams } from \"@webiny/db-dynamodb\";\nimport type { DataContainer } from \"~/types\";\n\nexport interface CreateRenderStorageOperationsParams {\n entity: Entity;\n tagPathLinkEntity: Entity;\n}\n\nexport interface CreateTagPathLinkPartitionKeyParams {\n tenant: string;\n tag: Tag;\n path: string;\n}\n\nexport interface CreateTagPathLinkGSI1PartitionKeyParams {\n tenant: string;\n tag: Tag;\n}\n\nexport interface CreateTagPathLinkSortKeyParams {\n tag: Tag;\n path?: string;\n}\n\nexport const createRenderStorageOperations = (\n params: CreateRenderStorageOperationsParams\n): PrerenderingServiceRenderStorageOperations => {\n const { entity, tagPathLinkEntity } = params;\n\n const createRenderPartitionKey = (tenant: string, path: string): string => {\n /**\n * For backwards compatibility remove the T# if it exists.\n */\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#RENDER#${path}`;\n };\n\n const createRenderSortKey = (): string => {\n return \"A\";\n };\n\n const createRenderGSI1PartitionKey = (tenant: string): string => {\n return `T#${tenant}#PS#RENDER`;\n };\n\n const createRenderType = (): string => {\n return \"ps.render\";\n };\n\n const createTagPathLinkPartitionKey = (params: CreateTagPathLinkPartitionKeyParams): string => {\n const { tag, path } = params;\n let { tenant } = params;\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#TAG#${tag.key}#${tag.value}#${path}`;\n };\n\n const createTagPathLinkSortKey = (params: CreateTagPathLinkSortKeyParams): string => {\n const { tag, path } = params;\n const values = [tag.value];\n if (path) {\n values.push(path);\n }\n return values.join(\"#\");\n };\n\n const createTagPathLinkGSI1PartitionKey = (\n params: CreateTagPathLinkGSI1PartitionKeyParams\n ): string => {\n let { tenant } = params;\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#TAG`;\n };\n\n const createTagPathLinkGSI1SortKey = (params: CreateTagPathLinkSortKeyParams): string => {\n const { tag, path } = params;\n\n return `${tag.key}#${tag.value}#${path}`;\n };\n\n const createTagPathLinkType = (): string => {\n return \"ps.tagPathLink\";\n };\n\n const getRender = async (\n params: PrerenderingServiceStorageOperationsGetRenderParams\n ): Promise<Render | null> => {\n const { where } = params;\n\n const keys = {\n PK: createRenderPartitionKey(where.tenant, where.path),\n SK: createRenderSortKey()\n };\n\n try {\n const result = await get<DataContainer<Render>>({\n entity,\n keys\n });\n\n const dbItem = cleanupItem(entity, result);\n\n return dbItem ? dbItem.data : null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get render record by given key.\",\n ex.code || \"GET_RENDER_ERROR\",\n {\n keys,\n params\n }\n );\n }\n };\n const createRender = async (params: PrerenderingServiceStorageOperationsCreateRenderParams) => {\n const { render } = params;\n\n const keys = {\n PK: createRenderPartitionKey(render.tenant, render.path),\n SK: createRenderSortKey()\n };\n\n try {\n await put({\n entity,\n item: {\n ...keys,\n data: render,\n TYPE: createRenderType(),\n GSI1_PK: createRenderGSI1PartitionKey(render.tenant),\n GSI1_SK: render.path\n }\n });\n\n return render;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create render record.\",\n ex.code || \"CREATE_RENDER_ERROR\",\n {\n keys,\n render\n }\n );\n }\n };\n const deleteRender = async (\n params: PrerenderingServiceStorageOperationsDeleteRenderParams\n ): Promise<void> => {\n const { render } = params;\n\n const keys = {\n PK: createRenderPartitionKey(render.tenant, render.path),\n SK: createRenderSortKey()\n };\n\n try {\n await deleteItem({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete render record.\",\n ex.code || \"DELETE_RENDER_ERROR\",\n {\n keys,\n render\n }\n );\n }\n };\n\n const listRendersByTag = async (\n params: PrerenderingServiceStorageOperationsListRendersParams\n ) => {\n const { where } = params;\n const { tenant, tag } = where;\n /**\n * Possibly there is no tag.key so no need to go further\n */\n if (!tag || !tag.key) {\n return [];\n }\n\n const links = await listTagPathLinks({\n where: {\n tenant,\n tag\n }\n });\n\n const items = links.map(link => {\n return entity.getBatch({\n PK: createRenderPartitionKey(tenant, link.path),\n SK: createRenderSortKey()\n });\n });\n try {\n const results = await batchReadAll<DataContainer<Render>>({\n table: entity.table,\n items\n });\n return cleanupItems(entity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list render records after links.\",\n ex.code || \"LIST_LINKS_RENDER_ERROR\",\n {\n links\n }\n );\n }\n };\n\n const listRenders = async (params: PrerenderingServiceStorageOperationsListRendersParams) => {\n const { where } = params;\n const { tenant, tag } = where;\n\n if (tag) {\n return listRendersByTag(params);\n }\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createRenderGSI1PartitionKey(tenant),\n options: {\n index: \"GSI1\",\n gte: \" \"\n }\n };\n\n try {\n const results = await queryAllClean<DataContainer<Render>>(queryAllParams);\n\n return results.map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list render records.\",\n ex.code || \"LIST_RENDER_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n };\n\n const createTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsCreateTagPathLinksParams\n ) => {\n const { tagPathLinks } = params;\n\n const tagPathLinksBatch = createEntityWriteBatch({\n entity: tagPathLinkEntity,\n put: tagPathLinks.map(item => {\n return {\n data: item,\n TYPE: createTagPathLinkType(),\n PK: createTagPathLinkPartitionKey({\n tenant: item.tenant,\n tag: item,\n path: item.path\n }),\n SK: createTagPathLinkSortKey({\n tag: item,\n path: item.path\n }),\n GSI1_PK: createTagPathLinkGSI1PartitionKey({ tag: item, tenant: item.tenant }),\n GSI1_SK: createTagPathLinkGSI1SortKey({ tag: item, path: item.path })\n };\n })\n });\n\n try {\n await tagPathLinksBatch.execute();\n return tagPathLinks;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create tagPathLink records.\",\n ex.code || \"CREATE_URL_TAG_LINKS_ERROR\",\n {\n tagPathLinks\n }\n );\n }\n };\n\n const deleteTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsDeleteTagPathLinksParams\n ): Promise<void> => {\n const { tenant, tags, path } = params;\n\n const tagPathLinksBatch = createEntityWriteBatch({\n entity: tagPathLinkEntity,\n delete: tags.map(tag => {\n return {\n PK: createTagPathLinkPartitionKey({\n tag,\n tenant,\n path\n }),\n SK: createTagPathLinkSortKey({\n tag,\n path\n })\n };\n })\n });\n\n try {\n await tagPathLinksBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete tagPathLink records.\",\n ex.code || \"DELETE_URL_TAG_LINKS_ERROR\",\n {\n tags,\n tenant,\n path\n }\n );\n }\n };\n\n const listTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsListTagPathLinksParams\n ) => {\n const { where } = params;\n const { tenant, tag } = where;\n\n const partitionKey = createTagPathLinkGSI1PartitionKey({\n tenant,\n tag\n });\n\n const options: EntityQueryOptions = {\n index: \"GSI1\"\n };\n\n if (tag.value) {\n options.beginsWith = `${tag.key}#${tag.value}#`;\n } else {\n options.beginsWith = `${tag.key}#`;\n }\n\n const queryAllParams: QueryAllParams = {\n entity: tagPathLinkEntity,\n partitionKey,\n options\n };\n\n try {\n const results = await queryAll<DataContainer<TagPathLink>>(queryAllParams);\n\n return cleanupItems(tagPathLinkEntity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list tagPathLink records.\",\n ex.code || \"LIST_TAG_PATH_LINK_ERROR\",\n {\n partitionKey,\n options\n }\n );\n }\n };\n\n return {\n createRender,\n deleteRender,\n listRenders,\n getRender,\n createTagPathLinks,\n deleteTagPathLinks,\n listTagPathLinks\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { PrerenderingServiceSettingsStorageOperations } from "@webiny/api-prerendering-service/types";
2
- import { Entity } from "dynamodb-toolbox";
1
+ import type { PrerenderingServiceSettingsStorageOperations } from "@webiny/api-prerendering-service/types";
2
+ import type { Entity } from "@webiny/db-dynamodb/toolbox";
3
3
  export interface CreateSettingsStorageOperationsParams {
4
4
  entity: Entity<any>;
5
5
  }
@@ -1,48 +1,38 @@
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
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
8
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
9
  var _get = require("@webiny/db-dynamodb/utils/get");
15
-
10
+ var _dbDynamodb = require("@webiny/db-dynamodb");
16
11
  const createSettingsStorageOperations = params => {
17
12
  const {
18
13
  entity
19
14
  } = params;
20
-
21
15
  const getSettings = async (variant = "default") => {
22
16
  const keys = {
23
17
  PK: "PS#SETTINGS",
24
18
  SK: variant
25
19
  };
26
-
27
20
  try {
28
21
  const result = await (0, _get.get)({
29
22
  entity,
30
23
  keys
31
24
  });
32
-
33
25
  if (!result) {
34
26
  throw Error();
35
27
  }
36
-
37
28
  return result.data;
38
29
  } catch (ex) {
39
30
  throw new _error.default(ex.message || "Could not load prerendering settings!", ex.code || "GET_SETTINGS_ERROR", {
40
31
  keys,
41
- params
32
+ entity: entity.name
42
33
  });
43
34
  }
44
35
  };
45
-
46
36
  const saveSettings = async params => {
47
37
  const {
48
38
  settings,
@@ -52,12 +42,15 @@ const createSettingsStorageOperations = params => {
52
42
  PK: "PS#SETTINGS",
53
43
  SK: variant
54
44
  };
55
-
56
45
  try {
57
- await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, keys), {}, {
58
- TYPE: "ps.settings",
59
- data: settings
60
- }));
46
+ await (0, _dbDynamodb.put)({
47
+ entity,
48
+ item: {
49
+ ...keys,
50
+ TYPE: "ps.settings",
51
+ data: settings
52
+ }
53
+ });
61
54
  return settings;
62
55
  } catch (ex) {
63
56
  throw new _error.default(ex.message || "Could not save settings.", ex.code || "SAVE_SETTINGS_ERROR", {
@@ -65,11 +58,11 @@ const createSettingsStorageOperations = params => {
65
58
  });
66
59
  }
67
60
  };
68
-
69
61
  return {
70
62
  getSettings,
71
63
  saveSettings
72
64
  };
73
65
  };
66
+ exports.createSettingsStorageOperations = createSettingsStorageOperations;
74
67
 
75
- exports.createSettingsStorageOperations = createSettingsStorageOperations;
68
+ //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createSettingsStorageOperations","params","entity","getSettings","variant","keys","PK","SK","result","get","Error","data","ex","WebinyError","message","code","saveSettings","settings","put","TYPE"],"sources":["settings.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PrerenderingServiceSaveSettingsParams,\n PrerenderingServiceSettingsStorageOperations,\n PrerenderingSettings\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity<any>;\n}\n\nexport const createSettingsStorageOperations = (\n params: CreateSettingsStorageOperationsParams\n): PrerenderingServiceSettingsStorageOperations => {\n const { entity } = params;\n\n const getSettings = async (variant = \"default\"): Promise<PrerenderingSettings> => {\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: variant\n };\n\n try {\n const result = await get<{ data: PrerenderingSettings }>({\n entity,\n keys\n });\n\n if (!result) {\n throw Error();\n }\n\n return result.data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load prerendering settings!\",\n ex.code || \"GET_SETTINGS_ERROR\",\n {\n keys,\n params\n }\n );\n }\n };\n\n const saveSettings = async (params: PrerenderingServiceSaveSettingsParams) => {\n const { settings, variant = \"default\" } = params;\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: variant\n };\n\n try {\n await entity.put({\n ...keys,\n TYPE: \"ps.settings\",\n data: settings\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not save settings.\",\n ex.code || \"SAVE_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n return {\n getSettings,\n saveSettings\n };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAOA;;AAMO,MAAMA,+BAA+B,GACxCC,MAD2C,IAEI;EAC/C,MAAM;IAAEC;EAAF,IAAaD,MAAnB;;EAEA,MAAME,WAAW,GAAG,OAAOC,OAAO,GAAG,SAAjB,KAA8D;IAC9E,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAE,aADK;MAETC,EAAE,EAAEH;IAFK,CAAb;;IAKA,IAAI;MACA,MAAMI,MAAM,GAAG,MAAM,IAAAC,QAAA,EAAoC;QACrDP,MADqD;QAErDG;MAFqD,CAApC,CAArB;;MAKA,IAAI,CAACG,MAAL,EAAa;QACT,MAAME,KAAK,EAAX;MACH;;MAED,OAAOF,MAAM,CAACG,IAAd;IACH,CAXD,CAWE,OAAOC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,uCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,oBAFT,EAGF;QACIV,IADJ;QAEIJ;MAFJ,CAHE,CAAN;IAQH;EACJ,CA3BD;;EA6BA,MAAMe,YAAY,GAAG,MAAOf,MAAP,IAAyD;IAC1E,MAAM;MAAEgB,QAAF;MAAYb,OAAO,GAAG;IAAtB,IAAoCH,MAA1C;IACA,MAAMI,IAAI,GAAG;MACTC,EAAE,EAAE,aADK;MAETC,EAAE,EAAEH;IAFK,CAAb;;IAKA,IAAI;MACA,MAAMF,MAAM,CAACgB,GAAP,6DACCb,IADD;QAEFc,IAAI,EAAE,aAFJ;QAGFR,IAAI,EAAEM;MAHJ,GAAN;MAMA,OAAOA,QAAP;IACH,CARD,CAQE,OAAOL,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,0BADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIV;MADJ,CAHE,CAAN;IAOH;EACJ,CAxBD;;EA0BA,OAAO;IACHF,WADG;IAEHa;EAFG,CAAP;AAIH,CAhEM"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_get","_dbDynamodb","createSettingsStorageOperations","params","entity","getSettings","variant","keys","PK","SK","result","get","Error","data","ex","WebinyError","message","code","name","saveSettings","settings","put","item","TYPE","exports"],"sources":["settings.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n PrerenderingServiceSaveSettingsParams,\n PrerenderingServiceSettingsStorageOperations,\n PrerenderingSettings\n} from \"@webiny/api-prerendering-service/types\";\nimport type { Entity } from \"@webiny/db-dynamodb/toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\nimport { put } from \"@webiny/db-dynamodb\";\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity<any>;\n}\n\nexport const createSettingsStorageOperations = (\n params: CreateSettingsStorageOperationsParams\n): PrerenderingServiceSettingsStorageOperations => {\n const { entity } = params;\n\n const getSettings = async (variant = \"default\"): Promise<PrerenderingSettings> => {\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: variant\n };\n\n try {\n const result = await get<{ data: PrerenderingSettings }>({\n entity,\n keys\n });\n\n if (!result) {\n throw Error();\n }\n\n return result.data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load prerendering settings!\",\n ex.code || \"GET_SETTINGS_ERROR\",\n {\n keys,\n entity: entity.name\n }\n );\n }\n };\n\n const saveSettings = async (params: PrerenderingServiceSaveSettingsParams) => {\n const { settings, variant = \"default\" } = params;\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: variant\n };\n\n try {\n await put({\n entity,\n item: {\n ...keys,\n TYPE: \"ps.settings\",\n data: settings\n }\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not save settings.\",\n ex.code || \"SAVE_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n return {\n getSettings,\n saveSettings\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAMO,MAAMG,+BAA+B,GACxCC,MAA6C,IACE;EAC/C,MAAM;IAAEC;EAAO,CAAC,GAAGD,MAAM;EAEzB,MAAME,WAAW,GAAG,MAAAA,CAAOC,OAAO,GAAG,SAAS,KAAoC;IAC9E,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAE,aAAa;MACjBC,EAAE,EAAEH;IACR,CAAC;IAED,IAAI;MACA,MAAMI,MAAM,GAAG,MAAM,IAAAC,QAAG,EAAiC;QACrDP,MAAM;QACNG;MACJ,CAAC,CAAC;MAEF,IAAI,CAACG,MAAM,EAAE;QACT,MAAME,KAAK,CAAC,CAAC;MACjB;MAEA,OAAOF,MAAM,CAACG,IAAI;IACtB,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,uCAAuC,EACrDF,EAAE,CAACG,IAAI,IAAI,oBAAoB,EAC/B;QACIV,IAAI;QACJH,MAAM,EAAEA,MAAM,CAACc;MACnB,CACJ,CAAC;IACL;EACJ,CAAC;EAED,MAAMC,YAAY,GAAG,MAAOhB,MAA6C,IAAK;IAC1E,MAAM;MAAEiB,QAAQ;MAAEd,OAAO,GAAG;IAAU,CAAC,GAAGH,MAAM;IAChD,MAAMI,IAAI,GAAG;MACTC,EAAE,EAAE,aAAa;MACjBC,EAAE,EAAEH;IACR,CAAC;IAED,IAAI;MACA,MAAM,IAAAe,eAAG,EAAC;QACNjB,MAAM;QACNkB,IAAI,EAAE;UACF,GAAGf,IAAI;UACPgB,IAAI,EAAE,aAAa;UACnBV,IAAI,EAAEO;QACV;MACJ,CAAC,CAAC;MAEF,OAAOA,QAAQ;IACnB,CAAC,CAAC,OAAON,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,0BAA0B,EACxCF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIV;MACJ,CACJ,CAAC;IACL;EACJ,CAAC;EAED,OAAO;IACHF,WAAW;IACXc;EACJ,CAAC;AACL,CAAC;AAACK,OAAA,CAAAtB,+BAAA,GAAAA,+BAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { PrerenderingServiceTenantStorageOperations } from "@webiny/api-prerendering-service/types";
2
+ import type { Entity } from "@webiny/db-dynamodb/toolbox";
3
+ export interface CreateTenantStorageOperationsParams {
4
+ entity: Entity<any>;
5
+ }
6
+ export declare const createTenantStorageOperations: (params: CreateTenantStorageOperationsParams) => PrerenderingServiceTenantStorageOperations;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createTenantStorageOperations = void 0;
7
+ var _query = require("@webiny/db-dynamodb/utils/query");
8
+ const createTenantStorageOperations = params => {
9
+ const {
10
+ entity
11
+ } = params;
12
+ const getTenantIds = async () => {
13
+ const tenants = await (0, _query.queryAll)({
14
+ entity,
15
+ partitionKey: "TENANTS",
16
+ options: {
17
+ index: "GSI1",
18
+ gt: " "
19
+ }
20
+ });
21
+ return tenants.map(tenant => tenant.data.id);
22
+ };
23
+ return {
24
+ getTenantIds
25
+ };
26
+ };
27
+ exports.createTenantStorageOperations = createTenantStorageOperations;
28
+
29
+ //# sourceMappingURL=tenant.js.map