@aws-amplify/datastore-storage-adapter 2.0.52 → 2.0.53

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 (48) hide show
  1. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +9 -0
  2. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
  3. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +195 -0
  4. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
  5. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/SQLiteAdapter/SQLiteAdapter.js +9 -0
  6. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/SQLiteAdapter/SQLiteAdapter.js.map +1 -0
  7. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/SQLiteAdapter/SQLiteDatabase.js +114 -0
  8. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/SQLiteAdapter/SQLiteDatabase.js.map +1 -0
  9. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/CommonSQLiteAdapter.js +240 -0
  10. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/CommonSQLiteAdapter.js.map +1 -0
  11. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/SQLiteUtils.js +349 -0
  12. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/SQLiteUtils.js.map +1 -0
  13. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/constants.js +6 -0
  14. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/constants.js.map +1 -0
  15. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/types.js +2 -0
  16. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/common/types.js.map +1 -0
  17. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/index.js +8 -0
  18. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/cjs/index.js.map +1 -0
  19. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
  20. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +6 -0
  21. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
  22. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
  23. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +193 -0
  24. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
  25. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/SQLiteAdapter/SQLiteAdapter.d.ts +3 -0
  26. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/SQLiteAdapter/SQLiteAdapter.js +6 -0
  27. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/SQLiteAdapter/SQLiteAdapter.js.map +1 -0
  28. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/SQLiteAdapter/SQLiteDatabase.d.ts +17 -0
  29. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/SQLiteAdapter/SQLiteDatabase.js +111 -0
  30. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/SQLiteAdapter/SQLiteDatabase.js.map +1 -0
  31. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/CommonSQLiteAdapter.d.ts +23 -0
  32. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/CommonSQLiteAdapter.js +236 -0
  33. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/CommonSQLiteAdapter.js.map +1 -0
  34. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/SQLiteUtils.d.ts +36 -0
  35. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/SQLiteUtils.js +331 -0
  36. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/SQLiteUtils.js.map +1 -0
  37. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/constants.d.ts +1 -0
  38. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/constants.js +3 -0
  39. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/constants.js.map +1 -0
  40. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/types.d.ts +16 -0
  41. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/types.js +1 -0
  42. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/common/types.js.map +1 -0
  43. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/index.d.ts +2 -0
  44. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/index.js +4 -0
  45. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/esm/index.js.map +1 -0
  46. package/.rollup.cache/home/runner/work/amplify-js/amplify-js/amplify-js/packages/datastore-storage-adapter/dist/meta/cjs.tsbuildinfo +1 -0
  47. package/CHANGELOG.md +4 -0
  48. package/package.json +4 -4
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteByPredicateStatement = exports.deleteByIdStatement = exports.queryOneStatement = exports.queryAllStatement = exports.limitClauseFromPagination = exports.orderByClauseFromSort = exports.whereClauseFromPredicate = exports.whereConditionFromPredicateObject = exports.queryByIdStatement = exports.modelUpdateStatement = exports.modelInsertStatement = exports.modelCreateTableStatement = exports.implicitAuthFieldsForModel = exports.generateSchemaStatements = exports.getSQLiteType = void 0;
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ const datastore_1 = require("@aws-amplify/datastore");
7
+ const { USER, isNonModelConstructor, isModelConstructor } = datastore_1.utils;
8
+ const keysFromModel = model => Object.keys(model)
9
+ .map(k => `"${k}"`)
10
+ .join(', ');
11
+ const valuesFromModel = (model) => {
12
+ const values = Object.values(model).map(prepareValueForDML);
13
+ const paramaterized = values.map(() => '?').join(', ');
14
+ return [paramaterized, values];
15
+ };
16
+ const updateSet = model => {
17
+ const values = [];
18
+ const paramaterized = Object.entries(model)
19
+ .filter(([k]) => k !== 'id')
20
+ .map(([k, v]) => {
21
+ values.push(prepareValueForDML(v));
22
+ return `"${k}"=?`;
23
+ })
24
+ .join(', ');
25
+ return [paramaterized, values];
26
+ };
27
+ function prepareValueForDML(value) {
28
+ const scalarTypes = ['string', 'number', 'boolean'];
29
+ const isScalarType = value === null || value === undefined || scalarTypes.includes(typeof value);
30
+ if (isScalarType) {
31
+ return value;
32
+ }
33
+ const isObjectType = typeof value === 'object' &&
34
+ (Object.getPrototypeOf(value).constructor === Object ||
35
+ isNonModelConstructor(Object.getPrototypeOf(value).constructor) ||
36
+ isModelConstructor(Object.getPrototypeOf(value).constructor));
37
+ if (Array.isArray(value) || isObjectType) {
38
+ return JSON.stringify(value);
39
+ }
40
+ return `${value}`;
41
+ }
42
+ function getSQLiteType(scalar) {
43
+ switch (scalar) {
44
+ case 'Boolean':
45
+ case 'Int':
46
+ case 'AWSTimestamp':
47
+ return 'INTEGER';
48
+ case 'ID':
49
+ case 'String':
50
+ case 'AWSDate':
51
+ case 'AWSTime':
52
+ case 'AWSDateTime':
53
+ case 'AWSEmail':
54
+ case 'AWSJSON':
55
+ case 'AWSURL':
56
+ case 'AWSPhone':
57
+ case 'AWSIPAddress':
58
+ return 'TEXT';
59
+ case 'Float':
60
+ return 'REAL';
61
+ default:
62
+ const _ = scalar;
63
+ throw new Error(`unknown type ${scalar}`);
64
+ }
65
+ }
66
+ exports.getSQLiteType = getSQLiteType;
67
+ function generateSchemaStatements(schema) {
68
+ return Object.keys(schema.namespaces).flatMap(namespaceName => {
69
+ const namespace = schema.namespaces[namespaceName];
70
+ const isUserModel = namespaceName === USER;
71
+ return Object.values(namespace.models).map(model => modelCreateTableStatement(model, isUserModel));
72
+ });
73
+ }
74
+ exports.generateSchemaStatements = generateSchemaStatements;
75
+ const implicitAuthFieldsForModel = (model) => {
76
+ if (!model.attributes || !model.attributes.length) {
77
+ return [];
78
+ }
79
+ const authRules = model.attributes.find(datastore_1.isModelAttributeAuth);
80
+ if (!authRules) {
81
+ return [];
82
+ }
83
+ const authFieldsForModel = authRules.properties.rules
84
+ .filter((rule) => rule.ownerField || rule.groupsField)
85
+ .map((rule) => rule.ownerField || rule.groupsField);
86
+ return authFieldsForModel.filter((authField) => {
87
+ const authFieldExplicitlyDefined = Object.values(model.fields).find((f) => f.name === authField);
88
+ return !authFieldExplicitlyDefined;
89
+ });
90
+ };
91
+ exports.implicitAuthFieldsForModel = implicitAuthFieldsForModel;
92
+ function modelCreateTableStatement(model, userModel = false) {
93
+ // implicitly defined auth fields, e.g., `owner`, `groupsField`, etc.
94
+ const implicitAuthFields = (0, exports.implicitAuthFieldsForModel)(model);
95
+ let fields = Object.values(model.fields).reduce((acc, field) => {
96
+ if ((0, datastore_1.isGraphQLScalarType)(field.type)) {
97
+ if (field.name === 'id') {
98
+ return [...acc, '"id" PRIMARY KEY NOT NULL'];
99
+ }
100
+ let columnParam = `"${field.name}" ${getSQLiteType(field.type)}`;
101
+ if (field.isRequired) {
102
+ columnParam += ' NOT NULL';
103
+ }
104
+ return [...acc, `${columnParam}`];
105
+ }
106
+ if ((0, datastore_1.isModelFieldType)(field.type)) {
107
+ let columnParam = `"${field.name}" TEXT`;
108
+ // add targetName as well as field name for BELONGS_TO relations
109
+ if ((0, datastore_1.isTargetNameAssociation)(field.association)) {
110
+ // check if this field has been explicitly defined in the model
111
+ const fkDefinedInModel = Object.values(model.fields).find((f) => f.name === field?.association?.targetName);
112
+ // if the FK is not explicitly defined in the model, we have to add it here
113
+ if (!fkDefinedInModel) {
114
+ const required = field.isRequired ? ' NOT NULL' : '';
115
+ columnParam += `, "${field.association.targetName}" TEXT${required}`;
116
+ }
117
+ }
118
+ // ignore isRequired param for model fields, since they will not contain
119
+ // the related data locally
120
+ return [...acc, `${columnParam}`];
121
+ }
122
+ // default to TEXT
123
+ let columnParam = `"${field.name}" TEXT`;
124
+ if (field.isRequired) {
125
+ columnParam += ' NOT NULL';
126
+ }
127
+ return [...acc, `${columnParam}`];
128
+ }, []);
129
+ implicitAuthFields.forEach((authField) => {
130
+ fields.push(`${authField} TEXT`);
131
+ });
132
+ if (userModel) {
133
+ fields = [
134
+ ...fields,
135
+ `"_version" INTEGER`,
136
+ `"_lastChangedAt" INTEGER`,
137
+ `"_deleted" INTEGER`,
138
+ ];
139
+ }
140
+ const createTableStatement = `CREATE TABLE IF NOT EXISTS "${model.name}" (${fields.join(', ')});`;
141
+ return createTableStatement;
142
+ }
143
+ exports.modelCreateTableStatement = modelCreateTableStatement;
144
+ function modelInsertStatement(model, tableName) {
145
+ const keys = keysFromModel(model);
146
+ const [paramaterized, values] = valuesFromModel(model);
147
+ const insertStatement = `INSERT INTO "${tableName}" (${keys}) VALUES (${paramaterized})`;
148
+ return [insertStatement, values];
149
+ }
150
+ exports.modelInsertStatement = modelInsertStatement;
151
+ function modelUpdateStatement(model, tableName) {
152
+ const [paramaterized, values] = updateSet(model);
153
+ const updateStatement = `UPDATE "${tableName}" SET ${paramaterized} WHERE id=?`;
154
+ return [updateStatement, [...values, model.id]];
155
+ }
156
+ exports.modelUpdateStatement = modelUpdateStatement;
157
+ function queryByIdStatement(id, tableName) {
158
+ return [`SELECT * FROM "${tableName}" WHERE "id" = ?`, [id]];
159
+ }
160
+ exports.queryByIdStatement = queryByIdStatement;
161
+ /*
162
+ Predicates supported by DataStore:
163
+
164
+ Strings: eq | ne | le | lt | ge | gt | contains | notContains | beginsWith | between
165
+ Numbers: eq | ne | le | lt | ge | gt | between
166
+ Lists: contains | notContains
167
+ */
168
+ const comparisonOperatorMap = {
169
+ eq: '=',
170
+ ne: '!=',
171
+ le: '<=',
172
+ lt: '<',
173
+ ge: '>=',
174
+ gt: '>',
175
+ };
176
+ const logicalOperatorMap = {
177
+ beginsWith: '= 1',
178
+ contains: '> 0',
179
+ notContains: '= 0',
180
+ between: 'BETWEEN',
181
+ };
182
+ /**
183
+ * If the given (operator, operand) indicate the need for a special `NULL` comparison,
184
+ * that `WHERE` clause condition will be returned. If not special `NULL` handling is
185
+ * needed, `null` will be returned, and the caller should construct the `WHERE`
186
+ * clause component using the normal operator map(s) and parameterization.
187
+ *
188
+ * @param operator "beginsWith" | "contains" | "notContains" | "between"
189
+ * | "eq" | "ne" | "le" | "lt" | "ge" | "gt"
190
+ * @param operand any
191
+ * @returns (string | null) The `WHERE` clause component or `null` if N/A.
192
+ */
193
+ function buildSpecialNullComparison(field, operator, operand) {
194
+ if (operand === null || operand === undefined) {
195
+ if (operator === 'eq') {
196
+ return `"${field}" IS NULL`;
197
+ }
198
+ else if (operator === 'ne') {
199
+ return `"${field}" IS NOT NULL`;
200
+ }
201
+ }
202
+ // no special null handling required
203
+ return null;
204
+ }
205
+ const whereConditionFromPredicateObject = ({ field, operator, operand, }) => {
206
+ const specialNullClause = buildSpecialNullComparison(field, operator, operand);
207
+ if (specialNullClause) {
208
+ return [specialNullClause, []];
209
+ }
210
+ const comparisonOperator = comparisonOperatorMap[operator];
211
+ if (comparisonOperator) {
212
+ return [`"${field}" ${comparisonOperator} ?`, [operand]];
213
+ }
214
+ const logicalOperatorKey = operator;
215
+ const logicalOperator = logicalOperatorMap[logicalOperatorKey];
216
+ let statement;
217
+ if (logicalOperator) {
218
+ let rightExp = [];
219
+ switch (logicalOperatorKey) {
220
+ case 'between':
221
+ rightExp = operand; // operand is a 2-tuple
222
+ statement = [
223
+ `"${field}" ${logicalOperator} ${rightExp
224
+ .map(_ => '?')
225
+ .join(' AND ')}`,
226
+ rightExp,
227
+ ];
228
+ break;
229
+ case 'beginsWith':
230
+ case 'contains':
231
+ case 'notContains':
232
+ statement = [`instr("${field}", ?) ${logicalOperator}`, [operand]];
233
+ break;
234
+ default:
235
+ const _ = logicalOperatorKey;
236
+ // Incorrect WHERE clause can result in data loss
237
+ throw new Error('Cannot map predicate to a valid WHERE clause');
238
+ }
239
+ return statement;
240
+ }
241
+ };
242
+ exports.whereConditionFromPredicateObject = whereConditionFromPredicateObject;
243
+ function whereClauseFromPredicate(predicate) {
244
+ const result = [];
245
+ const params = [];
246
+ recurse(predicate, result, params);
247
+ const whereClause = `WHERE ${result.join(' ')}`;
248
+ return [whereClause, params];
249
+ function recurse(predicate, result = [], params = []) {
250
+ if ((0, datastore_1.isPredicateGroup)(predicate)) {
251
+ const { type: groupType, predicates: groupPredicates } = predicate;
252
+ let filterType = '';
253
+ let isNegation = false;
254
+ switch (groupType) {
255
+ case 'not':
256
+ isNegation = true;
257
+ break;
258
+ case 'and':
259
+ filterType = 'AND';
260
+ break;
261
+ case 'or':
262
+ filterType = 'OR';
263
+ break;
264
+ default:
265
+ const _ = groupType;
266
+ throw new Error(`Invalid ${groupType}`);
267
+ }
268
+ const groupResult = [];
269
+ for (const p of groupPredicates) {
270
+ recurse(p, groupResult, params);
271
+ }
272
+ result.push(`${isNegation ? 'NOT' : ''}(${groupResult.join(` ${filterType} `)})`);
273
+ }
274
+ else if ((0, datastore_1.isPredicateObj)(predicate)) {
275
+ const [condition, conditionParams] = (0, exports.whereConditionFromPredicateObject)(predicate);
276
+ result.push(condition);
277
+ params.push(...conditionParams);
278
+ }
279
+ }
280
+ }
281
+ exports.whereClauseFromPredicate = whereClauseFromPredicate;
282
+ const sortDirectionMap = {
283
+ ASCENDING: 'ASC',
284
+ DESCENDING: 'DESC',
285
+ };
286
+ function orderByClauseFromSort(sortPredicate = []) {
287
+ const orderByParts = sortPredicate.map(({ field, sortDirection }) => `"${String(field)}" ${sortDirectionMap[sortDirection]}`);
288
+ // We always sort by _rowid_ last
289
+ orderByParts.push(`_rowid_ ${sortDirectionMap.ASCENDING}`);
290
+ return `ORDER BY ${orderByParts.join(', ')}`;
291
+ }
292
+ exports.orderByClauseFromSort = orderByClauseFromSort;
293
+ function limitClauseFromPagination(limit, page = 0) {
294
+ const params = [limit];
295
+ let clause = 'LIMIT ?';
296
+ if (page) {
297
+ const offset = limit * page;
298
+ params.push(offset);
299
+ clause += ' OFFSET ?';
300
+ }
301
+ return [clause, params];
302
+ }
303
+ exports.limitClauseFromPagination = limitClauseFromPagination;
304
+ function queryAllStatement(tableName, predicate, sort, limit, page) {
305
+ let statement = `SELECT * FROM "${tableName}"`;
306
+ const params = [];
307
+ if (predicate && predicate.predicates.length) {
308
+ const [whereClause, whereParams] = whereClauseFromPredicate(predicate);
309
+ statement += ` ${whereClause}`;
310
+ params.push(...whereParams);
311
+ }
312
+ const orderByClause = orderByClauseFromSort(sort);
313
+ statement += ` ${orderByClause}`;
314
+ if (limit) {
315
+ const [limitClause, limitParams] = limitClauseFromPagination(limit, page);
316
+ statement += ` ${limitClause}`;
317
+ params.push(...limitParams);
318
+ }
319
+ return [statement, params];
320
+ }
321
+ exports.queryAllStatement = queryAllStatement;
322
+ function queryOneStatement(firstOrLast, tableName) {
323
+ if (firstOrLast === datastore_1.QueryOne.FIRST) {
324
+ // ORDER BY rowid will no longer work as expected if a customer has
325
+ // a field by that name in their schema. We may want to enforce it
326
+ // as a reserved keyword in Codegen
327
+ return [`SELECT * FROM ${tableName} ORDER BY _rowid_ LIMIT 1`, []];
328
+ }
329
+ else {
330
+ return [`SELECT * FROM ${tableName} ORDER BY _rowid_ DESC LIMIT 1`, []];
331
+ }
332
+ }
333
+ exports.queryOneStatement = queryOneStatement;
334
+ function deleteByIdStatement(id, tableName) {
335
+ const deleteStatement = `DELETE FROM "${tableName}" WHERE "id"=?`;
336
+ return [deleteStatement, [id]];
337
+ }
338
+ exports.deleteByIdStatement = deleteByIdStatement;
339
+ function deleteByPredicateStatement(tableName, predicate) {
340
+ let statement = `DELETE FROM "${tableName}"`;
341
+ const params = [];
342
+ if (predicate && predicate.predicates.length) {
343
+ const [whereClause, whereParams] = whereClauseFromPredicate(predicate);
344
+ statement += ` ${whereClause}`;
345
+ params.push(...whereParams);
346
+ }
347
+ return [statement, params];
348
+ }
349
+ exports.deleteByPredicateStatement = deleteByPredicateStatement;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLiteUtils.js","sourceRoot":"","sources":["../../../src/common/SQLiteUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DB_NAME = void 0;
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ exports.DB_NAME = 'AmplifyDatastore';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACzB,QAAA,OAAO,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLiteAdapter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
+ // SPDX-License-Identifier: Apache-2.0
7
+ const SQLiteAdapter_1 = tslib_1.__importDefault(require("./SQLiteAdapter/SQLiteAdapter"));
8
+ exports.SQLiteAdapter = SQLiteAdapter_1.default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,0FAA0D;AACjD,wBADF,uBAAa,CACE"}
@@ -0,0 +1,3 @@
1
+ import { CommonSQLiteAdapter } from '../common/CommonSQLiteAdapter';
2
+ declare const ExpoSQLiteAdapter: CommonSQLiteAdapter;
3
+ export default ExpoSQLiteAdapter;
@@ -0,0 +1,6 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { CommonSQLiteAdapter } from '../common/CommonSQLiteAdapter';
4
+ import ExpoSQLiteDatabase from './ExpoSQLiteDatabase';
5
+ const ExpoSQLiteAdapter = new CommonSQLiteAdapter(new ExpoSQLiteDatabase());
6
+ export default ExpoSQLiteAdapter;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoSQLiteAdapter.js","sourceRoot":"","sources":["../../../src/ExpoSQLiteAdapter/ExpoSQLiteAdapter.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,iBAAiB,GAAwB,IAAI,mBAAmB,CACrE,IAAI,kBAAkB,EAAE,CACxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { PersistentModel } from '@aws-amplify/datastore';
2
+ import { CommonSQLiteDatabase, ParameterizedStatement } from '../common/types';
3
+ declare class ExpoSQLiteDatabase implements CommonSQLiteDatabase {
4
+ private db;
5
+ init(): Promise<void>;
6
+ createSchema(statements: string[]): Promise<void>;
7
+ clear(): Promise<void>;
8
+ get<T extends PersistentModel>(statement: string, params: (string | number)[]): Promise<T>;
9
+ getAll<T extends PersistentModel>(statement: string, params: (string | number)[]): Promise<T[]>;
10
+ save(statement: string, params: (string | number)[]): Promise<void>;
11
+ batchQuery<T = any>(queryParameterizedStatements?: Set<ParameterizedStatement>): Promise<T[]>;
12
+ batchSave(saveParameterizedStatements?: Set<ParameterizedStatement>, deleteParameterizedStatements?: Set<ParameterizedStatement>): Promise<void>;
13
+ selectAndDelete<T = any>(queryParameterizedStatement: ParameterizedStatement, deleteParameterizedStatement: ParameterizedStatement): Promise<T[]>;
14
+ private executeStatements;
15
+ private closeDB;
16
+ }
17
+ export default ExpoSQLiteDatabase;
@@ -0,0 +1,193 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { ConsoleLogger } from '@aws-amplify/core';
4
+ import { deleteAsync, documentDirectory } from 'expo-file-system';
5
+ import { openDatabase } from 'expo-sqlite';
6
+ import { DB_NAME } from '../common/constants';
7
+ const logger = new ConsoleLogger('ExpoSQLiteDatabase');
8
+ /*
9
+
10
+ Note:
11
+ ExpoSQLite transaction error callbacks require returning a boolean value to indicate whether the
12
+ error was handled or not. Returning a true value indicates the error was handled and does not
13
+ rollback the whole transaction.
14
+
15
+ */
16
+ class ExpoSQLiteDatabase {
17
+ async init() {
18
+ // only open database once.
19
+ if (!this.db) {
20
+ // As per expo docs version, description and size arguments are ignored,
21
+ // but are accepted by the function for compatibility with the WebSQL specification.
22
+ // Hence, we do not need those arguments.
23
+ this.db = openDatabase(DB_NAME);
24
+ }
25
+ }
26
+ createSchema(statements) {
27
+ return this.executeStatements(statements);
28
+ }
29
+ async clear() {
30
+ try {
31
+ logger.debug('Clearing database');
32
+ await this.closeDB();
33
+ // delete database is not supported by expo-sqlite.
34
+ // Database file needs to be deleted using deleteAsync from expo-file-system
35
+ await deleteAsync(`${documentDirectory}SQLite/${DB_NAME}`);
36
+ logger.debug('Database cleared');
37
+ }
38
+ catch (error) {
39
+ logger.warn('Error clearing the database.', error);
40
+ // open database if it was closed earlier and this.db was set to undefined.
41
+ this.init();
42
+ }
43
+ }
44
+ async get(statement, params) {
45
+ const results = await this.getAll(statement, params);
46
+ return results[0];
47
+ }
48
+ getAll(statement, params) {
49
+ return new Promise((resolve, reject) => {
50
+ this.db.readTransaction(transaction => {
51
+ transaction.executeSql(statement, params, (_, result) => {
52
+ resolve(result.rows._array || []);
53
+ }, (_, error) => {
54
+ reject(error);
55
+ logger.warn(error);
56
+ return true;
57
+ });
58
+ });
59
+ });
60
+ }
61
+ save(statement, params) {
62
+ return new Promise((resolve, reject) => {
63
+ this.db.transaction(transaction => {
64
+ transaction.executeSql(statement, params, () => {
65
+ resolve(null);
66
+ }, (_, error) => {
67
+ reject(error);
68
+ logger.warn(error);
69
+ return true;
70
+ });
71
+ });
72
+ });
73
+ }
74
+ batchQuery(queryParameterizedStatements = new Set()) {
75
+ return new Promise((resolveTransaction, rejectTransaction) => {
76
+ this.db.transaction(async (transaction) => {
77
+ try {
78
+ const results = await Promise.all([...queryParameterizedStatements].map(([statement, params]) => new Promise((resolve, reject) => {
79
+ transaction.executeSql(statement, params, (_, result) => {
80
+ resolve(result.rows._array[0]);
81
+ }, (_, error) => {
82
+ reject(error);
83
+ logger.warn(error);
84
+ return true;
85
+ });
86
+ })));
87
+ resolveTransaction(results);
88
+ }
89
+ catch (error) {
90
+ rejectTransaction(error);
91
+ logger.warn(error);
92
+ }
93
+ });
94
+ });
95
+ }
96
+ batchSave(saveParameterizedStatements = new Set(), deleteParameterizedStatements) {
97
+ return new Promise((resolveTransaction, rejectTransaction) => {
98
+ this.db.transaction(async (transaction) => {
99
+ try {
100
+ // await for all sql statements promises to resolve
101
+ await Promise.all([...saveParameterizedStatements].map(([statement, params]) => new Promise((resolve, reject) => {
102
+ transaction.executeSql(statement, params, () => {
103
+ resolve(null);
104
+ }, (_, error) => {
105
+ reject(error);
106
+ logger.warn(error);
107
+ return true;
108
+ });
109
+ })));
110
+ if (deleteParameterizedStatements) {
111
+ await Promise.all([...deleteParameterizedStatements].map(([statement, params]) => new Promise((resolve, reject) => transaction.executeSql(statement, params, () => {
112
+ resolve(null);
113
+ }, (_, error) => {
114
+ reject(error);
115
+ logger.warn(error);
116
+ return true;
117
+ }))));
118
+ }
119
+ resolveTransaction(null);
120
+ }
121
+ catch (error) {
122
+ rejectTransaction(error);
123
+ logger.warn(error);
124
+ }
125
+ });
126
+ });
127
+ }
128
+ selectAndDelete(queryParameterizedStatement, deleteParameterizedStatement) {
129
+ const [queryStatement, queryParams] = queryParameterizedStatement;
130
+ const [deleteStatement, deleteParams] = deleteParameterizedStatement;
131
+ return new Promise((resolveTransaction, rejectTransaction) => {
132
+ this.db.transaction(async (transaction) => {
133
+ try {
134
+ const result = await new Promise((resolve, reject) => {
135
+ transaction.executeSql(queryStatement, queryParams, (_, result) => {
136
+ resolve(result.rows._array || []);
137
+ }, (_, error) => {
138
+ reject(error);
139
+ logger.warn(error);
140
+ return true;
141
+ });
142
+ });
143
+ await new Promise((resolve, reject) => {
144
+ transaction.executeSql(deleteStatement, deleteParams, () => {
145
+ resolve(null);
146
+ }, (_, error) => {
147
+ reject(error);
148
+ logger.warn(error);
149
+ return true;
150
+ });
151
+ });
152
+ resolveTransaction(result);
153
+ }
154
+ catch (error) {
155
+ rejectTransaction(error);
156
+ logger.warn(error);
157
+ }
158
+ });
159
+ });
160
+ }
161
+ executeStatements(statements) {
162
+ return new Promise((resolveTransaction, rejectTransaction) => {
163
+ this.db.transaction(async (transaction) => {
164
+ try {
165
+ await Promise.all(statements.map(statement => new Promise((resolve, reject) => {
166
+ transaction.executeSql(statement, [], () => {
167
+ resolve(null);
168
+ }, (_, error) => {
169
+ reject(error);
170
+ return true;
171
+ });
172
+ })));
173
+ resolveTransaction(null);
174
+ }
175
+ catch (error) {
176
+ rejectTransaction(error);
177
+ logger.warn(error);
178
+ }
179
+ });
180
+ });
181
+ }
182
+ async closeDB() {
183
+ if (this.db) {
184
+ logger.debug('Closing Database');
185
+ // closing database is not supported by expo-sqlite.
186
+ // Workaround is to access the private db variable and call the close() method.
187
+ await this.db._db.close();
188
+ logger.debug('Database closed');
189
+ this.db = undefined;
190
+ }
191
+ }
192
+ }
193
+ export default ExpoSQLiteDatabase;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpoSQLiteDatabase.js","sourceRoot":"","sources":["../../../src/ExpoSQLiteAdapter/ExpoSQLiteDatabase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { CommonSQLiteAdapter } from '../common/CommonSQLiteAdapter';
2
+ declare const SQLiteAdapter: CommonSQLiteAdapter;
3
+ export default SQLiteAdapter;
@@ -0,0 +1,6 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { CommonSQLiteAdapter } from '../common/CommonSQLiteAdapter';
4
+ import SQLiteDatabase from './SQLiteDatabase';
5
+ const SQLiteAdapter = new CommonSQLiteAdapter(new SQLiteDatabase());
6
+ export default SQLiteAdapter;