@aws-amplify/datastore-storage-adapter 1.3.9-next.36 → 1.3.9-next.41

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.
@@ -0,0 +1,1682 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory(require("@aws-amplify/core"), require("@aws-amplify/datastore"), require("expo-file-system"), require("expo-sqlite"));
4
+ else if(typeof define === 'function' && define.amd)
5
+ define("aws-amplify-datastore-storage-adapter", ["@aws-amplify/core", "@aws-amplify/datastore", "expo-file-system", "expo-sqlite"], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["aws-amplify-datastore-storage-adapter"] = factory(require("@aws-amplify/core"), require("@aws-amplify/datastore"), require("expo-file-system"), require("expo-sqlite"));
8
+ else
9
+ root["aws-amplify-datastore-storage-adapter"] = factory(root["@aws-amplify/core"], root["@aws-amplify/datastore"], root["expo-file-system"], root["expo-sqlite"]);
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__aws_amplify_core__, __WEBPACK_EXTERNAL_MODULE__aws_amplify_datastore__, __WEBPACK_EXTERNAL_MODULE_expo_file_system__, __WEBPACK_EXTERNAL_MODULE_expo_sqlite__) {
11
+ return /******/ (function(modules) { // webpackBootstrap
12
+ /******/ // The module cache
13
+ /******/ var installedModules = {};
14
+ /******/
15
+ /******/ // The require function
16
+ /******/ function __webpack_require__(moduleId) {
17
+ /******/
18
+ /******/ // Check if module is in cache
19
+ /******/ if(installedModules[moduleId]) {
20
+ /******/ return installedModules[moduleId].exports;
21
+ /******/ }
22
+ /******/ // Create a new module (and put it into the cache)
23
+ /******/ var module = installedModules[moduleId] = {
24
+ /******/ i: moduleId,
25
+ /******/ l: false,
26
+ /******/ exports: {}
27
+ /******/ };
28
+ /******/
29
+ /******/ // Execute the module function
30
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
+ /******/
32
+ /******/ // Flag the module as loaded
33
+ /******/ module.l = true;
34
+ /******/
35
+ /******/ // Return the exports of the module
36
+ /******/ return module.exports;
37
+ /******/ }
38
+ /******/
39
+ /******/
40
+ /******/ // expose the modules object (__webpack_modules__)
41
+ /******/ __webpack_require__.m = modules;
42
+ /******/
43
+ /******/ // expose the module cache
44
+ /******/ __webpack_require__.c = installedModules;
45
+ /******/
46
+ /******/ // define getter function for harmony exports
47
+ /******/ __webpack_require__.d = function(exports, name, getter) {
48
+ /******/ if(!__webpack_require__.o(exports, name)) {
49
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50
+ /******/ }
51
+ /******/ };
52
+ /******/
53
+ /******/ // define __esModule on exports
54
+ /******/ __webpack_require__.r = function(exports) {
55
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57
+ /******/ }
58
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
59
+ /******/ };
60
+ /******/
61
+ /******/ // create a fake namespace object
62
+ /******/ // mode & 1: value is a module id, require it
63
+ /******/ // mode & 2: merge all properties of value into the ns
64
+ /******/ // mode & 4: return value when already ns object
65
+ /******/ // mode & 8|1: behave like require
66
+ /******/ __webpack_require__.t = function(value, mode) {
67
+ /******/ if(mode & 1) value = __webpack_require__(value);
68
+ /******/ if(mode & 8) return value;
69
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70
+ /******/ var ns = Object.create(null);
71
+ /******/ __webpack_require__.r(ns);
72
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74
+ /******/ return ns;
75
+ /******/ };
76
+ /******/
77
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
78
+ /******/ __webpack_require__.n = function(module) {
79
+ /******/ var getter = module && module.__esModule ?
80
+ /******/ function getDefault() { return module['default']; } :
81
+ /******/ function getModuleExports() { return module; };
82
+ /******/ __webpack_require__.d(getter, 'a', getter);
83
+ /******/ return getter;
84
+ /******/ };
85
+ /******/
86
+ /******/ // Object.prototype.hasOwnProperty.call
87
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88
+ /******/
89
+ /******/ // __webpack_public_path__
90
+ /******/ __webpack_require__.p = "";
91
+ /******/
92
+ /******/
93
+ /******/ // Load entry module and return exports
94
+ /******/ return __webpack_require__(__webpack_require__.s = "./lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js");
95
+ /******/ })
96
+ /************************************************************************/
97
+ /******/ ({
98
+
99
+ /***/ "../../node_modules/tslib/tslib.es6.js":
100
+ /*!********************************************************!*\
101
+ !*** /root/amplify-js/node_modules/tslib/tslib.es6.js ***!
102
+ \********************************************************/
103
+ /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn */
104
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
105
+
106
+ "use strict";
107
+ __webpack_require__.r(__webpack_exports__);
108
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
109
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
110
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
111
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
112
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
113
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
114
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
115
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
116
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__createBinding", function() { return __createBinding; });
117
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
118
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
119
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
120
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
121
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });
122
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArray", function() { return __spreadArray; });
123
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
124
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
125
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
126
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
127
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
128
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
129
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
130
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; });
131
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; });
132
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldIn", function() { return __classPrivateFieldIn; });
133
+ /******************************************************************************
134
+ Copyright (c) Microsoft Corporation.
135
+
136
+ Permission to use, copy, modify, and/or distribute this software for any
137
+ purpose with or without fee is hereby granted.
138
+
139
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
140
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
141
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
142
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
143
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
144
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
145
+ PERFORMANCE OF THIS SOFTWARE.
146
+ ***************************************************************************** */
147
+ /* global Reflect, Promise */
148
+
149
+ var extendStatics = function(d, b) {
150
+ extendStatics = Object.setPrototypeOf ||
151
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
152
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
153
+ return extendStatics(d, b);
154
+ };
155
+
156
+ function __extends(d, b) {
157
+ if (typeof b !== "function" && b !== null)
158
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
159
+ extendStatics(d, b);
160
+ function __() { this.constructor = d; }
161
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
162
+ }
163
+
164
+ var __assign = function() {
165
+ __assign = Object.assign || function __assign(t) {
166
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
167
+ s = arguments[i];
168
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
169
+ }
170
+ return t;
171
+ }
172
+ return __assign.apply(this, arguments);
173
+ }
174
+
175
+ function __rest(s, e) {
176
+ var t = {};
177
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
178
+ t[p] = s[p];
179
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
180
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
181
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
182
+ t[p[i]] = s[p[i]];
183
+ }
184
+ return t;
185
+ }
186
+
187
+ function __decorate(decorators, target, key, desc) {
188
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
189
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
190
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
191
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
192
+ }
193
+
194
+ function __param(paramIndex, decorator) {
195
+ return function (target, key) { decorator(target, key, paramIndex); }
196
+ }
197
+
198
+ function __metadata(metadataKey, metadataValue) {
199
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
200
+ }
201
+
202
+ function __awaiter(thisArg, _arguments, P, generator) {
203
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
204
+ return new (P || (P = Promise))(function (resolve, reject) {
205
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
206
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
207
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
208
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
209
+ });
210
+ }
211
+
212
+ function __generator(thisArg, body) {
213
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
214
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
215
+ function verb(n) { return function (v) { return step([n, v]); }; }
216
+ function step(op) {
217
+ if (f) throw new TypeError("Generator is already executing.");
218
+ while (_) try {
219
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
220
+ if (y = 0, t) op = [op[0] & 2, t.value];
221
+ switch (op[0]) {
222
+ case 0: case 1: t = op; break;
223
+ case 4: _.label++; return { value: op[1], done: false };
224
+ case 5: _.label++; y = op[1]; op = [0]; continue;
225
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
226
+ default:
227
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
228
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
229
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
230
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
231
+ if (t[2]) _.ops.pop();
232
+ _.trys.pop(); continue;
233
+ }
234
+ op = body.call(thisArg, _);
235
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
236
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
237
+ }
238
+ }
239
+
240
+ var __createBinding = Object.create ? (function(o, m, k, k2) {
241
+ if (k2 === undefined) k2 = k;
242
+ var desc = Object.getOwnPropertyDescriptor(m, k);
243
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
244
+ desc = { enumerable: true, get: function() { return m[k]; } };
245
+ }
246
+ Object.defineProperty(o, k2, desc);
247
+ }) : (function(o, m, k, k2) {
248
+ if (k2 === undefined) k2 = k;
249
+ o[k2] = m[k];
250
+ });
251
+
252
+ function __exportStar(m, o) {
253
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
254
+ }
255
+
256
+ function __values(o) {
257
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
258
+ if (m) return m.call(o);
259
+ if (o && typeof o.length === "number") return {
260
+ next: function () {
261
+ if (o && i >= o.length) o = void 0;
262
+ return { value: o && o[i++], done: !o };
263
+ }
264
+ };
265
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
266
+ }
267
+
268
+ function __read(o, n) {
269
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
270
+ if (!m) return o;
271
+ var i = m.call(o), r, ar = [], e;
272
+ try {
273
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
274
+ }
275
+ catch (error) { e = { error: error }; }
276
+ finally {
277
+ try {
278
+ if (r && !r.done && (m = i["return"])) m.call(i);
279
+ }
280
+ finally { if (e) throw e.error; }
281
+ }
282
+ return ar;
283
+ }
284
+
285
+ /** @deprecated */
286
+ function __spread() {
287
+ for (var ar = [], i = 0; i < arguments.length; i++)
288
+ ar = ar.concat(__read(arguments[i]));
289
+ return ar;
290
+ }
291
+
292
+ /** @deprecated */
293
+ function __spreadArrays() {
294
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
295
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
296
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
297
+ r[k] = a[j];
298
+ return r;
299
+ }
300
+
301
+ function __spreadArray(to, from, pack) {
302
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
303
+ if (ar || !(i in from)) {
304
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
305
+ ar[i] = from[i];
306
+ }
307
+ }
308
+ return to.concat(ar || Array.prototype.slice.call(from));
309
+ }
310
+
311
+ function __await(v) {
312
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
313
+ }
314
+
315
+ function __asyncGenerator(thisArg, _arguments, generator) {
316
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
317
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
318
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
319
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
320
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
321
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
322
+ function fulfill(value) { resume("next", value); }
323
+ function reject(value) { resume("throw", value); }
324
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
325
+ }
326
+
327
+ function __asyncDelegator(o) {
328
+ var i, p;
329
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
330
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
331
+ }
332
+
333
+ function __asyncValues(o) {
334
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
335
+ var m = o[Symbol.asyncIterator], i;
336
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
337
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
338
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
339
+ }
340
+
341
+ function __makeTemplateObject(cooked, raw) {
342
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
343
+ return cooked;
344
+ };
345
+
346
+ var __setModuleDefault = Object.create ? (function(o, v) {
347
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
348
+ }) : function(o, v) {
349
+ o["default"] = v;
350
+ };
351
+
352
+ function __importStar(mod) {
353
+ if (mod && mod.__esModule) return mod;
354
+ var result = {};
355
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
356
+ __setModuleDefault(result, mod);
357
+ return result;
358
+ }
359
+
360
+ function __importDefault(mod) {
361
+ return (mod && mod.__esModule) ? mod : { default: mod };
362
+ }
363
+
364
+ function __classPrivateFieldGet(receiver, state, kind, f) {
365
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
366
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
367
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
368
+ }
369
+
370
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
371
+ if (kind === "m") throw new TypeError("Private method is not writable");
372
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
373
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
374
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
375
+ }
376
+
377
+ function __classPrivateFieldIn(state, receiver) {
378
+ if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
379
+ return typeof state === "function" ? receiver === state : state.has(receiver);
380
+ }
381
+
382
+
383
+ /***/ }),
384
+
385
+ /***/ "./lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js":
386
+ /*!********************************************************!*\
387
+ !*** ./lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js ***!
388
+ \********************************************************/
389
+ /*! exports provided: default */
390
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
391
+
392
+ "use strict";
393
+ __webpack_require__.r(__webpack_exports__);
394
+ /* harmony import */ var _common_CommonSQLiteAdapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/CommonSQLiteAdapter */ "./lib-esm/common/CommonSQLiteAdapter.js");
395
+ /* harmony import */ var _ExpoSQLiteDatabase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ExpoSQLiteDatabase */ "./lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js");
396
+
397
+
398
+ var ExpoSQLiteAdapter = new _common_CommonSQLiteAdapter__WEBPACK_IMPORTED_MODULE_0__["CommonSQLiteAdapter"](new _ExpoSQLiteDatabase__WEBPACK_IMPORTED_MODULE_1__["default"]());
399
+ /* harmony default export */ __webpack_exports__["default"] = (ExpoSQLiteAdapter);
400
+
401
+ /***/ }),
402
+
403
+ /***/ "./lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js":
404
+ /*!*********************************************************!*\
405
+ !*** ./lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js ***!
406
+ \*********************************************************/
407
+ /*! exports provided: default */
408
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
409
+
410
+ "use strict";
411
+ __webpack_require__.r(__webpack_exports__);
412
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
413
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
414
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
415
+ /* harmony import */ var expo_file_system__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! expo-file-system */ "expo-file-system");
416
+ /* harmony import */ var expo_file_system__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(expo_file_system__WEBPACK_IMPORTED_MODULE_2__);
417
+ /* harmony import */ var expo_sqlite__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! expo-sqlite */ "expo-sqlite");
418
+ /* harmony import */ var expo_sqlite__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(expo_sqlite__WEBPACK_IMPORTED_MODULE_3__);
419
+ /* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/constants */ "./lib-esm/common/constants.js");
420
+
421
+
422
+
423
+
424
+
425
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('ExpoSQLiteDatabase');
426
+ /*
427
+
428
+ Note:
429
+ ExpoSQLite transaction error callbacks require returning a boolean value to indicate whether the
430
+ error was handled or not. Returning a true value indicates the error was handled and does not
431
+ rollback the whole transaction.
432
+
433
+ */
434
+ var ExpoSQLiteDatabase = /** @class */function () {
435
+ function ExpoSQLiteDatabase() {}
436
+ ExpoSQLiteDatabase.prototype.init = function () {
437
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
438
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
439
+ // only open database once.
440
+ if (!this.db) {
441
+ // As per expo docs version, description and size arguments are ignored,
442
+ // but are accepted by the function for compatibility with the WebSQL specification.
443
+ // Hence, we do not need those arguments.
444
+ this.db = Object(expo_sqlite__WEBPACK_IMPORTED_MODULE_3__["openDatabase"])(_common_constants__WEBPACK_IMPORTED_MODULE_4__["DB_NAME"]);
445
+ }
446
+ return [2 /*return*/];
447
+ });
448
+ });
449
+ };
450
+
451
+ ExpoSQLiteDatabase.prototype.createSchema = function (statements) {
452
+ return this.executeStatements(statements);
453
+ };
454
+ ExpoSQLiteDatabase.prototype.clear = function () {
455
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
456
+ var error_1;
457
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
458
+ switch (_a.label) {
459
+ case 0:
460
+ _a.trys.push([0, 3,, 4]);
461
+ logger.debug('Clearing database');
462
+ return [4 /*yield*/, this.closeDB()];
463
+ case 1:
464
+ _a.sent();
465
+ // delete database is not supported by expo-sqlite.
466
+ // Database file needs to be deleted using deleteAsync from expo-file-system
467
+ return [4 /*yield*/, Object(expo_file_system__WEBPACK_IMPORTED_MODULE_2__["deleteAsync"])(expo_file_system__WEBPACK_IMPORTED_MODULE_2__["documentDirectory"] + "SQLite/" + _common_constants__WEBPACK_IMPORTED_MODULE_4__["DB_NAME"])];
468
+ case 2:
469
+ // delete database is not supported by expo-sqlite.
470
+ // Database file needs to be deleted using deleteAsync from expo-file-system
471
+ _a.sent();
472
+ logger.debug('Database cleared');
473
+ return [3 /*break*/, 4];
474
+ case 3:
475
+ error_1 = _a.sent();
476
+ logger.warn('Error clearing the database.', error_1);
477
+ // open database if it was closed earlier and this.db was set to undefined.
478
+ this.init();
479
+ return [3 /*break*/, 4];
480
+ case 4:
481
+ return [2 /*return*/];
482
+ }
483
+ });
484
+ });
485
+ };
486
+
487
+ ExpoSQLiteDatabase.prototype.get = function (statement, params) {
488
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
489
+ var results;
490
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
491
+ switch (_a.label) {
492
+ case 0:
493
+ return [4 /*yield*/, this.getAll(statement, params)];
494
+ case 1:
495
+ results = _a.sent();
496
+ return [2 /*return*/, results[0]];
497
+ }
498
+ });
499
+ });
500
+ };
501
+ ExpoSQLiteDatabase.prototype.getAll = function (statement, params) {
502
+ var _this = this;
503
+ return new Promise(function (resolve, reject) {
504
+ _this.db.readTransaction(function (transaction) {
505
+ transaction.executeSql(statement, params, function (_, result) {
506
+ resolve(result.rows._array || []);
507
+ }, function (_, error) {
508
+ reject(error);
509
+ logger.warn(error);
510
+ return true;
511
+ });
512
+ });
513
+ });
514
+ };
515
+ ExpoSQLiteDatabase.prototype.save = function (statement, params) {
516
+ var _this = this;
517
+ return new Promise(function (resolve, reject) {
518
+ _this.db.transaction(function (transaction) {
519
+ transaction.executeSql(statement, params, function () {
520
+ resolve(null);
521
+ }, function (_, error) {
522
+ reject(error);
523
+ logger.warn(error);
524
+ return true;
525
+ });
526
+ });
527
+ });
528
+ };
529
+ ExpoSQLiteDatabase.prototype.batchQuery = function (queryParameterizedStatements) {
530
+ var _this = this;
531
+ if (queryParameterizedStatements === void 0) {
532
+ queryParameterizedStatements = new Set();
533
+ }
534
+ return new Promise(function (resolveTransaction, rejectTransaction) {
535
+ _this.db.transaction(function (transaction) {
536
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
537
+ var results, error_2;
538
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
539
+ switch (_a.label) {
540
+ case 0:
541
+ _a.trys.push([0, 2,, 3]);
542
+ return [4 /*yield*/, Promise.all(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(queryParameterizedStatements).map(function (_a) {
543
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
544
+ statement = _b[0],
545
+ params = _b[1];
546
+ return new Promise(function (resolve, reject) {
547
+ transaction.executeSql(statement, params, function (_, result) {
548
+ resolve(result.rows._array[0]);
549
+ }, function (_, error) {
550
+ reject(error);
551
+ logger.warn(error);
552
+ return true;
553
+ });
554
+ });
555
+ }))];
556
+ case 1:
557
+ results = _a.sent();
558
+ resolveTransaction(results);
559
+ return [3 /*break*/, 3];
560
+ case 2:
561
+ error_2 = _a.sent();
562
+ rejectTransaction(error_2);
563
+ logger.warn(error_2);
564
+ return [3 /*break*/, 3];
565
+ case 3:
566
+ return [2 /*return*/];
567
+ }
568
+ });
569
+ });
570
+ });
571
+ });
572
+ };
573
+
574
+ ExpoSQLiteDatabase.prototype.batchSave = function (saveParameterizedStatements, deleteParameterizedStatements) {
575
+ var _this = this;
576
+ if (saveParameterizedStatements === void 0) {
577
+ saveParameterizedStatements = new Set();
578
+ }
579
+ return new Promise(function (resolveTransaction, rejectTransaction) {
580
+ _this.db.transaction(function (transaction) {
581
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
582
+ var error_3;
583
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
584
+ switch (_a.label) {
585
+ case 0:
586
+ _a.trys.push([0, 4,, 5]);
587
+ // await for all sql statements promises to resolve
588
+ return [4 /*yield*/, Promise.all(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(saveParameterizedStatements).map(function (_a) {
589
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
590
+ statement = _b[0],
591
+ params = _b[1];
592
+ return new Promise(function (resolve, reject) {
593
+ transaction.executeSql(statement, params, function () {
594
+ resolve(null);
595
+ }, function (_, error) {
596
+ reject(error);
597
+ logger.warn(error);
598
+ return true;
599
+ });
600
+ });
601
+ }))];
602
+ case 1:
603
+ // await for all sql statements promises to resolve
604
+ _a.sent();
605
+ if (!deleteParameterizedStatements) return [3 /*break*/, 3];
606
+ return [4 /*yield*/, Promise.all(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(deleteParameterizedStatements).map(function (_a) {
607
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
608
+ statement = _b[0],
609
+ params = _b[1];
610
+ return new Promise(function (resolve, reject) {
611
+ return transaction.executeSql(statement, params, function () {
612
+ resolve(null);
613
+ }, function (_, error) {
614
+ reject(error);
615
+ logger.warn(error);
616
+ return true;
617
+ });
618
+ });
619
+ }))];
620
+ case 2:
621
+ _a.sent();
622
+ _a.label = 3;
623
+ case 3:
624
+ resolveTransaction(null);
625
+ return [3 /*break*/, 5];
626
+ case 4:
627
+ error_3 = _a.sent();
628
+ rejectTransaction(error_3);
629
+ logger.warn(error_3);
630
+ return [3 /*break*/, 5];
631
+ case 5:
632
+ return [2 /*return*/];
633
+ }
634
+ });
635
+ });
636
+ });
637
+ });
638
+ };
639
+
640
+ ExpoSQLiteDatabase.prototype.selectAndDelete = function (queryParameterizedStatement, deleteParameterizedStatement) {
641
+ var _this = this;
642
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(queryParameterizedStatement, 2),
643
+ queryStatement = _a[0],
644
+ queryParams = _a[1];
645
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(deleteParameterizedStatement, 2),
646
+ deleteStatement = _b[0],
647
+ deleteParams = _b[1];
648
+ return new Promise(function (resolveTransaction, rejectTransaction) {
649
+ _this.db.transaction(function (transaction) {
650
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
651
+ var result, error_4;
652
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
653
+ switch (_a.label) {
654
+ case 0:
655
+ _a.trys.push([0, 3,, 4]);
656
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
657
+ transaction.executeSql(queryStatement, queryParams, function (_, result) {
658
+ resolve(result.rows._array || []);
659
+ }, function (_, error) {
660
+ reject(error);
661
+ logger.warn(error);
662
+ return true;
663
+ });
664
+ })];
665
+ case 1:
666
+ result = _a.sent();
667
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
668
+ transaction.executeSql(deleteStatement, deleteParams, function () {
669
+ resolve(null);
670
+ }, function (_, error) {
671
+ reject(error);
672
+ logger.warn(error);
673
+ return true;
674
+ });
675
+ })];
676
+ case 2:
677
+ _a.sent();
678
+ resolveTransaction(result);
679
+ return [3 /*break*/, 4];
680
+ case 3:
681
+ error_4 = _a.sent();
682
+ rejectTransaction(error_4);
683
+ logger.warn(error_4);
684
+ return [3 /*break*/, 4];
685
+ case 4:
686
+ return [2 /*return*/];
687
+ }
688
+ });
689
+ });
690
+ });
691
+ });
692
+ };
693
+
694
+ ExpoSQLiteDatabase.prototype.executeStatements = function (statements) {
695
+ var _this = this;
696
+ return new Promise(function (resolveTransaction, rejectTransaction) {
697
+ _this.db.transaction(function (transaction) {
698
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
699
+ var error_5;
700
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
701
+ switch (_a.label) {
702
+ case 0:
703
+ _a.trys.push([0, 2,, 3]);
704
+ return [4 /*yield*/, Promise.all(statements.map(function (statement) {
705
+ return new Promise(function (resolve, reject) {
706
+ transaction.executeSql(statement, [], function () {
707
+ resolve(null);
708
+ }, function (_, error) {
709
+ reject(error);
710
+ return true;
711
+ });
712
+ });
713
+ }))];
714
+ case 1:
715
+ _a.sent();
716
+ resolveTransaction(null);
717
+ return [3 /*break*/, 3];
718
+ case 2:
719
+ error_5 = _a.sent();
720
+ rejectTransaction(error_5);
721
+ logger.warn(error_5);
722
+ return [3 /*break*/, 3];
723
+ case 3:
724
+ return [2 /*return*/];
725
+ }
726
+ });
727
+ });
728
+ });
729
+ });
730
+ };
731
+
732
+ ExpoSQLiteDatabase.prototype.closeDB = function () {
733
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
734
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
735
+ switch (_a.label) {
736
+ case 0:
737
+ if (!this.db) return [3 /*break*/, 2];
738
+ logger.debug('Closing Database');
739
+ // closing database is not supported by expo-sqlite.
740
+ // Workaround is to access the private db variable and call the close() method.
741
+ return [4 /*yield*/, this.db._db.close()];
742
+ case 1:
743
+ // closing database is not supported by expo-sqlite.
744
+ // Workaround is to access the private db variable and call the close() method.
745
+ _a.sent();
746
+ logger.debug('Database closed');
747
+ this.db = undefined;
748
+ _a.label = 2;
749
+ case 2:
750
+ return [2 /*return*/];
751
+ }
752
+ });
753
+ });
754
+ };
755
+
756
+ return ExpoSQLiteDatabase;
757
+ }();
758
+ /* harmony default export */ __webpack_exports__["default"] = (ExpoSQLiteDatabase);
759
+
760
+ /***/ }),
761
+
762
+ /***/ "./lib-esm/common/CommonSQLiteAdapter.js":
763
+ /*!***********************************************!*\
764
+ !*** ./lib-esm/common/CommonSQLiteAdapter.js ***!
765
+ \***********************************************/
766
+ /*! exports provided: CommonSQLiteAdapter */
767
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
768
+
769
+ "use strict";
770
+ __webpack_require__.r(__webpack_exports__);
771
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommonSQLiteAdapter", function() { return CommonSQLiteAdapter; });
772
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
773
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
774
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
775
+ /* harmony import */ var _common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/SQLiteUtils */ "./lib-esm/common/SQLiteUtils.js");
776
+ /* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-amplify/datastore */ "@aws-amplify/datastore");
777
+ /* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__);
778
+
779
+
780
+
781
+
782
+ var traverseModel = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["utils"].traverseModel,
783
+ validatePredicate = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["utils"].validatePredicate,
784
+ isModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["utils"].isModelConstructor;
785
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('DataStore');
786
+ var CommonSQLiteAdapter = /** @class */function () {
787
+ function CommonSQLiteAdapter(db) {
788
+ this.db = db;
789
+ }
790
+ CommonSQLiteAdapter.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName) {
791
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
792
+ var statements, error_1;
793
+ var _this = this;
794
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
795
+ switch (_a.label) {
796
+ case 0:
797
+ if (!!this.initPromise) return [3 /*break*/, 1];
798
+ this.initPromise = new Promise(function (res, rej) {
799
+ _this.resolve = res;
800
+ _this.reject = rej;
801
+ });
802
+ return [3 /*break*/, 3];
803
+ case 1:
804
+ return [4 /*yield*/, this.initPromise];
805
+ case 2:
806
+ _a.sent();
807
+ return [2 /*return*/];
808
+ case 3:
809
+ this.schema = theSchema;
810
+ this.namespaceResolver = namespaceResolver;
811
+ this.modelInstanceCreator = modelInstanceCreator;
812
+ this.getModelConstructorByModelName = getModelConstructorByModelName;
813
+ _a.label = 4;
814
+ case 4:
815
+ _a.trys.push([4, 7,, 8]);
816
+ return [4 /*yield*/, this.db.init()];
817
+ case 5:
818
+ _a.sent();
819
+ statements = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["generateSchemaStatements"])(this.schema);
820
+ return [4 /*yield*/, this.db.createSchema(statements)];
821
+ case 6:
822
+ _a.sent();
823
+ this.resolve();
824
+ return [3 /*break*/, 8];
825
+ case 7:
826
+ error_1 = _a.sent();
827
+ this.reject(error_1);
828
+ return [3 /*break*/, 8];
829
+ case 8:
830
+ return [2 /*return*/];
831
+ }
832
+ });
833
+ });
834
+ };
835
+
836
+ CommonSQLiteAdapter.prototype.clear = function () {
837
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
838
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
839
+ switch (_a.label) {
840
+ case 0:
841
+ return [4 /*yield*/, this.db.clear()];
842
+ case 1:
843
+ _a.sent();
844
+ this.initPromise = undefined;
845
+ return [2 /*return*/];
846
+ }
847
+ });
848
+ });
849
+ };
850
+
851
+ CommonSQLiteAdapter.prototype.save = function (model, condition) {
852
+ var e_1, _a;
853
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
854
+ var modelConstructor, tableName, connectedModels, connectionStoreNames, _b, queryStatement, params, fromDB, predicates, predicateObjs, type, isValid, msg, result, saveStatements, connectionStoreNames_1, connectionStoreNames_1_1, resItem, modelName, item, instance, id, _c, queryStatement_1, params_1, fromDB_1, opType, saveStatement, e_1_1;
855
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_d) {
856
+ switch (_d.label) {
857
+ case 0:
858
+ modelConstructor = Object.getPrototypeOf(model).constructor;
859
+ tableName = modelConstructor.name;
860
+ connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[this.namespaceResolver(modelConstructor)], this.modelInstanceCreator, this.getModelConstructorByModelName);
861
+ connectionStoreNames = Object.values(connectedModels).map(function (_a) {
862
+ var modelName = _a.modelName,
863
+ item = _a.item,
864
+ instance = _a.instance;
865
+ return {
866
+ modelName: modelName,
867
+ item: item,
868
+ instance: instance
869
+ };
870
+ });
871
+ _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _b[0], params = _b[1];
872
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
873
+ case 1:
874
+ fromDB = _d.sent();
875
+ if (condition && fromDB) {
876
+ predicates = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["ModelPredicateCreator"].getPredicates(condition);
877
+ predicateObjs = predicates.predicates, type = predicates.type;
878
+ isValid = validatePredicate(fromDB, type, predicateObjs);
879
+ if (!isValid) {
880
+ msg = 'Conditional update failed';
881
+ logger.error(msg, {
882
+ model: fromDB,
883
+ condition: predicateObjs
884
+ });
885
+ throw new Error(msg);
886
+ }
887
+ }
888
+ result = [];
889
+ saveStatements = new Set();
890
+ _d.label = 2;
891
+ case 2:
892
+ _d.trys.push([2, 8, 9, 14]);
893
+ connectionStoreNames_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__asyncValues"])(connectionStoreNames);
894
+ _d.label = 3;
895
+ case 3:
896
+ return [4 /*yield*/, connectionStoreNames_1.next()];
897
+ case 4:
898
+ if (!(connectionStoreNames_1_1 = _d.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 7];
899
+ resItem = connectionStoreNames_1_1.value;
900
+ modelName = resItem.modelName, item = resItem.item, instance = resItem.instance;
901
+ id = item.id;
902
+ _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, modelName), 2), queryStatement_1 = _c[0], params_1 = _c[1];
903
+ return [4 /*yield*/, this.db.get(queryStatement_1, params_1)];
904
+ case 5:
905
+ fromDB_1 = _d.sent();
906
+ opType = fromDB_1 === undefined ? _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].INSERT : _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].UPDATE;
907
+ saveStatement = fromDB_1 ? Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelUpdateStatement"])(instance, modelName) : Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelInsertStatement"])(instance, modelName);
908
+ if (id === model.id || opType === _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].INSERT) {
909
+ saveStatements.add(saveStatement);
910
+ result.push([instance, opType]);
911
+ }
912
+ _d.label = 6;
913
+ case 6:
914
+ return [3 /*break*/, 3];
915
+ case 7:
916
+ return [3 /*break*/, 14];
917
+ case 8:
918
+ e_1_1 = _d.sent();
919
+ e_1 = {
920
+ error: e_1_1
921
+ };
922
+ return [3 /*break*/, 14];
923
+ case 9:
924
+ _d.trys.push([9,, 12, 13]);
925
+ if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1["return"]))) return [3 /*break*/, 11];
926
+ return [4 /*yield*/, _a.call(connectionStoreNames_1)];
927
+ case 10:
928
+ _d.sent();
929
+ _d.label = 11;
930
+ case 11:
931
+ return [3 /*break*/, 13];
932
+ case 12:
933
+ if (e_1) throw e_1.error;
934
+ return [7 /*endfinally*/];
935
+ case 13:
936
+ return [7 /*endfinally*/];
937
+ case 14:
938
+ return [4 /*yield*/, this.db.batchSave(saveStatements)];
939
+ case 15:
940
+ _d.sent();
941
+ return [2 /*return*/, result];
942
+ }
943
+ });
944
+ });
945
+ };
946
+ CommonSQLiteAdapter.prototype.load = function (namespaceName, srcModelName, records) {
947
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
948
+ var namespace, relations, connectionTableNames, modelConstructor;
949
+ var _this = this;
950
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
951
+ namespace = this.schema.namespaces[namespaceName];
952
+ relations = namespace.relationships[srcModelName].relationTypes;
953
+ connectionTableNames = relations.map(function (_a) {
954
+ var modelName = _a.modelName;
955
+ return modelName;
956
+ });
957
+ modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
958
+ if (connectionTableNames.length === 0) {
959
+ return [2 /*return*/, records.map(function (record) {
960
+ return _this.modelInstanceCreator(modelConstructor, record);
961
+ })];
962
+ }
963
+ return [2 /*return*/, records.map(function (record) {
964
+ return _this.modelInstanceCreator(modelConstructor, record);
965
+ })];
966
+ });
967
+ });
968
+ };
969
+ CommonSQLiteAdapter.prototype.query = function (modelConstructor, predicate, pagination) {
970
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
971
+ var tableName, namespaceName, predicates, sortPredicates, limit, page, queryById, records;
972
+ var _this = this;
973
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
974
+ switch (_a.label) {
975
+ case 0:
976
+ tableName = modelConstructor.name;
977
+ namespaceName = this.namespaceResolver(modelConstructor);
978
+ predicates = predicate && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["ModelPredicateCreator"].getPredicates(predicate);
979
+ sortPredicates = pagination && pagination.sort && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["ModelSortPredicateCreator"].getPredicates(pagination.sort);
980
+ limit = pagination && pagination.limit;
981
+ page = limit && pagination.page;
982
+ queryById = predicates && this.idFromPredicate(predicates);
983
+ return [4 /*yield*/, function () {
984
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
985
+ var record, _a, queryStatement, params;
986
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
987
+ switch (_b.label) {
988
+ case 0:
989
+ if (!queryById) return [3 /*break*/, 2];
990
+ return [4 /*yield*/, this.getById(tableName, queryById)];
991
+ case 1:
992
+ record = _b.sent();
993
+ return [2 /*return*/, record ? [record] : []];
994
+ case 2:
995
+ _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryAllStatement"])(tableName, predicates, sortPredicates, limit, page), 2), queryStatement = _a[0], params = _a[1];
996
+ return [4 /*yield*/, this.db.getAll(queryStatement, params)];
997
+ case 3:
998
+ return [2 /*return*/, _b.sent()];
999
+ }
1000
+ });
1001
+ });
1002
+ }()];
1003
+ case 1:
1004
+ records = _a.sent();
1005
+ return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];
1006
+ case 2:
1007
+ return [2 /*return*/, _a.sent()];
1008
+ }
1009
+ });
1010
+ });
1011
+ };
1012
+ CommonSQLiteAdapter.prototype.getById = function (tableName, id) {
1013
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
1014
+ var _a, queryStatement, params, record;
1015
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
1016
+ switch (_b.label) {
1017
+ case 0:
1018
+ _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, tableName), 2), queryStatement = _a[0], params = _a[1];
1019
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
1020
+ case 1:
1021
+ record = _b.sent();
1022
+ return [2 /*return*/, record];
1023
+ }
1024
+ });
1025
+ });
1026
+ };
1027
+ CommonSQLiteAdapter.prototype.idFromPredicate = function (predicates) {
1028
+ var predicateObjs = predicates.predicates;
1029
+ var idPredicate = predicateObjs.length === 1 && predicateObjs.find(function (p) {
1030
+ return Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["isPredicateObj"])(p) && p.field === 'id' && p.operator === 'eq';
1031
+ });
1032
+ return idPredicate && idPredicate.operand;
1033
+ };
1034
+ CommonSQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
1035
+ if (firstOrLast === void 0) {
1036
+ firstOrLast = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["QueryOne"].FIRST;
1037
+ }
1038
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
1039
+ var tableName, _a, queryStatement, params, result, modelInstance;
1040
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
1041
+ switch (_b.label) {
1042
+ case 0:
1043
+ tableName = modelConstructor.name;
1044
+ _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryOneStatement"])(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
1045
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
1046
+ case 1:
1047
+ result = _b.sent();
1048
+ modelInstance = result && this.modelInstanceCreator(modelConstructor, result);
1049
+ return [2 /*return*/, modelInstance];
1050
+ }
1051
+ });
1052
+ });
1053
+ };
1054
+ // Currently does not cascade
1055
+ // TODO: use FKs in relations and have `ON DELETE CASCADE` set
1056
+ // For Has Many and Has One relations to have SQL handle cascades automatically
1057
+ CommonSQLiteAdapter.prototype["delete"] = function (modelOrModelConstructor, condition) {
1058
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
1059
+ var modelConstructor, namespaceName, tableName, predicates, queryStatement, deleteStatement, models, modelInstances, model, modelConstructor, tableName, _a, queryStatement, params, fromDB, msg, predicates, predicateObjs, type, isValid, msg, _b, deleteStatement, deleteParams, _c, deleteStatement, params;
1060
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_d) {
1061
+ switch (_d.label) {
1062
+ case 0:
1063
+ if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 3];
1064
+ modelConstructor = modelOrModelConstructor;
1065
+ namespaceName = this.namespaceResolver(modelConstructor);
1066
+ tableName = modelConstructor.name;
1067
+ predicates = condition && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["ModelPredicateCreator"].getPredicates(condition);
1068
+ queryStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryAllStatement"])(tableName, predicates);
1069
+ deleteStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["deleteByPredicateStatement"])(tableName, predicates);
1070
+ return [4 /*yield*/, this.db.selectAndDelete(queryStatement, deleteStatement)];
1071
+ case 1:
1072
+ models = _d.sent();
1073
+ return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, models)];
1074
+ case 2:
1075
+ modelInstances = _d.sent();
1076
+ return [2 /*return*/, [modelInstances, modelInstances]];
1077
+ case 3:
1078
+ model = modelOrModelConstructor;
1079
+ modelConstructor = Object.getPrototypeOf(model).constructor;
1080
+ tableName = modelConstructor.name;
1081
+ if (!condition) return [3 /*break*/, 6];
1082
+ _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _a[0], params = _a[1];
1083
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
1084
+ case 4:
1085
+ fromDB = _d.sent();
1086
+ if (fromDB === undefined) {
1087
+ msg = 'Model instance not found in storage';
1088
+ logger.warn(msg, {
1089
+ model: model
1090
+ });
1091
+ return [2 /*return*/, [[model], []]];
1092
+ }
1093
+ predicates = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["ModelPredicateCreator"].getPredicates(condition);
1094
+ predicateObjs = predicates.predicates, type = predicates.type;
1095
+ isValid = validatePredicate(fromDB, type, predicateObjs);
1096
+ if (!isValid) {
1097
+ msg = 'Conditional update failed';
1098
+ logger.error(msg, {
1099
+ model: fromDB,
1100
+ condition: predicateObjs
1101
+ });
1102
+ throw new Error(msg);
1103
+ }
1104
+ _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["deleteByIdStatement"])(model.id, tableName), 2), deleteStatement = _b[0], deleteParams = _b[1];
1105
+ return [4 /*yield*/, this.db.save(deleteStatement, deleteParams)];
1106
+ case 5:
1107
+ _d.sent();
1108
+ return [2 /*return*/, [[model], [model]]];
1109
+ case 6:
1110
+ _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["deleteByIdStatement"])(model.id, tableName), 2), deleteStatement = _c[0], params = _c[1];
1111
+ return [4 /*yield*/, this.db.save(deleteStatement, params)];
1112
+ case 7:
1113
+ _d.sent();
1114
+ return [2 /*return*/, [[model], [model]]];
1115
+ }
1116
+ });
1117
+ });
1118
+ };
1119
+ CommonSQLiteAdapter.prototype.batchSave = function (modelConstructor, items) {
1120
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
1121
+ var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
1122
+ var e_2, _a;
1123
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
1124
+ switch (_b.label) {
1125
+ case 0:
1126
+ tableName = modelConstructor.name;
1127
+ result = [];
1128
+ itemsToSave = [];
1129
+ queryStatements = new Set();
1130
+ deleteStatements = new Set();
1131
+ saveStatements = new Set();
1132
+ _loop_1 = function _loop_1(item) {
1133
+ var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
1134
+ var id = item.id,
1135
+ _deleted = item._deleted;
1136
+ var instance = connectedModels.find(function (_a) {
1137
+ var instance = _a.instance;
1138
+ return instance.id === id;
1139
+ }).instance;
1140
+ if (_deleted) {
1141
+ // create the delete statements right away
1142
+ var deleteStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["deleteByIdStatement"])(instance.id, tableName);
1143
+ deleteStatements.add(deleteStatement);
1144
+ result.push([item, _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].DELETE]);
1145
+ } else {
1146
+ // query statements for the saves at first
1147
+ var queryStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, tableName);
1148
+ queryStatements.add(queryStatement);
1149
+ // combination of insert and update items
1150
+ itemsToSave.push(instance);
1151
+ }
1152
+ };
1153
+ this_1 = this;
1154
+ try {
1155
+ for (items_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
1156
+ item = items_1_1.value;
1157
+ _loop_1(item);
1158
+ }
1159
+ } catch (e_2_1) {
1160
+ e_2 = {
1161
+ error: e_2_1
1162
+ };
1163
+ } finally {
1164
+ try {
1165
+ if (items_1_1 && !items_1_1.done && (_a = items_1["return"])) _a.call(items_1);
1166
+ } finally {
1167
+ if (e_2) throw e_2.error;
1168
+ }
1169
+ }
1170
+ return [4 /*yield*/, this.db.batchQuery(queryStatements)];
1171
+ case 1:
1172
+ queryResponses = _b.sent();
1173
+ queryResponses.forEach(function (response, idx) {
1174
+ if (response === undefined) {
1175
+ var insertStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelInsertStatement"])(itemsToSave[idx], tableName);
1176
+ saveStatements.add(insertStatement);
1177
+ result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].INSERT]);
1178
+ } else {
1179
+ var updateStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelUpdateStatement"])(itemsToSave[idx], tableName);
1180
+ saveStatements.add(updateStatement);
1181
+ result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].UPDATE]);
1182
+ }
1183
+ });
1184
+ // perform all of the insert/update/delete operations in a single transaction
1185
+ return [4 /*yield*/, this.db.batchSave(saveStatements, deleteStatements)];
1186
+ case 2:
1187
+ // perform all of the insert/update/delete operations in a single transaction
1188
+ _b.sent();
1189
+ return [2 /*return*/, result];
1190
+ }
1191
+ });
1192
+ });
1193
+ };
1194
+ return CommonSQLiteAdapter;
1195
+ }();
1196
+
1197
+
1198
+ /***/ }),
1199
+
1200
+ /***/ "./lib-esm/common/SQLiteUtils.js":
1201
+ /*!***************************************!*\
1202
+ !*** ./lib-esm/common/SQLiteUtils.js ***!
1203
+ \***************************************/
1204
+ /*! exports provided: getSQLiteType, generateSchemaStatements, implicitAuthFieldsForModel, modelCreateTableStatement, modelInsertStatement, modelUpdateStatement, queryByIdStatement, whereClauseFromPredicate, orderByClauseFromSort, limitClauseFromPagination, queryAllStatement, queryOneStatement, deleteByIdStatement, deleteByPredicateStatement */
1205
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1206
+
1207
+ "use strict";
1208
+ __webpack_require__.r(__webpack_exports__);
1209
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSQLiteType", function() { return getSQLiteType; });
1210
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateSchemaStatements", function() { return generateSchemaStatements; });
1211
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "implicitAuthFieldsForModel", function() { return implicitAuthFieldsForModel; });
1212
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modelCreateTableStatement", function() { return modelCreateTableStatement; });
1213
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modelInsertStatement", function() { return modelInsertStatement; });
1214
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modelUpdateStatement", function() { return modelUpdateStatement; });
1215
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryByIdStatement", function() { return queryByIdStatement; });
1216
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whereClauseFromPredicate", function() { return whereClauseFromPredicate; });
1217
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "orderByClauseFromSort", function() { return orderByClauseFromSort; });
1218
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "limitClauseFromPagination", function() { return limitClauseFromPagination; });
1219
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryAllStatement", function() { return queryAllStatement; });
1220
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryOneStatement", function() { return queryOneStatement; });
1221
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteByIdStatement", function() { return deleteByIdStatement; });
1222
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteByPredicateStatement", function() { return deleteByPredicateStatement; });
1223
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
1224
+ /* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/datastore */ "@aws-amplify/datastore");
1225
+ /* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__);
1226
+ function _typeof(obj) {
1227
+ "@babel/helpers - typeof";
1228
+
1229
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
1230
+ return typeof obj;
1231
+ } : function (obj) {
1232
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1233
+ }, _typeof(obj);
1234
+ }
1235
+
1236
+
1237
+ var USER = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["utils"].USER,
1238
+ isNonModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["utils"].isNonModelConstructor,
1239
+ isModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["utils"].isModelConstructor;
1240
+ var keysFromModel = function keysFromModel(model) {
1241
+ return Object.keys(model).map(function (k) {
1242
+ return "\"" + k + "\"";
1243
+ }).join(', ');
1244
+ };
1245
+ var valuesFromModel = function valuesFromModel(model) {
1246
+ var values = Object.values(model).map(prepareValueForDML);
1247
+ var paramaterized = values.map(function () {
1248
+ return '?';
1249
+ }).join(', ');
1250
+ return [paramaterized, values];
1251
+ };
1252
+ var updateSet = function updateSet(model) {
1253
+ var values = [];
1254
+ var paramaterized = Object.entries(model).filter(function (_a) {
1255
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 1),
1256
+ k = _b[0];
1257
+ return k !== 'id';
1258
+ }).map(function (_a) {
1259
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
1260
+ k = _b[0],
1261
+ v = _b[1];
1262
+ values.push(prepareValueForDML(v));
1263
+ return "\"" + k + "\"=?";
1264
+ }).join(', ');
1265
+ return [paramaterized, values];
1266
+ };
1267
+ function prepareValueForDML(value) {
1268
+ var scalarTypes = ['string', 'number', 'boolean'];
1269
+ var isScalarType = value === null || value === undefined || scalarTypes.includes(_typeof(value));
1270
+ if (isScalarType) {
1271
+ return value;
1272
+ }
1273
+ var isObjectType = _typeof(value) === 'object' && (Object.getPrototypeOf(value).constructor === Object || isNonModelConstructor(Object.getPrototypeOf(value).constructor) || isModelConstructor(Object.getPrototypeOf(value).constructor));
1274
+ if (Array.isArray(value) || isObjectType) {
1275
+ return JSON.stringify(value);
1276
+ }
1277
+ return "" + value;
1278
+ }
1279
+ function getSQLiteType(scalar) {
1280
+ switch (scalar) {
1281
+ case 'Boolean':
1282
+ case 'Int':
1283
+ case 'AWSTimestamp':
1284
+ return 'INTEGER';
1285
+ case 'ID':
1286
+ case 'String':
1287
+ case 'AWSDate':
1288
+ case 'AWSTime':
1289
+ case 'AWSDateTime':
1290
+ case 'AWSEmail':
1291
+ case 'AWSJSON':
1292
+ case 'AWSURL':
1293
+ case 'AWSPhone':
1294
+ case 'AWSIPAddress':
1295
+ return 'TEXT';
1296
+ case 'Float':
1297
+ return 'REAL';
1298
+ default:
1299
+ var _ = scalar;
1300
+ throw new Error("unknown type " + scalar);
1301
+ }
1302
+ }
1303
+ function generateSchemaStatements(schema) {
1304
+ return Object.keys(schema.namespaces).flatMap(function (namespaceName) {
1305
+ var namespace = schema.namespaces[namespaceName];
1306
+ var isUserModel = namespaceName === USER;
1307
+ return Object.values(namespace.models).map(function (model) {
1308
+ return modelCreateTableStatement(model, isUserModel);
1309
+ });
1310
+ });
1311
+ }
1312
+ var implicitAuthFieldsForModel = function implicitAuthFieldsForModel(model) {
1313
+ if (!model.attributes || !model.attributes.length) {
1314
+ return [];
1315
+ }
1316
+ var authRules = model.attributes.find(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["isModelAttributeAuth"]);
1317
+ if (!authRules) {
1318
+ return [];
1319
+ }
1320
+ var authFieldsForModel = authRules.properties.rules.filter(function (rule) {
1321
+ return rule.ownerField || rule.groupsField;
1322
+ }).map(function (rule) {
1323
+ return rule.ownerField || rule.groupsField;
1324
+ });
1325
+ return authFieldsForModel.filter(function (authField) {
1326
+ var authFieldExplicitlyDefined = Object.values(model.fields).find(function (f) {
1327
+ return f.name === authField;
1328
+ });
1329
+ return !authFieldExplicitlyDefined;
1330
+ });
1331
+ };
1332
+ function modelCreateTableStatement(model, userModel) {
1333
+ if (userModel === void 0) {
1334
+ userModel = false;
1335
+ }
1336
+ // implicitly defined auth fields, e.g., `owner`, `groupsField`, etc.
1337
+ var implicitAuthFields = implicitAuthFieldsForModel(model);
1338
+ var fields = Object.values(model.fields).reduce(function (acc, field) {
1339
+ if (Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["isGraphQLScalarType"])(field.type)) {
1340
+ if (field.name === 'id') {
1341
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(acc, ['"id" PRIMARY KEY NOT NULL']);
1342
+ }
1343
+ var columnParam_1 = "\"" + field.name + "\" " + getSQLiteType(field.type);
1344
+ if (field.isRequired) {
1345
+ columnParam_1 += ' NOT NULL';
1346
+ }
1347
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(acc, ["" + columnParam_1]);
1348
+ }
1349
+ if (Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["isModelFieldType"])(field.type)) {
1350
+ var columnParam_2 = "\"" + field.name + "\" TEXT";
1351
+ // add targetName as well as field name for BELONGS_TO relations
1352
+ if (Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["isTargetNameAssociation"])(field.association)) {
1353
+ // check if this field has been explicitly defined in the model
1354
+ var fkDefinedInModel = Object.values(model.fields).find(function (f) {
1355
+ var _a;
1356
+ return f.name === ((_a = field === null || field === void 0 ? void 0 : field.association) === null || _a === void 0 ? void 0 : _a.targetName);
1357
+ });
1358
+ // if the FK is not explicitly defined in the model, we have to add it here
1359
+ if (!fkDefinedInModel) {
1360
+ var required = field.isRequired ? ' NOT NULL' : '';
1361
+ columnParam_2 += ", \"" + field.association.targetName + "\" TEXT" + required;
1362
+ }
1363
+ }
1364
+ // ignore isRequired param for model fields, since they will not contain
1365
+ // the related data locally
1366
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(acc, ["" + columnParam_2]);
1367
+ }
1368
+ // default to TEXT
1369
+ var columnParam = "\"" + field.name + "\" TEXT";
1370
+ if (field.isRequired) {
1371
+ columnParam += ' NOT NULL';
1372
+ }
1373
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(acc, ["" + columnParam]);
1374
+ }, []);
1375
+ implicitAuthFields.forEach(function (authField) {
1376
+ fields.push(authField + " TEXT");
1377
+ });
1378
+ if (userModel) {
1379
+ fields = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(fields, ["\"_version\" INTEGER", "\"_lastChangedAt\" INTEGER", "\"_deleted\" INTEGER"]);
1380
+ }
1381
+ var createTableStatement = "CREATE TABLE IF NOT EXISTS \"" + model.name + "\" (" + fields.join(', ') + ");";
1382
+ return createTableStatement;
1383
+ }
1384
+ function modelInsertStatement(model, tableName) {
1385
+ var keys = keysFromModel(model);
1386
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(valuesFromModel(model), 2),
1387
+ paramaterized = _a[0],
1388
+ values = _a[1];
1389
+ var insertStatement = "INSERT INTO \"" + tableName + "\" (" + keys + ") VALUES (" + paramaterized + ")";
1390
+ return [insertStatement, values];
1391
+ }
1392
+ function modelUpdateStatement(model, tableName) {
1393
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(updateSet(model), 2),
1394
+ paramaterized = _a[0],
1395
+ values = _a[1];
1396
+ var updateStatement = "UPDATE \"" + tableName + "\" SET " + paramaterized + " WHERE id=?";
1397
+ return [updateStatement, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(values, [model.id])];
1398
+ }
1399
+ function queryByIdStatement(id, tableName) {
1400
+ return ["SELECT * FROM \"" + tableName + "\" WHERE \"id\" = ?", [id]];
1401
+ }
1402
+ /*
1403
+ Predicates supported by DataStore:
1404
+
1405
+ Strings: eq | ne | le | lt | ge | gt | contains | notContains | beginsWith | between
1406
+ Numbers: eq | ne | le | lt | ge | gt | between
1407
+ Lists: contains | notContains
1408
+ */
1409
+ var comparisonOperatorMap = {
1410
+ eq: '=',
1411
+ ne: '!=',
1412
+ le: '<=',
1413
+ lt: '<',
1414
+ ge: '>=',
1415
+ gt: '>'
1416
+ };
1417
+ var logicalOperatorMap = {
1418
+ beginsWith: 'LIKE',
1419
+ contains: 'LIKE',
1420
+ notContains: 'NOT LIKE',
1421
+ between: 'BETWEEN'
1422
+ };
1423
+ /**
1424
+ * If the given (operator, operand) indicate the need for a special `NULL` comparison,
1425
+ * that `WHERE` clause condition will be returned. If not special `NULL` handling is
1426
+ * needed, `null` will be returned, and the caller should construct the `WHERE`
1427
+ * clause component using the normal operator map(s) and parameterization.
1428
+ *
1429
+ * @param operator "beginsWith" | "contains" | "notContains" | "between"
1430
+ * | "eq" | "ne" | "le" | "lt" | "ge" | "gt"
1431
+ * @param operand any
1432
+ * @returns (string | null) The `WHERE` clause component or `null` if N/A.
1433
+ */
1434
+ function buildSpecialNullComparison(field, operator, operand) {
1435
+ if (operand === null || operand === undefined) {
1436
+ if (operator === 'eq') {
1437
+ return "\"" + field + "\" IS NULL";
1438
+ } else if (operator === 'ne') {
1439
+ return "\"" + field + "\" IS NOT NULL";
1440
+ }
1441
+ }
1442
+ // no special null handling required
1443
+ return null;
1444
+ }
1445
+ var whereConditionFromPredicateObject = function whereConditionFromPredicateObject(_a) {
1446
+ var field = _a.field,
1447
+ operator = _a.operator,
1448
+ operand = _a.operand;
1449
+ var specialNullClause = buildSpecialNullComparison(field, operator, operand);
1450
+ if (specialNullClause) {
1451
+ return [specialNullClause, []];
1452
+ }
1453
+ var comparisonOperator = comparisonOperatorMap[operator];
1454
+ if (comparisonOperator) {
1455
+ return ["\"" + field + "\" " + comparisonOperator + " ?", [operand]];
1456
+ }
1457
+ var logicalOperatorKey = operator;
1458
+ var logicalOperator = logicalOperatorMap[logicalOperatorKey];
1459
+ if (logicalOperator) {
1460
+ var rightExp = [];
1461
+ switch (logicalOperatorKey) {
1462
+ case 'between':
1463
+ rightExp = operand; // operand is a 2-tuple
1464
+ break;
1465
+ case 'beginsWith':
1466
+ rightExp = [operand + "%"];
1467
+ break;
1468
+ case 'contains':
1469
+ case 'notContains':
1470
+ rightExp = ["%" + operand + "%"];
1471
+ break;
1472
+ default:
1473
+ var _ = logicalOperatorKey;
1474
+ // Incorrect WHERE clause can result in data loss
1475
+ throw new Error('Cannot map predicate to a valid WHERE clause');
1476
+ }
1477
+ return ["\"" + field + "\" " + logicalOperator + " " + rightExp.map(function (_) {
1478
+ return '?';
1479
+ }).join(' AND '), rightExp];
1480
+ }
1481
+ };
1482
+ function whereClauseFromPredicate(predicate) {
1483
+ var result = [];
1484
+ var params = [];
1485
+ recurse(predicate, result, params);
1486
+ var whereClause = "WHERE " + result.join(' ');
1487
+ return [whereClause, params];
1488
+ function recurse(predicate, result, params) {
1489
+ var e_1, _a;
1490
+ if (result === void 0) {
1491
+ result = [];
1492
+ }
1493
+ if (params === void 0) {
1494
+ params = [];
1495
+ }
1496
+ if (Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["isPredicateGroup"])(predicate)) {
1497
+ var groupType = predicate.type,
1498
+ groupPredicates = predicate.predicates;
1499
+ var filterType = '';
1500
+ var isNegation = false;
1501
+ switch (groupType) {
1502
+ case 'not':
1503
+ isNegation = true;
1504
+ break;
1505
+ case 'and':
1506
+ filterType = 'AND';
1507
+ break;
1508
+ case 'or':
1509
+ filterType = 'OR';
1510
+ break;
1511
+ default:
1512
+ var _ = groupType;
1513
+ throw new Error("Invalid " + groupType);
1514
+ }
1515
+ var groupResult = [];
1516
+ try {
1517
+ for (var groupPredicates_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(groupPredicates), groupPredicates_1_1 = groupPredicates_1.next(); !groupPredicates_1_1.done; groupPredicates_1_1 = groupPredicates_1.next()) {
1518
+ var p = groupPredicates_1_1.value;
1519
+ recurse(p, groupResult, params);
1520
+ }
1521
+ } catch (e_1_1) {
1522
+ e_1 = {
1523
+ error: e_1_1
1524
+ };
1525
+ } finally {
1526
+ try {
1527
+ if (groupPredicates_1_1 && !groupPredicates_1_1.done && (_a = groupPredicates_1["return"])) _a.call(groupPredicates_1);
1528
+ } finally {
1529
+ if (e_1) throw e_1.error;
1530
+ }
1531
+ }
1532
+ result.push((isNegation ? 'NOT' : '') + "(" + groupResult.join(" " + filterType + " ") + ")");
1533
+ } else if (Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["isPredicateObj"])(predicate)) {
1534
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(whereConditionFromPredicateObject(predicate), 2),
1535
+ condition = _b[0],
1536
+ conditionParams = _b[1];
1537
+ result.push(condition);
1538
+ params.push.apply(params, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(conditionParams));
1539
+ }
1540
+ }
1541
+ }
1542
+ var sortDirectionMap = {
1543
+ ASCENDING: 'ASC',
1544
+ DESCENDING: 'DESC'
1545
+ };
1546
+ function orderByClauseFromSort(sortPredicate) {
1547
+ if (sortPredicate === void 0) {
1548
+ sortPredicate = [];
1549
+ }
1550
+ var orderByParts = sortPredicate.map(function (_a) {
1551
+ var field = _a.field,
1552
+ sortDirection = _a.sortDirection;
1553
+ return "\"" + field + "\" " + sortDirectionMap[sortDirection];
1554
+ });
1555
+ // We always sort by _rowid_ last
1556
+ orderByParts.push("_rowid_ " + sortDirectionMap.ASCENDING);
1557
+ return "ORDER BY " + orderByParts.join(', ');
1558
+ }
1559
+ function limitClauseFromPagination(limit, page) {
1560
+ if (page === void 0) {
1561
+ page = 0;
1562
+ }
1563
+ var params = [limit];
1564
+ var clause = 'LIMIT ?';
1565
+ if (page) {
1566
+ var offset = limit * page;
1567
+ params.push(offset);
1568
+ clause += ' OFFSET ?';
1569
+ }
1570
+ return [clause, params];
1571
+ }
1572
+ function queryAllStatement(tableName, predicate, sort, limit, page) {
1573
+ var statement = "SELECT * FROM \"" + tableName + "\"";
1574
+ var params = [];
1575
+ if (predicate && predicate.predicates.length) {
1576
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(whereClauseFromPredicate(predicate), 2),
1577
+ whereClause = _a[0],
1578
+ whereParams = _a[1];
1579
+ statement += " " + whereClause;
1580
+ params.push.apply(params, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(whereParams));
1581
+ }
1582
+ var orderByClause = orderByClauseFromSort(sort);
1583
+ statement += " " + orderByClause;
1584
+ if (limit) {
1585
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(limitClauseFromPagination(limit, page), 2),
1586
+ limitClause = _b[0],
1587
+ limitParams = _b[1];
1588
+ statement += " " + limitClause;
1589
+ params.push.apply(params, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(limitParams));
1590
+ }
1591
+ return [statement, params];
1592
+ }
1593
+ function queryOneStatement(firstOrLast, tableName) {
1594
+ if (firstOrLast === _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_1__["QueryOne"].FIRST) {
1595
+ // ORDER BY rowid will no longer work as expected if a customer has
1596
+ // a field by that name in their schema. We may want to enforce it
1597
+ // as a reserved keyword in Codegen
1598
+ return ["SELECT * FROM " + tableName + " ORDER BY _rowid_ LIMIT 1", []];
1599
+ } else {
1600
+ return ["SELECT * FROM " + tableName + " ORDER BY _rowid_ DESC LIMIT 1", []];
1601
+ }
1602
+ }
1603
+ function deleteByIdStatement(id, tableName) {
1604
+ var deleteStatement = "DELETE FROM \"" + tableName + "\" WHERE \"id\"=?";
1605
+ return [deleteStatement, [id]];
1606
+ }
1607
+ function deleteByPredicateStatement(tableName, predicate) {
1608
+ var statement = "DELETE FROM \"" + tableName + "\"";
1609
+ var params = [];
1610
+ if (predicate && predicate.predicates.length) {
1611
+ var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(whereClauseFromPredicate(predicate), 2),
1612
+ whereClause = _a[0],
1613
+ whereParams = _a[1];
1614
+ statement += " " + whereClause;
1615
+ params.push.apply(params, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(whereParams));
1616
+ }
1617
+ return [statement, params];
1618
+ }
1619
+
1620
+ /***/ }),
1621
+
1622
+ /***/ "./lib-esm/common/constants.js":
1623
+ /*!*************************************!*\
1624
+ !*** ./lib-esm/common/constants.js ***!
1625
+ \*************************************/
1626
+ /*! exports provided: DB_NAME */
1627
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1628
+
1629
+ "use strict";
1630
+ __webpack_require__.r(__webpack_exports__);
1631
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DB_NAME", function() { return DB_NAME; });
1632
+ var DB_NAME = 'AmplifyDatastore';
1633
+
1634
+ /***/ }),
1635
+
1636
+ /***/ "@aws-amplify/core":
1637
+ /*!************************************!*\
1638
+ !*** external "@aws-amplify/core" ***!
1639
+ \************************************/
1640
+ /*! no static exports found */
1641
+ /***/ (function(module, exports) {
1642
+
1643
+ module.exports = __WEBPACK_EXTERNAL_MODULE__aws_amplify_core__;
1644
+
1645
+ /***/ }),
1646
+
1647
+ /***/ "@aws-amplify/datastore":
1648
+ /*!*****************************************!*\
1649
+ !*** external "@aws-amplify/datastore" ***!
1650
+ \*****************************************/
1651
+ /*! no static exports found */
1652
+ /***/ (function(module, exports) {
1653
+
1654
+ module.exports = __WEBPACK_EXTERNAL_MODULE__aws_amplify_datastore__;
1655
+
1656
+ /***/ }),
1657
+
1658
+ /***/ "expo-file-system":
1659
+ /*!***********************************!*\
1660
+ !*** external "expo-file-system" ***!
1661
+ \***********************************/
1662
+ /*! no static exports found */
1663
+ /***/ (function(module, exports) {
1664
+
1665
+ module.exports = __WEBPACK_EXTERNAL_MODULE_expo_file_system__;
1666
+
1667
+ /***/ }),
1668
+
1669
+ /***/ "expo-sqlite":
1670
+ /*!******************************!*\
1671
+ !*** external "expo-sqlite" ***!
1672
+ \******************************/
1673
+ /*! no static exports found */
1674
+ /***/ (function(module, exports) {
1675
+
1676
+ module.exports = __WEBPACK_EXTERNAL_MODULE_expo_sqlite__;
1677
+
1678
+ /***/ })
1679
+
1680
+ /******/ });
1681
+ });
1682
+ //# sourceMappingURL=aws-amplify-datastore-sqlite-adapter-expo.js.map