@webiny/db-dynamodb 0.0.0-unstable.d7f521b032 → 0.0.0-unstable.de38392959

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 (155) hide show
  1. package/DynamoDbDriver.d.ts +15 -31
  2. package/DynamoDbDriver.js +18 -250
  3. package/DynamoDbDriver.js.map +1 -1
  4. package/index.d.ts +2 -0
  5. package/index.js +25 -2
  6. package/index.js.map +1 -1
  7. package/package.json +19 -18
  8. package/plugins/definitions/AttributePlugin.d.ts +3 -5
  9. package/plugins/definitions/AttributePlugin.js +4 -19
  10. package/plugins/definitions/AttributePlugin.js.map +1 -1
  11. package/plugins/definitions/DateTimeTransformPlugin.js +14 -26
  12. package/plugins/definitions/DateTimeTransformPlugin.js.map +1 -1
  13. package/plugins/definitions/FieldPathPlugin.js +6 -18
  14. package/plugins/definitions/FieldPathPlugin.js.map +1 -1
  15. package/plugins/definitions/FieldPlugin.d.ts +1 -1
  16. package/plugins/definitions/FieldPlugin.js +2 -24
  17. package/plugins/definitions/FieldPlugin.js.map +1 -1
  18. package/plugins/definitions/NumberTransformPlugin.js +6 -15
  19. package/plugins/definitions/NumberTransformPlugin.js.map +1 -1
  20. package/plugins/definitions/TimeTransformPlugin.js +13 -21
  21. package/plugins/definitions/TimeTransformPlugin.js.map +1 -1
  22. package/plugins/definitions/ValueFilterPlugin.d.ts +2 -0
  23. package/plugins/definitions/ValueFilterPlugin.js +9 -15
  24. package/plugins/definitions/ValueFilterPlugin.js.map +1 -1
  25. package/plugins/definitions/ValueTransformPlugin.d.ts +1 -1
  26. package/plugins/definitions/ValueTransformPlugin.js +6 -19
  27. package/plugins/definitions/ValueTransformPlugin.js.map +1 -1
  28. package/plugins/definitions/assignFields.js +2 -9
  29. package/plugins/definitions/assignFields.js.map +1 -1
  30. package/plugins/filters/andIn.js +3 -7
  31. package/plugins/filters/andIn.js.map +1 -1
  32. package/plugins/filters/between.js +3 -7
  33. package/plugins/filters/between.js.map +1 -1
  34. package/plugins/filters/contains.js +24 -16
  35. package/plugins/filters/contains.js.map +1 -1
  36. package/plugins/filters/eq.js +3 -4
  37. package/plugins/filters/eq.js.map +1 -1
  38. package/plugins/filters/fuzzy.js +16 -10
  39. package/plugins/filters/fuzzy.js.map +1 -1
  40. package/plugins/filters/gt.js +3 -3
  41. package/plugins/filters/gt.js.map +1 -1
  42. package/plugins/filters/gte.js +3 -3
  43. package/plugins/filters/gte.js.map +1 -1
  44. package/plugins/filters/in.js +3 -7
  45. package/plugins/filters/in.js.map +1 -1
  46. package/plugins/filters/index.js +2 -14
  47. package/plugins/filters/index.js.map +1 -1
  48. package/plugins/filters/lt.js +3 -3
  49. package/plugins/filters/lt.js.map +1 -1
  50. package/plugins/filters/lte.js +3 -3
  51. package/plugins/filters/lte.js.map +1 -1
  52. package/plugins/filters/startsWith.js +14 -7
  53. package/plugins/filters/startsWith.js.map +1 -1
  54. package/plugins/index.js +2 -4
  55. package/plugins/index.js.map +1 -1
  56. package/toolbox.d.ts +3 -0
  57. package/toolbox.js +20 -0
  58. package/toolbox.js.map +1 -0
  59. package/types.d.ts +8 -0
  60. package/types.js +3 -1
  61. package/types.js.map +1 -1
  62. package/utils/attributes.d.ts +3 -3
  63. package/utils/attributes.js +6 -10
  64. package/utils/attributes.js.map +1 -1
  65. package/utils/batchRead.d.ts +7 -8
  66. package/utils/batchRead.js +5 -22
  67. package/utils/batchRead.js.map +1 -1
  68. package/utils/batchWrite.d.ts +22 -10
  69. package/utils/batchWrite.js +46 -11
  70. package/utils/batchWrite.js.map +1 -1
  71. package/utils/cleanup.d.ts +1 -1
  72. package/utils/cleanup.js +6 -14
  73. package/utils/cleanup.js.map +1 -1
  74. package/utils/count.d.ts +2 -0
  75. package/utils/count.js +23 -0
  76. package/utils/count.js.map +1 -0
  77. package/utils/createEntity.d.ts +53 -0
  78. package/utils/createEntity.js +61 -0
  79. package/utils/createEntity.js.map +1 -0
  80. package/utils/createTable.d.ts +7 -0
  81. package/utils/createTable.js +29 -0
  82. package/utils/createTable.js.map +1 -0
  83. package/utils/cursor.js +2 -6
  84. package/utils/cursor.js.map +1 -1
  85. package/utils/delete.d.ts +10 -0
  86. package/utils/delete.js +18 -0
  87. package/utils/delete.js.map +1 -0
  88. package/utils/filter.js +7 -39
  89. package/utils/filter.js.map +1 -1
  90. package/utils/get.d.ts +3 -2
  91. package/utils/get.js +16 -7
  92. package/utils/get.js.map +1 -1
  93. package/utils/index.d.ts +17 -0
  94. package/utils/index.js +194 -0
  95. package/utils/index.js.map +1 -0
  96. package/utils/listResponse.js +3 -5
  97. package/utils/listResponse.js.map +1 -1
  98. package/utils/put.d.ts +11 -0
  99. package/utils/put.js +18 -0
  100. package/utils/put.js.map +1 -0
  101. package/utils/query.d.ts +12 -5
  102. package/utils/query.js +48 -29
  103. package/utils/query.js.map +1 -1
  104. package/utils/scan.d.ts +33 -0
  105. package/utils/scan.js +58 -0
  106. package/utils/scan.js.map +1 -0
  107. package/utils/sort.js +3 -18
  108. package/utils/sort.js.map +1 -1
  109. package/utils/table.js +2 -5
  110. package/utils/table.js.map +1 -1
  111. package/utils/update.d.ts +11 -0
  112. package/utils/update.js +18 -0
  113. package/utils/update.js.map +1 -0
  114. package/BatchProcess.d.ts +0 -47
  115. package/BatchProcess.js +0 -198
  116. package/BatchProcess.js.map +0 -1
  117. package/QueryGenerator.d.ts +0 -21
  118. package/QueryGenerator.js +0 -78
  119. package/QueryGenerator.js.map +0 -1
  120. package/operators/comparison/beginsWith.d.ts +0 -3
  121. package/operators/comparison/beginsWith.js +0 -24
  122. package/operators/comparison/beginsWith.js.map +0 -1
  123. package/operators/comparison/between.d.ts +0 -3
  124. package/operators/comparison/between.js +0 -30
  125. package/operators/comparison/between.js.map +0 -1
  126. package/operators/comparison/eq.d.ts +0 -3
  127. package/operators/comparison/eq.js +0 -34
  128. package/operators/comparison/eq.js.map +0 -1
  129. package/operators/comparison/gt.d.ts +0 -3
  130. package/operators/comparison/gt.js +0 -24
  131. package/operators/comparison/gt.js.map +0 -1
  132. package/operators/comparison/gte.d.ts +0 -3
  133. package/operators/comparison/gte.js +0 -24
  134. package/operators/comparison/gte.js.map +0 -1
  135. package/operators/comparison/lt.d.ts +0 -3
  136. package/operators/comparison/lt.js +0 -24
  137. package/operators/comparison/lt.js.map +0 -1
  138. package/operators/comparison/lte.d.ts +0 -3
  139. package/operators/comparison/lte.js +0 -24
  140. package/operators/comparison/lte.js.map +0 -1
  141. package/operators/index.d.ts +0 -12
  142. package/operators/index.js +0 -39
  143. package/operators/index.js.map +0 -1
  144. package/operators/logical/and.d.ts +0 -3
  145. package/operators/logical/and.js +0 -63
  146. package/operators/logical/and.js.map +0 -1
  147. package/operators/logical/or.d.ts +0 -3
  148. package/operators/logical/or.js +0 -63
  149. package/operators/logical/or.js.map +0 -1
  150. package/statements/createKeyConditionExpressionArgs.d.ts +0 -15
  151. package/statements/createKeyConditionExpressionArgs.js +0 -52
  152. package/statements/createKeyConditionExpressionArgs.js.map +0 -1
  153. package/statements/processStatement.d.ts +0 -3
  154. package/statements/processStatement.js +0 -42
  155. package/statements/processStatement.js.map +0 -1
