@entropic-bond/firebase 1.6.0 → 1.6.1
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.
- package/lib/auth/firebase-auth.js +92 -191
- package/lib/auth/firebase-auth.js.map +1 -1
- package/lib/auth/firebase-auth.spec.js +2 -2
- package/lib/auth/firebase-auth.spec.js.map +1 -1
- package/lib/cloud-storage/firebase-cloud-storage.js +35 -57
- package/lib/cloud-storage/firebase-cloud-storage.js.map +1 -1
- package/lib/cloud-storage/firebase-cloud-storage.spec.js +76 -198
- package/lib/cloud-storage/firebase-cloud-storage.spec.js.map +1 -1
- package/lib/firebase-helper.js +25 -45
- package/lib/firebase-helper.js.map +1 -1
- package/lib/mocks/test-user.js +110 -178
- package/lib/mocks/test-user.js.map +1 -1
- package/lib/store/firebase-datasource.js +48 -123
- package/lib/store/firebase-datasource.js.map +1 -1
- package/lib/store/firebase-datasource.spec.js +298 -691
- package/lib/store/firebase-datasource.spec.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -29,33 +14,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
29
14
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
30
15
|
});
|
|
31
16
|
};
|
|
32
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
33
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
34
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
35
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
36
|
-
function step(op) {
|
|
37
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
38
|
-
while (_) try {
|
|
39
|
-
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;
|
|
40
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
41
|
-
switch (op[0]) {
|
|
42
|
-
case 0: case 1: t = op; break;
|
|
43
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
44
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
45
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
46
|
-
default:
|
|
47
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
48
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
49
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
50
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
51
|
-
if (t[2]) _.ops.pop();
|
|
52
|
-
_.trys.pop(); continue;
|
|
53
|
-
}
|
|
54
|
-
op = body.call(thisArg, _);
|
|
55
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
56
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
17
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
60
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
61
19
|
};
|
|
@@ -64,183 +22,103 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
64
22
|
* @jest-environment node
|
|
65
23
|
*/
|
|
66
24
|
global.XMLHttpRequest = require('xhr2');
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
25
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
26
|
+
const firebase_cloud_storage_1 = require("./firebase-cloud-storage");
|
|
27
|
+
const firebase_helper_1 = require("../firebase-helper");
|
|
28
|
+
const firebase_datasource_1 = require("../store/firebase-datasource");
|
|
29
|
+
const entropic_bond_1 = require("entropic-bond");
|
|
72
30
|
// Note about tests leaking. I've been checking and looks like firebase.storage
|
|
73
31
|
// methods are the responsible for the test leaking (as firebase v. 8.6.3).
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
return File;
|
|
78
|
-
}());
|
|
32
|
+
class File {
|
|
33
|
+
}
|
|
79
34
|
global['File'] = File;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
_this._file = new entropic_bond_1.StoredFile();
|
|
85
|
-
return _this;
|
|
35
|
+
let Test = class Test extends entropic_bond_1.Persistent {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
this._file = new entropic_bond_1.StoredFile();
|
|
86
39
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}(entropic_bond_1.Persistent));
|
|
102
|
-
describe('Firebase Cloud Storage', function () {
|
|
103
|
-
var blobData1 = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]);
|
|
104
|
-
var blobData2 = new Uint8Array([0x6c, 0x6c, 0x6f, 0x2c, 0x48, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]);
|
|
105
|
-
var file;
|
|
40
|
+
get file() {
|
|
41
|
+
return this._file;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
__decorate([
|
|
45
|
+
entropic_bond_1.persistent
|
|
46
|
+
], Test.prototype, "_file", void 0);
|
|
47
|
+
Test = __decorate([
|
|
48
|
+
(0, entropic_bond_1.registerPersistentClass)('Test')
|
|
49
|
+
], Test);
|
|
50
|
+
describe('Firebase Cloud Storage', () => {
|
|
51
|
+
const blobData1 = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]);
|
|
52
|
+
const blobData2 = new Uint8Array([0x6c, 0x6c, 0x6f, 0x2c, 0x48, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]);
|
|
53
|
+
let file;
|
|
106
54
|
firebase_helper_1.FirebaseHelper.setFirebaseConfig({
|
|
107
55
|
projectId: 'demo-test',
|
|
108
56
|
storageBucket: 'default-bucket'
|
|
109
57
|
});
|
|
110
58
|
firebase_helper_1.FirebaseHelper.useEmulator({ firestorePort: 9080 });
|
|
111
59
|
entropic_bond_1.Store.useDataSource(new firebase_datasource_1.FirebaseDatasource());
|
|
112
|
-
beforeEach(
|
|
60
|
+
beforeEach(() => {
|
|
113
61
|
entropic_bond_1.CloudStorage.useCloudStorage(new firebase_cloud_storage_1.FirebaseCloudStorage());
|
|
114
62
|
file = new entropic_bond_1.StoredFile();
|
|
115
63
|
});
|
|
116
|
-
it('should save and get a url',
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
case 1:
|
|
144
|
-
_a.sent();
|
|
145
|
-
return [4 /*yield*/, file.delete()];
|
|
146
|
-
case 2:
|
|
147
|
-
_a.sent();
|
|
148
|
-
expect(file.url).not.toBeDefined();
|
|
149
|
-
return [2 /*return*/];
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
}); });
|
|
153
|
-
it('should overwrite file on subsequent writes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
154
|
-
var firstUrl, resp, _a, _b;
|
|
155
|
-
return __generator(this, function (_c) {
|
|
156
|
-
switch (_c.label) {
|
|
157
|
-
case 0: return [4 /*yield*/, file.save({ data: blobData1 })];
|
|
158
|
-
case 1:
|
|
159
|
-
_c.sent();
|
|
160
|
-
firstUrl = file.url;
|
|
161
|
-
return [4 /*yield*/, (0, node_fetch_1.default)(file.url)];
|
|
162
|
-
case 2:
|
|
163
|
-
resp = _c.sent();
|
|
164
|
-
_a = expect;
|
|
165
|
-
return [4 /*yield*/, resp.text()];
|
|
166
|
-
case 3:
|
|
167
|
-
_a.apply(void 0, [_c.sent()]).toEqual('Hello, world!');
|
|
168
|
-
return [4 /*yield*/, file.save({ data: blobData2 })];
|
|
169
|
-
case 4:
|
|
170
|
-
_c.sent();
|
|
171
|
-
return [4 /*yield*/, (0, node_fetch_1.default)(file.url)];
|
|
172
|
-
case 5:
|
|
173
|
-
resp = _c.sent();
|
|
174
|
-
expect(file.url.slice(0, file.url.indexOf('token'))).toEqual(firstUrl.slice(0, firstUrl.indexOf('token')));
|
|
175
|
-
_b = expect;
|
|
176
|
-
return [4 /*yield*/, resp.text()];
|
|
177
|
-
case 6:
|
|
178
|
-
_b.apply(void 0, [_c.sent()]).toEqual('llo,He world!');
|
|
179
|
-
return [2 /*return*/];
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}); });
|
|
183
|
-
it('should trigger events', function (done) {
|
|
184
|
-
var cb = jest.fn();
|
|
185
|
-
file.save({ data: blobData1 }).then(function () {
|
|
64
|
+
it('should save and get a url', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
yield file.save({ data: blobData1 });
|
|
66
|
+
expect(file.url).toContain(file.id);
|
|
67
|
+
}));
|
|
68
|
+
it('should report metadata', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
yield file.save({ data: blobData1, fileName: 'test.dat' });
|
|
70
|
+
expect(file.originalFileName).toEqual('test.dat');
|
|
71
|
+
expect(file.provider.className).toEqual('FirebaseCloudStorage');
|
|
72
|
+
}));
|
|
73
|
+
it('should delete file', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
+
yield file.save({ data: blobData1 });
|
|
75
|
+
yield file.delete();
|
|
76
|
+
expect(file.url).not.toBeDefined();
|
|
77
|
+
}));
|
|
78
|
+
it('should overwrite file on subsequent writes', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
|
+
yield file.save({ data: blobData1 });
|
|
80
|
+
const firstUrl = file.url;
|
|
81
|
+
let resp = yield (0, node_fetch_1.default)(file.url);
|
|
82
|
+
expect(yield resp.text()).toEqual('Hello, world!');
|
|
83
|
+
yield file.save({ data: blobData2 });
|
|
84
|
+
resp = yield (0, node_fetch_1.default)(file.url);
|
|
85
|
+
expect(file.url.slice(0, file.url.indexOf('token'))).toEqual(firstUrl.slice(0, firstUrl.indexOf('token')));
|
|
86
|
+
expect(yield resp.text()).toEqual('llo,He world!');
|
|
87
|
+
}));
|
|
88
|
+
it('should trigger events', done => {
|
|
89
|
+
const cb = jest.fn();
|
|
90
|
+
file.save({ data: blobData1 }).then(() => {
|
|
186
91
|
expect(cb).toHaveBeenCalledTimes(2);
|
|
187
92
|
done();
|
|
188
93
|
});
|
|
189
94
|
file.uploadControl().onProgress(cb);
|
|
190
95
|
});
|
|
191
|
-
describe('Streaming',
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
beforeEach(
|
|
96
|
+
describe('Streaming', () => {
|
|
97
|
+
let model;
|
|
98
|
+
let testObj;
|
|
99
|
+
beforeEach(() => {
|
|
195
100
|
testObj = new Test();
|
|
196
101
|
model = entropic_bond_1.Store.getModel(testObj);
|
|
197
102
|
});
|
|
198
|
-
it('should load object with StoredFile',
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
})
|
|
217
|
-
it('should replace file on save after load', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
218
|
-
var deleteSpy, newTestObj;
|
|
219
|
-
return __generator(this, function (_a) {
|
|
220
|
-
switch (_a.label) {
|
|
221
|
-
case 0:
|
|
222
|
-
deleteSpy = jest.spyOn(testObj.file, 'delete');
|
|
223
|
-
return [4 /*yield*/, testObj.file.save({ data: blobData1, fileName: 'test.dat' })];
|
|
224
|
-
case 1:
|
|
225
|
-
_a.sent();
|
|
226
|
-
return [4 /*yield*/, model.save(testObj)];
|
|
227
|
-
case 2:
|
|
228
|
-
_a.sent();
|
|
229
|
-
return [4 /*yield*/, model.findById(testObj.id)];
|
|
230
|
-
case 3:
|
|
231
|
-
newTestObj = _a.sent();
|
|
232
|
-
expect(newTestObj.file).toBeInstanceOf(entropic_bond_1.StoredFile);
|
|
233
|
-
expect(newTestObj.file.url).toContain(testObj.file.id);
|
|
234
|
-
expect(deleteSpy).not.toHaveBeenCalled();
|
|
235
|
-
testObj.file.setDataToStore(blobData2);
|
|
236
|
-
return [4 /*yield*/, testObj.file.save()];
|
|
237
|
-
case 4:
|
|
238
|
-
_a.sent();
|
|
239
|
-
expect(deleteSpy).toHaveBeenCalled();
|
|
240
|
-
return [2 /*return*/];
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}); });
|
|
103
|
+
it('should load object with StoredFile', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
104
|
+
yield testObj.file.save({ data: blobData1, fileName: 'test.dat' });
|
|
105
|
+
yield model.save(testObj);
|
|
106
|
+
const newTestObj = yield model.findById(testObj.id);
|
|
107
|
+
expect(newTestObj.file).toBeInstanceOf(entropic_bond_1.StoredFile);
|
|
108
|
+
expect(newTestObj.file.url).toContain(testObj.file.id);
|
|
109
|
+
}));
|
|
110
|
+
it('should replace file on save after load', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
111
|
+
const deleteSpy = jest.spyOn(testObj.file, 'delete');
|
|
112
|
+
yield testObj.file.save({ data: blobData1, fileName: 'test.dat' });
|
|
113
|
+
yield model.save(testObj);
|
|
114
|
+
const newTestObj = yield model.findById(testObj.id);
|
|
115
|
+
expect(newTestObj.file).toBeInstanceOf(entropic_bond_1.StoredFile);
|
|
116
|
+
expect(newTestObj.file.url).toContain(testObj.file.id);
|
|
117
|
+
expect(deleteSpy).not.toHaveBeenCalled();
|
|
118
|
+
testObj.file.setDataToStore(blobData2);
|
|
119
|
+
yield testObj.file.save();
|
|
120
|
+
expect(deleteSpy).toHaveBeenCalled();
|
|
121
|
+
}));
|
|
244
122
|
});
|
|
245
123
|
});
|
|
246
124
|
//# sourceMappingURL=firebase-cloud-storage.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-cloud-storage.spec.js","sourceRoot":"","sources":["../../src/cloud-storage/firebase-cloud-storage.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-cloud-storage.spec.js","sourceRoot":"","sources":["../../src/cloud-storage/firebase-cloud-storage.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/firebase-helper.js
CHANGED
|
@@ -1,64 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.FirebaseHelper = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
const app_1 = require("firebase/app");
|
|
5
|
+
const firestore_1 = require("firebase/firestore");
|
|
6
|
+
const auth_1 = require("firebase/auth");
|
|
7
|
+
const storage_1 = require("firebase/storage");
|
|
8
|
+
class FirebaseHelper {
|
|
9
|
+
constructor() {
|
|
21
10
|
if (!FirebaseHelper._firebaseConfig)
|
|
22
11
|
throw new Error('You should set a firebase config object before using Firebase');
|
|
23
12
|
this._firebaseApp = (0, app_1.initializeApp)(FirebaseHelper._firebaseConfig);
|
|
24
13
|
}
|
|
25
|
-
|
|
14
|
+
static setFirebaseConfig(config) {
|
|
26
15
|
FirebaseHelper._firebaseConfig = config;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
}
|
|
17
|
+
static useEmulator(emulatorConfig) {
|
|
18
|
+
const defaultConfig = {
|
|
30
19
|
host: 'localhost',
|
|
31
20
|
firestorePort: 8080,
|
|
32
21
|
storagePort: 9199,
|
|
33
22
|
authPort: 9099,
|
|
34
23
|
emulate: true
|
|
35
24
|
};
|
|
36
|
-
this._emulatorConfig =
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Object.defineProperty(FirebaseHelper, "instance", {
|
|
46
|
-
get: function () {
|
|
47
|
-
return this._instance || (this._instance = new FirebaseHelper());
|
|
48
|
-
},
|
|
49
|
-
enumerable: false,
|
|
50
|
-
configurable: true
|
|
51
|
-
});
|
|
52
|
-
FirebaseHelper.prototype.firestore = function () {
|
|
25
|
+
this._emulatorConfig = Object.assign(Object.assign({}, defaultConfig), emulatorConfig);
|
|
26
|
+
}
|
|
27
|
+
static get emulator() {
|
|
28
|
+
return this._emulatorConfig;
|
|
29
|
+
}
|
|
30
|
+
static get instance() {
|
|
31
|
+
return this._instance || (this._instance = new FirebaseHelper());
|
|
32
|
+
}
|
|
33
|
+
firestore() {
|
|
53
34
|
return (0, firestore_1.getFirestore)(this._firebaseApp);
|
|
54
|
-
}
|
|
55
|
-
|
|
35
|
+
}
|
|
36
|
+
storage() {
|
|
56
37
|
return (0, storage_1.getStorage)(this._firebaseApp);
|
|
57
|
-
}
|
|
58
|
-
|
|
38
|
+
}
|
|
39
|
+
auth() {
|
|
59
40
|
return (0, auth_1.getAuth)(this._firebaseApp);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
}());
|
|
41
|
+
}
|
|
42
|
+
}
|
|
63
43
|
exports.FirebaseHelper = FirebaseHelper;
|
|
64
44
|
//# sourceMappingURL=firebase-helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-helper.js","sourceRoot":"","sources":["../src/firebase-helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-helper.js","sourceRoot":"","sources":["../src/firebase-helper.ts"],"names":[],"mappings":";;;AAAA,sCAAyD;AACzD,kDAA2F;AAC3F,wCAAuC;AACvC,8CAA6C;AAwB7C,MAAa,cAAc;IAyB1B;QACC,IAAK,CAAC,cAAc,CAAC,eAAe;YAAG,MAAM,IAAI,KAAK,CAAE,+DAA+D,CAAE,CAAA;QACzH,IAAI,CAAC,YAAY,GAAG,IAAA,mBAAa,EAAE,cAAc,CAAC,eAAe,CAAE,CAAA;IACpE,CAAC;IA1BD,MAAM,CAAC,iBAAiB,CAAE,MAAsB;QAC/C,cAAc,CAAC,eAAe,GAAG,MAAM,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,WAAW,CAAE,cAA+B;QAClD,MAAM,aAAa,GAAG;YACrB,IAAI,EAAE,WAAW;YACjB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACb,CAAA;QAED,IAAI,CAAC,eAAe,mCAChB,aAAa,GACb,cAAc,CACjB,CAAA;IACF,CAAC;IAED,MAAM,KAAK,QAAQ;QAClB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC5B,CAAC;IAOD,MAAM,KAAK,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAE,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAE,CAAA;IACnE,CAAC;IAED,SAAS;QACR,OAAO,IAAA,wBAAY,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;IACzC,CAAC;IAED,OAAO;QACN,OAAO,IAAA,oBAAU,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;IACvC,CAAC;IAED,IAAI;QACH,OAAO,IAAA,cAAO,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;IACpC,CAAC;CAMD;AAlDD,wCAkDC"}
|