@@ -1,35 +1,19 @@
1
- /**
2
- * Remove this when no apps are using our internal db drivers anymore
3
- */
4
- import { DocumentClient } from "aws-sdk/clients/dynamodb";
5
- import BatchProcess from "./BatchProcess";
6
- import { DbDriver, Args, Result, ArgsBatch } from "@webiny/db";
7
- declare type ConstructorArgs = {
8
- documentClient?: DocumentClient;
9
- };
10
- interface ReadLogsParams {
11
- table: string;
12
- }
13
- interface CreateLogParams {
14
- id: string;
15
- operation: string;
16
- /**
17
- * TODO: determine the data type.
18
- */
19
- data: any;
20
- table: string;
1
+ import { DynamoDBClient } from "@webiny/aws-sdk/client-dynamodb";
2
+ import { DbDriver, Result } from "@webiny/db";
3
+ interface ConstructorArgs {
4
+ documentClient: DynamoDBClient;
21
5
  }
22
6
  declare class DynamoDbDriver implements DbDriver {
23
- batchProcesses: Record<string, BatchProcess>;
24
- documentClient: DocumentClient;
25
- constructor({ documentClient }?: ConstructorArgs);
26
- getClient(): DocumentClient;
27
- create({ table, data, meta, __batch: batch }: Args): Promise<Result>;
28
- update({ query, data, table, meta, __batch: batch }: Args): Promise<Result>;
29
- delete({ query, table, meta, __batch: batch }: Args): Promise<Result>;
30
- read<T>({ table, query, sort, limit, keys, meta, __batch: batch }: Args): Promise<Result<T[]>>;
31
- createLog({ id, operation, data, table }: CreateLogParams): Promise<Result>;
32
- readLogs<T>({ table }: ReadLogsParams): Promise<Result<T[]>>;
33
- getBatchProcess(__batch: ArgsBatch): BatchProcess;
7
+ batchProcesses: Record<string, any>;
8
+ documentClient: DynamoDBClient;
9
+ constructor({ documentClient }: ConstructorArgs);
10
+ getClient(): DynamoDBClient;
11
+ create(): Promise<Result>;
12
+ update(): Promise<Result>;
13
+ delete(): Promise<Result>;
14
+ read<T>(): Promise<Result<T[]>>;
15
+ createLog(): Promise<Result>;
16
+ readLogs<T>(): Promise<Result<T[]>>;
17
+ getBatchProcess(): void;
34
18
  }
35
19
  export default DynamoDbDriver;
package/DynamoDbDriver.js CHANGED
@@ -1,274 +1,42 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _dynamodb = require("aws-sdk/clients/dynamodb");
15
-
16
- var _BatchProcess = _interopRequireDefault(require("./BatchProcess"));
17
-
18
- var _QueryGenerator = _interopRequireDefault(require("./QueryGenerator"));
19
-
20
- /**
21
- * Remove this when no apps are using our internal db drivers anymore
22
- */
23
- // @ts-nocheck
24
- const LOG_KEYS = [{
25
- primary: true,
26
- unique: true,
27
- name: "primary",
28
- fields: [{
29
- name: "PK"
30
- }, {
31
- name: "SK"
32
- }]
33
- }];
34
-
35
7
  class DynamoDbDriver {
36
8
  constructor({
37
9
  documentClient
38
- } = {}) {
39
- (0, _defineProperty2.default)(this, "batchProcesses", void 0);
40
- (0, _defineProperty2.default)(this, "documentClient", void 0);
10
+ }) {
41
11
  this.batchProcesses = {};
42
- this.documentClient = documentClient || new _dynamodb.DocumentClient();
12
+ this.documentClient = documentClient;
43
13
  }
44
-
45
14
  getClient() {
46
15
  return this.documentClient;
47
16
  }
48
-
49
- async create({
50
- table,
51
- data,
52
- meta,
53
- __batch: batch
54
- }) {
55
- if (!batch) {
56
- const result = await this.documentClient.put({
57
- TableName: table,
58
- Item: data,
59
- ReturnConsumedCapacity: meta ? "TOTAL" : "NONE"
60
- }).promise();
61
- return [true, {
62
- response: result.$response
63
- }];
64
- }
65
-
66
- const batchProcess = this.getBatchProcess(batch);
67
- batchProcess.addBatchWrite({
68
- table,
69
- data
70
- });
71
-
72
- if (batchProcess.allOperationsAdded()) {
73
- batchProcess.startExecution();
74
- } else {
75
- await batchProcess.waitStartExecution();
76
- }
77
-
78
- await batchProcess.waitExecution();
79
- return [true, {
80
- response: batchProcess.response
81
- }];
17
+ async create() {
18
+ return [true, {}];
82
19
  }
83
-
84
- async update({
85
- query,
86
- data,
87
- table,
88
- meta,
89
- __batch: batch
90
- }) {
91
- if (!batch) {
92
- const update = {
93
- UpdateExpression: "SET ",
94
- ExpressionAttributeNames: {},
95
- ExpressionAttributeValues: {}
96
- };
97
- const updateExpression = [];
98
-
99
- for (const key in data) {
100
- updateExpression.push(`#${key} = :${key}`);
101
- update.ExpressionAttributeNames[`#${key}`] = key;
102
- update.ExpressionAttributeValues[`:${key}`] = data[key];
103
- }
104
-
105
- update.UpdateExpression += updateExpression.join(", ");
106
- const result = await this.documentClient.update((0, _objectSpread2.default)({
107
- TableName: table,
108
- Key: query,
109
- ReturnConsumedCapacity: meta ? "TOTAL" : "NONE"
110
- }, update)).promise();
111
- return [true, {
112
- response: result.$response
113
- }];
114
- }
115
-
116
- const batchProcess = this.getBatchProcess(batch);
117
- batchProcess.addBatchWrite({
118
- table,
119
- data
120
- });
121
-
122
- if (batchProcess.allOperationsAdded()) {
123
- batchProcess.startExecution();
124
- } else {
125
- await batchProcess.waitStartExecution();
126
- }
127
-
128
- await batchProcess.waitExecution();
129
- return [true, {
130
- response: batchProcess.response
131
- }];
20
+ async update() {
21
+ return [true, {}];
132
22
  }
133
-
134
- async delete({
135
- query,
136
- table,
137
- meta,
138
- __batch: batch
139
- }) {
140
- if (!batch) {
141
- const result = await this.documentClient.delete({
142
- TableName: table,
143
- Key: query,
144
- ReturnConsumedCapacity: meta ? "TOTAL" : "NONE"
145
- }).promise();
146
- return [true, {
147
- response: result.$response
148
- }];
149
- }
150
-
151
- const batchProcess = this.getBatchProcess(batch);
152
- batchProcess.addBatchDelete({
153
- table,
154
- query
155
- });
156
-
157
- if (batchProcess.allOperationsAdded()) {
158
- batchProcess.startExecution();
159
- } else {
160
- await batchProcess.waitStartExecution();
161
- }
162
-
163
- await batchProcess.waitExecution();
164
- return [true, {
165
- response: batchProcess.response
166
- }];
23
+ async delete() {
24
+ return [true, {}];
167
25
  }
168
-
169
- async read({
170
- table,
171
- query,
172
- sort,
173
- limit,
174
- keys,
175
- meta,
176
- __batch: batch
177
- }) {
178
- if (!batch) {
179
- const queryGenerator = new _QueryGenerator.default();
180
- const queryParams = queryGenerator.generate({
181
- query,
182
- keys,
183
- sort,
184
- limit,
185
- tableName: table
186
- });
187
- const response = await this.documentClient.query((0, _objectSpread2.default)((0, _objectSpread2.default)({}, queryParams), {}, {
188
- ReturnConsumedCapacity: meta ? "TOTAL" : "NONE"
189
- })).promise();
190
-
191
- if (Array.isArray(response.Items)) {
192
- return [response.Items, {
193
- response: response.$response
194
- }];
195
- }
196
-
197
- return [[], {
198
- response: response.$response
199
- }];
200
- } // DynamoDb doesn't support batch queries, so we can immediately assume the GetRequest operation.
201
-
202
-
203
- const batchProcess = this.getBatchProcess(batch);
204
- const getResult = batchProcess.addBatchGet({
205
- table,
206
- query
207
- });
208
-
209
- if (batchProcess.allOperationsAdded()) {
210
- batchProcess.startExecution();
211
- } else {
212
- await batchProcess.waitStartExecution();
213
- }
214
-
215
- await batchProcess.waitExecution();
216
- const result = getResult();
217
-
218
- if (result) {
219
- return [[result], {
220
- response: batchProcess.response
221
- }];
222
- }
223
-
224
- return [[], {
225
- response: batchProcess.response
226
- }];
26
+ async read() {
27
+ return [[], {}];
227
28
  }
228
-
229
- async createLog({
230
- id,
231
- operation,
232
- data,
233
- table
234
- }) {
235
- await this.create({
236
- table: table,
237
- keys: LOG_KEYS,
238
- data: (0, _objectSpread2.default)({
239
- PK: "log",
240
- SK: id,
241
- id,
242
- operation
243
- }, data)
244
- });
29
+ async createLog() {
245
30
  return [true, {}];
246
31
  }
247
-
248
- async readLogs({
249
- table
250
- }) {
251
- return this.read({
252
- table,
253
- keys: LOG_KEYS,
254
- query: {
255
- PK: "log",
256
- SK: {
257
- $gte: " "
258
- }
259
- }
260
- });
32
+ async readLogs() {
33
+ return this.read();
261
34
  }
262
-
263
- getBatchProcess(__batch) {
264
- if (!this.batchProcesses[__batch.instance.id]) {
265
- this.batchProcesses[__batch.instance.id] = new _BatchProcess.default(__batch.instance, this.documentClient);
266
- }
267
-
268
- return this.batchProcesses[__batch.instance.id];
35
+ getBatchProcess() {
36
+ // not empty
269
37
  }
270
-
271
38
  }
272
-
273
39
  var _default = DynamoDbDriver;
274
- exports.default = _default;
40
+ exports.default = _default;
41
+
42
+ //# sourceMappingURL=DynamoDbDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LOG_KEYS","primary","unique","name","fields","DynamoDbDriver","constructor","documentClient","batchProcesses","DocumentClient","getClient","create","table","data","meta","__batch","batch","result","put","TableName","Item","ReturnConsumedCapacity","promise","response","$response","batchProcess","getBatchProcess","addBatchWrite","allOperationsAdded","startExecution","waitStartExecution","waitExecution","update","query","UpdateExpression","ExpressionAttributeNames","ExpressionAttributeValues","updateExpression","key","push","join","Key","delete","addBatchDelete","read","sort","limit","keys","queryGenerator","QueryGenerator","queryParams","generate","tableName","Array","isArray","Items","getResult","addBatchGet","createLog","id","operation","PK","SK","readLogs","$gte","instance","BatchProcess"],"sources":["DynamoDbDriver.ts"],"sourcesContent":["/**\n * Remove this when no apps are using our internal db drivers anymore\n */\n// @ts-nocheck\nimport { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport BatchProcess from \"./BatchProcess\";\nimport QueryGenerator from \"./QueryGenerator\";\nimport { DbDriver, Args, Result, ArgsBatch } from \"@webiny/db\";\nimport { QueryKeys } from \"~/types\";\n\ntype ConstructorArgs = {\n documentClient?: DocumentClient;\n};\n\nconst LOG_KEYS: QueryKeys = [\n {\n primary: true,\n unique: true,\n name: \"primary\",\n fields: [{ name: \"PK\" }, { name: \"SK\" }]\n }\n];\n\ninterface Update {\n UpdateExpression: string;\n ExpressionAttributeNames: Record<string, any>;\n ExpressionAttributeValues: Record<string, any>;\n}\n\ninterface ReadLogsParams {\n table: string;\n}\n\ninterface CreateLogParams {\n id: string;\n operation: string;\n /**\n * TODO: determine the data type.\n */\n data: any;\n table: string;\n}\n\nclass DynamoDbDriver implements DbDriver {\n batchProcesses: Record<string, BatchProcess>;\n documentClient: DocumentClient;\n constructor({ documentClient }: ConstructorArgs = {}) {\n this.batchProcesses = {};\n this.documentClient = documentClient || new DocumentClient();\n }\n\n getClient() {\n return this.documentClient;\n }\n\n async create({ table, data, meta, __batch: batch }: Args): Promise<Result> {\n if (!batch) {\n const result = await this.documentClient\n .put({\n TableName: table,\n Item: data,\n ReturnConsumedCapacity: meta ? \"TOTAL\" : \"NONE\"\n })\n .promise();\n return [true, { response: result.$response }];\n }\n\n const batchProcess = this.getBatchProcess(batch);\n batchProcess.addBatchWrite({ table, data });\n\n if (batchProcess.allOperationsAdded()) {\n batchProcess.startExecution();\n } else {\n await batchProcess.waitStartExecution();\n }\n\n await batchProcess.waitExecution();\n\n return [true, { response: batchProcess.response }];\n }\n\n async update({ query, data, table, meta, __batch: batch }: Args): Promise<Result> {\n if (!batch) {\n const update: Update = {\n UpdateExpression: \"SET \",\n ExpressionAttributeNames: {},\n ExpressionAttributeValues: {}\n };\n\n const updateExpression = [];\n for (const key in data) {\n updateExpression.push(`#${key} = :${key}`);\n update.ExpressionAttributeNames[`#${key}`] = key;\n update.ExpressionAttributeValues[`:${key}`] = data[key];\n }\n\n update.UpdateExpression += updateExpression.join(\", \");\n\n const result = await this.documentClient\n .update({\n TableName: table,\n Key: query,\n ReturnConsumedCapacity: meta ? \"TOTAL\" : \"NONE\",\n ...update\n })\n .promise();\n\n return [true, { response: result.$response }];\n }\n\n const batchProcess = this.getBatchProcess(batch);\n\n batchProcess.addBatchWrite({\n table,\n data\n });\n\n if (batchProcess.allOperationsAdded()) {\n batchProcess.startExecution();\n } else {\n await batchProcess.waitStartExecution();\n }\n\n await batchProcess.waitExecution();\n\n return [true, { response: batchProcess.response }];\n }\n\n async delete({ query, table, meta, __batch: batch }: Args): Promise<Result> {\n if (!batch) {\n const result = await this.documentClient\n .delete({\n TableName: table,\n Key: query,\n ReturnConsumedCapacity: meta ? \"TOTAL\" : \"NONE\"\n })\n .promise();\n\n return [true, { response: result.$response }];\n }\n\n const batchProcess = this.getBatchProcess(batch);\n batchProcess.addBatchDelete({\n table,\n query\n });\n\n if (batchProcess.allOperationsAdded()) {\n batchProcess.startExecution();\n } else {\n await batchProcess.waitStartExecution();\n }\n\n await batchProcess.waitExecution();\n\n return [true, { response: batchProcess.response }];\n }\n\n async read<T>({\n table,\n query,\n sort,\n limit,\n keys,\n meta,\n __batch: batch\n }: Args): Promise<Result<T[]>> {\n if (!batch) {\n const queryGenerator = new QueryGenerator();\n const queryParams = queryGenerator.generate({\n query,\n keys,\n sort,\n limit,\n tableName: table\n });\n\n const response = await this.documentClient\n .query({ ...queryParams, ReturnConsumedCapacity: meta ? \"TOTAL\" : \"NONE\" })\n .promise();\n\n if (Array.isArray(response.Items)) {\n return [response.Items as T[], { response: response.$response }];\n }\n return [[], { response: response.$response }];\n }\n\n // DynamoDb doesn't support batch queries, so we can immediately assume the GetRequest operation.\n const batchProcess = this.getBatchProcess(batch);\n const getResult = batchProcess.addBatchGet({\n table,\n query\n });\n\n if (batchProcess.allOperationsAdded()) {\n batchProcess.startExecution();\n } else {\n await batchProcess.waitStartExecution();\n }\n\n await batchProcess.waitExecution();\n\n const result = getResult() as T;\n if (result) {\n return [[result], { response: batchProcess.response }];\n }\n\n return [[], { response: batchProcess.response }];\n }\n\n async createLog({ id, operation, data, table }: CreateLogParams): Promise<Result> {\n await this.create({\n table: table,\n keys: LOG_KEYS,\n data: {\n PK: \"log\",\n SK: id,\n id,\n operation,\n ...data\n }\n });\n\n return [true, {}];\n }\n\n async readLogs<T>({ table }: ReadLogsParams) {\n return this.read<T>({\n table,\n keys: LOG_KEYS,\n query: {\n PK: \"log\",\n SK: { $gte: \" \" }\n }\n });\n }\n\n getBatchProcess(__batch: ArgsBatch): BatchProcess {\n if (!this.batchProcesses[__batch.instance.id]) {\n this.batchProcesses[__batch.instance.id] = new BatchProcess(\n __batch.instance,\n this.documentClient\n );\n }\n\n return this.batchProcesses[__batch.instance.id];\n }\n}\n\nexport default DynamoDbDriver;\n"],"mappings":"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"}
1
+ {"version":3,"names":["DynamoDbDriver","constructor","documentClient","batchProcesses","getClient","create","update","delete","read","createLog","readLogs","getBatchProcess","_default","exports","default"],"sources":["DynamoDbDriver.ts"],"sourcesContent":["import { DynamoDBClient } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { DbDriver, Result } from \"@webiny/db\";\n\ninterface ConstructorArgs {\n documentClient: DynamoDBClient;\n}\n\nclass DynamoDbDriver implements DbDriver {\n batchProcesses: Record<string, any>;\n documentClient: DynamoDBClient;\n constructor({ documentClient }: ConstructorArgs) {\n this.batchProcesses = {};\n this.documentClient = documentClient;\n }\n\n getClient() {\n return this.documentClient;\n }\n async create(): Promise<Result> {\n return [true, {}];\n }\n\n async update(): Promise<Result> {\n return [true, {}];\n }\n\n async delete(): Promise<Result> {\n return [true, {}];\n }\n\n async read<T>(): Promise<Result<T[]>> {\n return [[], {}];\n }\n\n async createLog(): Promise<Result> {\n return [true, {}];\n }\n\n async readLogs<T>() {\n return this.read<T>();\n }\n\n getBatchProcess() {\n // not empty\n }\n}\n\nexport default DynamoDbDriver;\n"],"mappings":";;;;;;AAOA,MAAMA,cAAc,CAAqB;EAGrCC,WAAWA,CAAC;IAAEC;EAAgC,CAAC,EAAE;IAC7C,IAAI,CAACC,cAAc,GAAG,CAAC,CAAC;IACxB,IAAI,CAACD,cAAc,GAAGA,cAAc;EACxC;EAEAE,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACF,cAAc;EAC9B;EACA,MAAMG,MAAMA,CAAA,EAAoB;IAC5B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;EACrB;EAEA,MAAMC,MAAMA,CAAA,EAAoB;IAC5B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;EACrB;EAEA,MAAMC,MAAMA,CAAA,EAAoB;IAC5B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;EACrB;EAEA,MAAMC,IAAIA,CAAA,EAA4B;IAClC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;EACnB;EAEA,MAAMC,SAASA,CAAA,EAAoB;IAC/B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;EACrB;EAEA,MAAMC,QAAQA,CAAA,EAAM;IAChB,OAAO,IAAI,CAACF,IAAI,CAAI,CAAC;EACzB;EAEAG,eAAeA,CAAA,EAAG;IACd;EAAA;AAER;AAAC,IAAAC,QAAA,GAEcZ,cAAc;AAAAa,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
package/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  import { default as DynamoDbDriver } from "./DynamoDbDriver";
2
+ export * from "./utils";
3
+ export { DbItem } from "./types";
2
4
  export { DynamoDbDriver };
package/index.js CHANGED
@@ -1,15 +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
  });
7
+ var _exportNames = {
8
+ DynamoDbDriver: true,
9
+ DbItem: true
10
+ };
11
+ Object.defineProperty(exports, "DbItem", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _types.DbItem;
15
+ }
16
+ });
8
17
  Object.defineProperty(exports, "DynamoDbDriver", {
9
18
  enumerable: true,
10
19
  get: function () {
11
20
  return _DynamoDbDriver.default;
12
21
  }
13
22
  });
23
+ var _DynamoDbDriver = _interopRequireDefault(require("./DynamoDbDriver"));
24
+ var _utils = require("./utils");
25
+ Object.keys(_utils).forEach(function (key) {
26
+ if (key === "default" || key === "__esModule") return;
27
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
28
+ if (key in exports && exports[key] === _utils[key]) return;
29
+ Object.defineProperty(exports, key, {
30
+ enumerable: true,
31
+ get: function () {
32
+ return _utils[key];
33
+ }
34
+ });
35
+ });
36
+ var _types = require("./types");
14
37
 
15
- var _DynamoDbDriver = _interopRequireDefault(require("./DynamoDbDriver"));
38
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["import { default as DynamoDbDriver } from \"./DynamoDbDriver\";\n\nexport { DynamoDbDriver };\n"],"mappings":";;;;;;;;;;;;;;AAAA"}
1
+ {"version":3,"names":["_DynamoDbDriver","_interopRequireDefault","require","_utils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types"],"sources":["index.ts"],"sourcesContent":["import { default as DynamoDbDriver } from \"./DynamoDbDriver\";\n\nexport * from \"./utils\";\nexport { DbItem } from \"./types\";\n\nexport { DynamoDbDriver };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAd,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/db-dynamodb",
3
- "version": "0.0.0-unstable.d7f521b032",
3
+ "version": "0.0.0-unstable.de38392959",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,28 +10,29 @@
10
10
  "author": "Webiny Ltd",
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
- "@webiny/api": "0.0.0-unstable.d7f521b032",
14
- "@webiny/db": "0.0.0-unstable.d7f521b032",
15
- "@webiny/error": "0.0.0-unstable.d7f521b032",
16
- "@webiny/handler-db": "0.0.0-unstable.d7f521b032",
17
- "@webiny/plugins": "0.0.0-unstable.d7f521b032",
13
+ "@webiny/api": "0.0.0-unstable.de38392959",
14
+ "@webiny/aws-sdk": "0.0.0-unstable.de38392959",
15
+ "@webiny/db": "0.0.0-unstable.de38392959",
16
+ "@webiny/error": "0.0.0-unstable.de38392959",
17
+ "@webiny/handler-db": "0.0.0-unstable.de38392959",
18
+ "@webiny/plugins": "0.0.0-unstable.de38392959",
18
19
  "date-fns": "2.29.3",
19
20
  "dot-prop": "6.0.1",
20
- "fuse.js": "6.6.2",
21
+ "dynamodb-toolbox": "0.9.2",
22
+ "fuse.js": "7.0.0",
21
23
  "is-number": "7.0.0",
22
24
  "lodash": "4.17.21"
23
25
  },
24
26
  "devDependencies": {
25
- "@babel/cli": "^7.19.3",
26
- "@babel/core": "^7.19.3",
27
- "@types/is-number": "^7.0.2",
28
- "@webiny/cli": "^0.0.0-unstable.d7f521b032",
29
- "@webiny/project-utils": "^0.0.0-unstable.d7f521b032",
30
- "dynamodb-toolbox": "^0.3.5",
31
- "jest": "^28.1.0",
32
- "jest-dynalite": "^3.2.0",
33
- "rimraf": "^3.0.2",
34
- "ttypescript": "^1.5.12",
27
+ "@babel/cli": "7.22.6",
28
+ "@babel/core": "7.22.8",
29
+ "@types/is-number": "7.0.3",
30
+ "@webiny/cli": "0.0.0-unstable.de38392959",
31
+ "@webiny/project-utils": "0.0.0-unstable.de38392959",
32
+ "jest": "29.5.0",
33
+ "jest-dynalite": "3.6.1",
34
+ "rimraf": "3.0.2",
35
+ "ttypescript": "1.5.15",
35
36
  "typescript": "4.7.4"
36
37
  },
37
38
  "publishConfig": {
@@ -42,5 +43,5 @@
42
43
  "build": "yarn webiny run build",
43
44
  "watch": "yarn webiny run watch"
44
45
  },
45
- "gitHead": "d7f521b0325964664dbeb6d2d07e2b6518e53841"
46
+ "gitHead": "de38392959f2692d1feb08945a3588cd80e4924c"
46
47
  }
@@ -1,11 +1,9 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- import { DynamoDBTypes } from "dynamodb-toolbox/dist/classes/Table";
3
- import { EntityAttributeConfig, EntityCompositeAttributes } from "dynamodb-toolbox/dist/classes/Entity";
4
- export declare type DefinitionParams = DynamoDBTypes | EntityAttributeConfig | EntityCompositeAttributes;
2
+ import { AttributeDefinition } from "../../toolbox";
5
3
  export interface AttributePluginParams {
6
4
  entity: string;
7
5
  attribute: string;
8
- params: DefinitionParams;
6
+ params: AttributeDefinition;
9
7
  }
10
8
  export declare abstract class AttributePlugin extends Plugin {
11
9
  static readonly type: string;
@@ -15,6 +13,6 @@ export declare abstract class AttributePlugin extends Plugin {
15
13
  get entity(): string;
16
14
  get attribute(): string;
17
15
  constructor({ entity, attribute, params }: AttributePluginParams);
18
- getDefinition(): Record<string, DefinitionParams>;
16
+ getDefinition(): Record<string, AttributeDefinition>;
19
17
  private validateReserved;
20
18
  }
@@ -1,61 +1,46 @@
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.AttributePlugin = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _plugins = require("@webiny/plugins");
13
-
14
8
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
9
+ var _plugins = require("@webiny/plugins");
16
10
  const reservedFields = ["PK", "SK", "index", "data"];
17
-
18
11
  class AttributePlugin extends _plugins.Plugin {
12
+ static type = "db.dynamodb.attribute";
19
13
  get entity() {
20
14
  return this._entity;
21
15
  }
22
-
23
16
  get attribute() {
24
17
  return this._attribute;
25
18
  }
26
-
27
19
  constructor({
28
20
  entity,
29
21
  attribute,
30
22
  params
31
23
  }) {
32
24
  super();
33
- (0, _defineProperty2.default)(this, "_entity", void 0);
34
- (0, _defineProperty2.default)(this, "_attribute", void 0);
35
- (0, _defineProperty2.default)(this, "_params", void 0);
36
25
  this.validateReserved(attribute);
37
26
  this._entity = entity;
38
27
  this._attribute = attribute;
39
28
  this._params = params;
40
29
  }
41
-
42
30
  getDefinition() {
43
31
  return {
44
32
  [this.attribute]: this._params
45
33
  };
46
34
  }
47
-
48
35
  validateReserved(attribute) {
49
36
  if (reservedFields.includes(attribute) === false) {
50
37
  return;
51
38
  }
52
-
53
39
  throw new _error.default(`Attribute name "${attribute}" is not allowed.`, "ATTRIBUTE_NOT_ALLOWED", {
54
40
  attribute
55
41
  });
56
42
  }
57
-
58
43
  }
59
-
60
44
  exports.AttributePlugin = AttributePlugin;
61
- (0, _defineProperty2.default)(AttributePlugin, "type", "db.dynamodb.attribute");
45
+
46
+ //# sourceMappingURL=AttributePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["reservedFields","AttributePlugin","Plugin","entity","_entity","attribute","_attribute","constructor","params","validateReserved","_params","getDefinition","includes","WebinyError"],"sources":["AttributePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\nimport { DynamoDBTypes } from \"dynamodb-toolbox/dist/classes/Table\";\nimport {\n EntityAttributeConfig,\n EntityCompositeAttributes\n} from \"dynamodb-toolbox/dist/classes/Entity\";\nconst reservedFields = [\"PK\", \"SK\", \"index\", \"data\"];\n\nexport type DefinitionParams = DynamoDBTypes | EntityAttributeConfig | EntityCompositeAttributes;\n\nexport interface AttributePluginParams {\n entity: string;\n attribute: string;\n params: DefinitionParams;\n}\n\nexport abstract class AttributePlugin extends Plugin {\n public static override readonly type: string = \"db.dynamodb.attribute\";\n private readonly _entity: string;\n private readonly _attribute: string;\n private readonly _params: DefinitionParams;\n\n public get entity(): string {\n return this._entity;\n }\n\n public get attribute(): string {\n return this._attribute;\n }\n\n public constructor({ entity, attribute, params }: AttributePluginParams) {\n super();\n\n this.validateReserved(attribute);\n\n this._entity = entity;\n this._attribute = attribute;\n this._params = params;\n }\n\n public getDefinition(): Record<string, DefinitionParams> {\n return {\n [this.attribute]: this._params\n };\n }\n\n private validateReserved(attribute: string): void {\n if (reservedFields.includes(attribute) === false) {\n return;\n }\n throw new WebinyError(\n `Attribute name \"${attribute}\" is not allowed.`,\n \"ATTRIBUTE_NOT_ALLOWED\",\n {\n attribute\n }\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAMA,MAAMA,cAAc,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,EAAsB,MAAtB,CAAvB;;AAUO,MAAeC,eAAf,SAAuCC,eAAvC,CAA8C;EAMhC,IAANC,MAAM,GAAW;IACxB,OAAO,KAAKC,OAAZ;EACH;;EAEmB,IAATC,SAAS,GAAW;IAC3B,OAAO,KAAKC,UAAZ;EACH;;EAEMC,WAAW,CAAC;IAAEJ,MAAF;IAAUE,SAAV;IAAqBG;EAArB,CAAD,EAAuD;IACrE;IADqE;IAAA;IAAA;IAGrE,KAAKC,gBAAL,CAAsBJ,SAAtB;IAEA,KAAKD,OAAL,GAAeD,MAAf;IACA,KAAKG,UAAL,GAAkBD,SAAlB;IACA,KAAKK,OAAL,GAAeF,MAAf;EACH;;EAEMG,aAAa,GAAqC;IACrD,OAAO;MACH,CAAC,KAAKN,SAAN,GAAkB,KAAKK;IADpB,CAAP;EAGH;;EAEOD,gBAAgB,CAACJ,SAAD,EAA0B;IAC9C,IAAIL,cAAc,CAACY,QAAf,CAAwBP,SAAxB,MAAuC,KAA3C,EAAkD;MAC9C;IACH;;IACD,MAAM,IAAIQ,cAAJ,CACD,mBAAkBR,SAAU,mBAD3B,EAEF,uBAFE,EAGF;MACIA;IADJ,CAHE,CAAN;EAOH;;AAzCgD;;;8BAA/BJ,e,UAC6B,uB"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_plugins","reservedFields","AttributePlugin","Plugin","type","entity","_entity","attribute","_attribute","constructor","params","validateReserved","_params","getDefinition","includes","WebinyError","exports"],"sources":["AttributePlugin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Plugin } from \"@webiny/plugins\";\nimport { AttributeDefinition } from \"~/toolbox\";\n\nconst reservedFields = [\"PK\", \"SK\", \"index\", \"data\"];\n\nexport interface AttributePluginParams {\n entity: string;\n attribute: string;\n params: AttributeDefinition;\n}\n\nexport abstract class AttributePlugin extends Plugin {\n public static override readonly type: string = \"db.dynamodb.attribute\";\n private readonly _entity: string;\n private readonly _attribute: string;\n private readonly _params: AttributeDefinition;\n\n public get entity(): string {\n return this._entity;\n }\n\n public get attribute(): string {\n return this._attribute;\n }\n\n public constructor({ entity, attribute, params }: AttributePluginParams) {\n super();\n\n this.validateReserved(attribute);\n\n this._entity = entity;\n this._attribute = attribute;\n this._params = params;\n }\n\n public getDefinition(): Record<string, AttributeDefinition> {\n return {\n [this.attribute]: this._params\n };\n }\n\n private validateReserved(attribute: string): void {\n if (reservedFields.includes(attribute) === false) {\n return;\n }\n throw new WebinyError(\n `Attribute name \"${attribute}\" is not allowed.`,\n \"ATTRIBUTE_NOT_ALLOWED\",\n {\n attribute\n }\n );\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAGA,MAAME,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AAQ7C,MAAeC,eAAe,SAASC,eAAM,CAAC;EACjD,OAAgCC,IAAI,GAAW,uBAAuB;EAKtE,IAAWC,MAAMA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACC,OAAO;EACvB;EAEA,IAAWC,SAASA,CAAA,EAAW;IAC3B,OAAO,IAAI,CAACC,UAAU;EAC1B;EAEOC,WAAWA,CAAC;IAAEJ,MAAM;IAAEE,SAAS;IAAEG;EAA8B,CAAC,EAAE;IACrE,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,gBAAgB,CAACJ,SAAS,CAAC;IAEhC,IAAI,CAACD,OAAO,GAAGD,MAAM;IACrB,IAAI,CAACG,UAAU,GAAGD,SAAS;IAC3B,IAAI,CAACK,OAAO,GAAGF,MAAM;EACzB;EAEOG,aAAaA,CAAA,EAAwC;IACxD,OAAO;MACH,CAAC,IAAI,CAACN,SAAS,GAAG,IAAI,CAACK;IAC3B,CAAC;EACL;EAEQD,gBAAgBA,CAACJ,SAAiB,EAAQ;IAC9C,IAAIN,cAAc,CAACa,QAAQ,CAACP,SAAS,CAAC,KAAK,KAAK,EAAE;MAC9C;IACJ;IACA,MAAM,IAAIQ,cAAW,CAChB,mBAAkBR,SAAU,mBAAkB,EAC/C,uBAAuB,EACvB;MACIA;IACJ,CACJ,CAAC;EACL;AACJ;AAACS,OAAA,CAAAd,eAAA,GAAAA,eAAA"}
@@ -1,54 +1,42 @@
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.DateTimeTransformPlugin = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
8
  var _ValueTransformPlugin = require("./ValueTransformPlugin");
13
-
14
9
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
10
  var _dateFns = require("date-fns");
17
-
18
11
  const transformDateTime = params => {
19
12
  const {
20
13
  value
21
14
  } = params;
22
-
23
- if (value === null) {
15
+ if (value === null || value === undefined) {
24
16
  return null;
25
- }
26
-
27
- if (value && typeof value.getTime === "function") {
17
+ } else if (typeof value === "string") {
18
+ const parsedDateTime = (0, _dateFns.parseISO)(value).getTime();
19
+ if (isNaN(parsedDateTime) === false) {
20
+ return parsedDateTime;
21
+ }
22
+ } else if (value instanceof Date || typeof value?.getTime === "function") {
28
23
  /**
29
- * In this case we assume this is a date object and we just get the time.
24
+ * In this case we assume this is a date object, and we just get the time.
30
25
  */
31
26
  return value.getTime();
32
27
  }
33
-
34
- const parsedDateTime = (0, _dateFns.parseISO)(value).getTime();
35
-
36
- if (isNaN(parsedDateTime) === false) {
37
- return parsedDateTime;
38
- }
39
-
40
28
  throw new _error.default("Could not parse given dateTime value.", "PARSE_DATE_ERROR", {
41
29
  value
42
30
  });
43
31
  };
44
-
45
32
  class DateTimeTransformPlugin extends _ValueTransformPlugin.ValueTransformPlugin {
46
33
  constructor(params) {
47
- super((0, _objectSpread2.default)({
48
- transform: transformDateTime
49
- }, params));
34
+ super({
35
+ transform: transformDateTime,
36
+ ...params
37
+ });
50
38
  }
51
-
52
39
  }
40
+ exports.DateTimeTransformPlugin = DateTimeTransformPlugin;
53
41
 
54
- exports.DateTimeTransformPlugin = DateTimeTransformPlugin;
42
+ //# sourceMappingURL=DateTimeTransformPlugin.js.map