@sofiakb/fireblaze-ts 1.0.0-dev.2 → 1.0.0-dev.20

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.
@@ -10,6 +10,13 @@ interface FirebaseConfig {
10
10
  ports?: {
11
11
  firestore?: number;
12
12
  };
13
+ auth?: {
14
+ url?: string;
15
+ };
16
+ storage?: {
17
+ host?: string;
18
+ port?: number;
19
+ };
13
20
  };
14
21
  }
15
22
  export default FirebaseConfig;
@@ -32,10 +32,16 @@ class Firebase {
32
32
  }
33
33
  withAuth() {
34
34
  this.auth = (0, auth_1.getAuth)(this.app);
35
+ if (this.config.withEmulator === true && !!this.config.emulators?.auth?.url)
36
+ (0, auth_1.connectAuthEmulator)(this.auth, this.config.emulators.auth.url);
35
37
  this.saveGlobally();
36
38
  }
37
39
  withStorage() {
38
40
  this.storage = (0, storage_1.getStorage)(this.app);
41
+ if (this.config.withEmulator === true &&
42
+ !!this.config.emulators?.storage?.host &&
43
+ !!this.config.emulators?.storage?.port)
44
+ (0, storage_1.connectStorageEmulator)(this.storage, this.config.emulators.storage.host, this.config.emulators.storage.port);
39
45
  this.saveGlobally();
40
46
  }
41
47
  static get() {
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/core/firebase.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AAEH,sCAA0D;AAC1D,kDAA4E;AAE5E,wCAA8C;AAC9C,8CAA+D;AAI/D,MAAqB,QAAQ;IAC5B,MAAM,CAAiB;IACvB,GAAG,CAAc;IAEjB,IAAI,CAAQ;IACZ,OAAO,CAAmB;IAE1B,YAAY,MAAsB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,GAAG,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;YAC/B,IAAA,oCAAwB,EAAC,IAAA,wBAAY,GAAE,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;QAEnG,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACV,UAAkB,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC7C,UAAkB,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC;QACrD,UAAkB,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC;QACvD,UAAkB,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/D,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,IAAI,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAG;QACT,OAAQ,UAAkB,CAAC,kBAAkB,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM;QACZ,OAAQ,UAAkB,CAAC,sBAAsB,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,OAAO;QACb,OAAQ,UAAkB,CAAC,uBAAuB,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,UAAU;QAChB,OAAQ,UAAkB,CAAC,0BAA0B,CAAC;IACvD,CAAC;CACD;AAlDD,2BAkDC"}
1
+ {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/core/firebase.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AAEH,sCAA0D;AAC1D,kDAA4E;AAE5E,wCAAmE;AACnE,8CAAuF;AAIvF,MAAqB,QAAQ;IAC5B,MAAM,CAAiB;IACvB,GAAG,CAAc;IAEjB,IAAI,CAAQ;IACZ,OAAO,CAAmB;IAE1B,YAAY,MAAsB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,GAAG,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;YAC/B,IAAA,oCAAwB,EAAC,IAAA,wBAAY,GAAE,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;QAEnG,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACV,UAAkB,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC7C,UAAkB,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC;QACrD,UAAkB,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC;QACvD,UAAkB,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/D,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,IAAI,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG;YAC1E,IAAA,0BAAmB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,IACC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;YACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI;YACtC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI;YAEtC,IAAA,gCAAsB,EACrB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAClC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAG;QACT,OAAQ,UAAkB,CAAC,kBAAkB,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM;QACZ,OAAQ,UAAkB,CAAC,sBAAsB,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,OAAO;QACb,OAAQ,UAAkB,CAAC,uBAAuB,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,UAAU;QAChB,OAAQ,UAAkB,CAAC,0BAA0B,CAAC;IACvD,CAAC;CACD;AA9DD,2BA8DC"}
@@ -2,23 +2,25 @@ import { FirebaseApp } from 'firebase/app';
2
2
  import { CollectionReference, DocumentReference, FieldPath, Firestore, FirestoreError, OrderByDirection, Query, QueryConstraint, QuerySnapshot, WhereFilterOp } from 'firebase/firestore';
3
3
  import { ClassConstructor } from '../types/class-constructor';
4
4
  import Nullable from '../types/nullable';
5
- export interface FirebaseRepositoryAttributes {
5
+ import PreparedData from './prepared-data';
6
+ export interface FirestoreRepositoryAttributes<T> {
6
7
  collectionName: string;
7
- options?: FirebaseRepositoryOptions;
8
+ options?: FirestoreRepositoryOptions;
8
9
  firebase?: FirebaseApp;
10
+ model?: ClassConstructor<T> | null;
9
11
  }
10
- export interface FirebaseRepositoryOptions {
12
+ export interface FirestoreRepositoryOptions {
11
13
  cache: {
12
14
  use: boolean;
13
15
  until: number;
14
16
  };
15
17
  }
16
- export default class FirebaseRepository<T> {
18
+ export default class FirestoreRepository<T> {
17
19
  #private;
18
20
  model: ClassConstructor<T> | null;
19
- options?: FirebaseRepositoryOptions;
21
+ options?: FirestoreRepositoryOptions;
20
22
  _firestoreLocalStoragePrefix: string;
21
- constructor(attributes: FirebaseRepositoryAttributes);
23
+ constructor(attributes: FirestoreRepositoryAttributes<T>);
22
24
  clearLocalStorage(): boolean;
23
25
  cleanup(data: any): any;
24
26
  casting(data: any): Promise<T | null>;
@@ -34,18 +36,19 @@ export default class FirebaseRepository<T> {
34
36
  limit(_limit?: number): this;
35
37
  first(): Promise<any>;
36
38
  offset(_offset?: number): this;
37
- prepareData(data: any): {
38
- documentReference: DocumentReference<import("firebase/firestore").DocumentData>;
39
- data: any;
40
- };
39
+ prepareData(data: any): PreparedData;
41
40
  store(data: any): Promise<T | null>;
42
41
  storeMultiple(values: any[]): Promise<void>;
43
42
  update(docID: string, data: any, force?: boolean): Promise<any>;
44
- delete(docID: string): Promise<any>;
43
+ delete(docID?: string): Promise<any>;
44
+ private deleteWhere;
45
45
  deleteMultiple(values: any[]): Promise<void>;
46
46
  count(_where?: QueryConstraint): Promise<number>;
47
- get(snapshot?: QuerySnapshot): Promise<any | null>;
48
- snapshots(callback?: (value: any) => any, cast?: boolean): Promise<any[] | null>;
47
+ get(cast?: boolean, snapshot?: QuerySnapshot): Promise<any | null>;
48
+ snapshots(callback?: (value: any) => any, options?: {
49
+ cast?: boolean;
50
+ metaData?: boolean;
51
+ }): import("firebase/firestore").Unsubscribe | null;
49
52
  static verifyLogin(error: FirestoreError): null | Promise<any> | FirestoreError;
50
53
  static _now(): Date;
51
54
  get collection(): CollectionReference;
@@ -53,6 +56,7 @@ export default class FirebaseRepository<T> {
53
56
  get collectionName(): string;
54
57
  set collectionName(collectionName: string);
55
58
  get snapshot(): Nullable<Query>;
59
+ set snapshot(snapshot: Nullable<Query>);
56
60
  get firestore(): Firestore;
57
61
  set firestore(firestore: Firestore);
58
62
  get instance(): FirebaseApp;
@@ -12,7 +12,9 @@ const utils_1 = require("../utils");
12
12
  const date_1 = require("../utils/date");
13
13
  const no_firebase_instance_exception_1 = __importDefault(require("../exceptions/no-firebase-instance-exception"));
14
14
  const firebase_1 = __importDefault(require("./firebase"));
15
- class FirebaseRepository {
15
+ const prepared_data_1 = __importDefault(require("./prepared-data"));
16
+ const empty_snapshot_exception_1 = __importDefault(require("../exceptions/empty-snapshot-exception"));
17
+ class FirestoreRepository {
16
18
  #instance;
17
19
  #firestore;
18
20
  #collection;
@@ -37,6 +39,7 @@ class FirebaseRepository {
37
39
  return self.clearLocalStorage();
38
40
  });
39
41
  }
42
+ this.model = attributes.model ?? null;
40
43
  }
41
44
  clearLocalStorage() {
42
45
  const localStorageKeys = Object.keys(localStorage), _firestoreLocalStoragePrefix = this._firestoreLocalStoragePrefix;
@@ -85,7 +88,7 @@ class FirebaseRepository {
85
88
  if (docID.trim() === '')
86
89
  return null;
87
90
  return new Promise(async (resolve, reject) => {
88
- const documentData = await (0, firestore_1.getDoc)(this.documentReference(docID)).catch((error) => reject(FirebaseRepository.verifyLogin(error)));
91
+ const documentData = await (0, firestore_1.getDoc)(this.documentReference(docID)).catch((error) => reject(FirestoreRepository.verifyLogin(error)));
89
92
  if (documentData instanceof firestore_1.DocumentSnapshot) {
90
93
  return documentData.exists()
91
94
  ? resolve(cast ? await this.casting(documentData.data()) : documentData)
@@ -114,21 +117,21 @@ class FirebaseRepository {
114
117
  if (!data.id) {
115
118
  data.id = '';
116
119
  }
117
- data.createdAt = (0, date_1.toMoment)(data.createdAt ?? FirebaseRepository._now());
118
- data.updatedAt = (0, date_1.toMoment)(data.updatedAt ?? FirebaseRepository._now());
120
+ data.createdAt = (0, date_1.toMoment)(data.createdAt ?? FirestoreRepository._now());
121
+ data.updatedAt = (0, date_1.toMoment)(data.updatedAt ?? FirestoreRepository._now());
119
122
  data = (0, lodash_1.pickBy)(data, (v) => v !== undefined);
120
123
  Object.keys(data).map((key) => (data[key] =
121
- typeof data[key] === 'object'
124
+ data[key] !== null && typeof data[key] === 'object'
122
125
  ? data[key]?.constructor?.name?.toLowerCase() === 'moment'
123
126
  ? data[key].toDate()
124
127
  : (0, utils_1.toJSON)(data[key])
125
128
  : data[key]));
126
129
  const documentReference = data.id && data.id.trim() !== '' ? (0, firestore_1.doc)(this.collection, data.id) : (0, firestore_1.doc)(this.collection);
127
- return { documentReference, data: { ...data, id: documentReference.id } };
130
+ return prepared_data_1.default.create({ documentReference, data: { ...data, id: documentReference.id } });
128
131
  }
129
132
  async store(data) {
130
133
  const prepared = this.prepareData(data);
131
- await (0, firestore_1.setDoc)(prepared.documentReference, { ...this.cleanup(prepared.data), id: prepared.documentReference.id });
134
+ await (0, firestore_1.setDoc)(prepared.documentReference, { ...prepared.data, id: prepared.documentReference.id });
132
135
  return await this.casting({ ...data, id: prepared.documentReference.id });
133
136
  }
134
137
  async storeMultiple(values) {
@@ -150,7 +153,7 @@ class FirebaseRepository {
150
153
  return null;
151
154
  const documentReference = this.documentReference(docID);
152
155
  if (documentReference) {
153
- data.updatedAt = FirebaseRepository._now();
156
+ data.updatedAt = FirestoreRepository._now();
154
157
  delete data.createdAt;
155
158
  if (force) {
156
159
  await (0, firestore_1.setDoc)(documentReference, data);
@@ -163,8 +166,8 @@ class FirebaseRepository {
163
166
  return this.doc(docID);
164
167
  }
165
168
  async delete(docID) {
166
- if (docID.trim() === '')
167
- return null;
169
+ if (typeof docID === 'undefined' || docID.trim() === '')
170
+ return this.deleteWhere();
168
171
  const documentReference = this.documentReference(docID);
169
172
  this.clearLocalStorage();
170
173
  if (documentReference) {
@@ -173,6 +176,12 @@ class FirebaseRepository {
173
176
  }
174
177
  return false;
175
178
  }
179
+ async deleteWhere() {
180
+ if (this.#snapshot === null)
181
+ throw new empty_snapshot_exception_1.default();
182
+ const items = await this.get(false);
183
+ (0, lodash_1.each)(items, (doc) => (doc.id ? this.delete(doc.id) : null));
184
+ }
176
185
  async deleteMultiple(values) {
177
186
  const chunkValues = (0, lodash_1.chunk)(values, 500);
178
187
  this.clearLocalStorage();
@@ -201,10 +210,10 @@ class FirebaseRepository {
201
210
  }
202
211
  return count;
203
212
  }
204
- async get(snapshot) {
213
+ async get(cast = true, snapshot) {
205
214
  return new Promise((resolve, reject) => {
206
215
  if (!this.#snapshot) {
207
- return reject(null);
216
+ return reject(new empty_snapshot_exception_1.default());
208
217
  }
209
218
  const _query = this.#snapshot;
210
219
  // @ts-ignore
@@ -238,7 +247,9 @@ class FirebaseRepository {
238
247
  (0, firestore_1.getDocs)(_query)
239
248
  .then(async (querySnapshot) => {
240
249
  this.#snapshot = null;
241
- const result = await this._castData(querySnapshot);
250
+ const result = cast
251
+ ? await this._castData(querySnapshot)
252
+ : await Promise.all(querySnapshot.docs.map(async (doc) => await doc.data()));
242
253
  if (this.options?.cache.use) {
243
254
  const firestoreStorage = {
244
255
  data: await Promise.all(querySnapshot.docs.map(async (doc) => doc.data())),
@@ -249,31 +260,29 @@ class FirebaseRepository {
249
260
  }
250
261
  resolve(result);
251
262
  })
252
- .catch((error) => reject(FirebaseRepository.verifyLogin(error)))
263
+ .catch((error) => reject(FirestoreRepository.verifyLogin(error)))
253
264
  .finally(() => (this.#snapshot = null));
254
265
  });
255
266
  }
256
- async snapshots(callback, cast) {
257
- return new Promise((resolve, reject) => {
258
- if (!this.#snapshot) {
259
- return reject(null);
267
+ snapshots(callback, options) {
268
+ if (!this.snapshot) {
269
+ return null;
270
+ }
271
+ const _query = this.snapshot;
272
+ return (0, firestore_1.onSnapshot)(_query, { includeMetadataChanges: options?.metaData ?? true }, async (querySnapshot) => {
273
+ this.snapshot = null;
274
+ const results = options?.cast
275
+ ? await this._castData(querySnapshot)
276
+ : await Promise.all(querySnapshot.docs.map(async (doc) => await doc.data()));
277
+ if (callback) {
278
+ callback(results);
260
279
  }
261
- const _query = this.#snapshot;
262
- (0, firestore_1.onSnapshot)(_query, { includeMetadataChanges: true }, async (querySnapshot) => {
263
- this.#snapshot = null;
264
- const results = cast
265
- ? await this._castData(querySnapshot)
266
- : await Promise.all(querySnapshot.docs.map(async (doc) => await doc.data()));
267
- if (callback) {
268
- callback(results);
269
- }
270
- return resolve(results);
271
- }, (error) => reject(FirebaseRepository.verifyLogin(error)), () => (this.#snapshot = null));
272
- });
280
+ return results;
281
+ }, (error) => FirestoreRepository.verifyLogin(error), () => (this.snapshot = null));
273
282
  }
274
283
  static verifyLogin(error) {
275
284
  if (error.code === 'permission-denied') {
276
- return null;
285
+ return error;
277
286
  /*cookie.delete(store.getters.TOKEN_NAME)
278
287
  return redirect.login.view()*/
279
288
  }
@@ -299,6 +308,9 @@ class FirebaseRepository {
299
308
  get snapshot() {
300
309
  return this.#snapshot;
301
310
  }
311
+ set snapshot(snapshot) {
312
+ this.#snapshot = snapshot;
313
+ }
302
314
  get firestore() {
303
315
  return this.#firestore;
304
316
  }
@@ -309,5 +321,5 @@ class FirebaseRepository {
309
321
  return this.#instance;
310
322
  }
311
323
  }
312
- exports.default = FirebaseRepository;
313
- //# sourceMappingURL=firebase-repository.js.map
324
+ exports.default = FirestoreRepository;
325
+ //# sourceMappingURL=firestore-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore-repository.js","sourceRoot":"","sources":["../../src/core/firestore-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { DocumentReference } from 'firebase/firestore';
2
+ interface PreparedDataProperties {
3
+ documentReference: DocumentReference;
4
+ data: any;
5
+ }
6
+ /**
7
+ * @class PreparedData
8
+ */
9
+ export default class PreparedData {
10
+ documentReference: DocumentReference;
11
+ data: any;
12
+ /**
13
+ * @constructor PreparedData
14
+ *
15
+ * @param {PreparedDataProperties} properties
16
+ */
17
+ constructor(properties: PreparedDataProperties);
18
+ /**
19
+ * @method create
20
+ *
21
+ * @param {PreparedDataProperties} properties
22
+ *
23
+ * @return {PreparedData}
24
+ */
25
+ static create(properties: PreparedDataProperties): PreparedData;
26
+ }
27
+ export {};
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * @class PreparedData
5
+ */
6
+ class PreparedData {
7
+ documentReference;
8
+ data;
9
+ /**
10
+ * @constructor PreparedData
11
+ *
12
+ * @param {PreparedDataProperties} properties
13
+ */
14
+ constructor(properties) {
15
+ this.data = properties.data;
16
+ this.documentReference = properties.documentReference;
17
+ }
18
+ /**
19
+ * @method create
20
+ *
21
+ * @param {PreparedDataProperties} properties
22
+ *
23
+ * @return {PreparedData}
24
+ */
25
+ static create(properties) {
26
+ return new PreparedData(properties);
27
+ }
28
+ }
29
+ exports.default = PreparedData;
30
+ //# sourceMappingURL=prepared-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepared-data.js","sourceRoot":"","sources":["../../src/core/prepared-data.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAkBb;;GAEG;AACH,MAAqB,YAAY;IAChC,iBAAiB,CAAoB;IACrC,IAAI,CAAM;IAEV;;;;OAIG;IACH,YAAY,UAAkC;QAC7C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,UAAkC;QAC/C,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACD;AAxBD,+BAwBC"}
@@ -0,0 +1,3 @@
1
+ export default class EmptySnapshotException extends Error {
2
+ constructor(message?: string);
3
+ }
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /*
4
+ * @sofiakb/fireblaze-ts
5
+ *
6
+ * (c) Sofiane Akbly <sofiane.akbly@digi-service.fr>
7
+ *
8
+ * Created by WebStorm on 21/09/2022 at 14:27
9
+ * File src/exceptions/empty-snapshot-exception
10
+ */
11
+ class EmptySnapshotException extends Error {
12
+ constructor(message = 'Error: Snapshot query empty. (Method [get])') {
13
+ super(message);
14
+ }
15
+ }
16
+ exports.default = EmptySnapshotException;
17
+ //# sourceMappingURL=empty-snapshot-exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-snapshot-exception.js","sourceRoot":"","sources":["../../src/exceptions/empty-snapshot-exception.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AAEH,MAAqB,sBAAuB,SAAQ,KAAK;IACxD,YAAY,OAAO,GAAG,6CAA6C;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC;CACD;AAJD,yCAIC"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { default as Firebase } from './core/firebase';
2
2
  export { default as FirebaseConfig } from './core/firebase-config';
3
- export { default as FirebaseRepository } from './core/firebase-repository';
3
+ export { default as FirestoreRepository, FirestoreRepositoryAttributes } from './core/firestore-repository';
4
4
  export { default as NoFirebaseInstanceException } from './exceptions/no-firebase-instance-exception';
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NoFirebaseInstanceException = exports.FirebaseRepository = exports.Firebase = void 0;
6
+ exports.NoFirebaseInstanceException = exports.FirestoreRepository = exports.Firebase = void 0;
7
7
  /*
8
8
  * @sofiakb/fireblaze-ts
9
9
  *
@@ -14,8 +14,8 @@ exports.NoFirebaseInstanceException = exports.FirebaseRepository = exports.Fireb
14
14
  */
15
15
  var firebase_1 = require("./core/firebase");
16
16
  Object.defineProperty(exports, "Firebase", { enumerable: true, get: function () { return __importDefault(firebase_1).default; } });
17
- var firebase_repository_1 = require("./core/firebase-repository");
18
- Object.defineProperty(exports, "FirebaseRepository", { enumerable: true, get: function () { return __importDefault(firebase_repository_1).default; } });
17
+ var firestore_repository_1 = require("./core/firestore-repository");
18
+ Object.defineProperty(exports, "FirestoreRepository", { enumerable: true, get: function () { return __importDefault(firestore_repository_1).default; } });
19
19
  var no_firebase_instance_exception_1 = require("./exceptions/no-firebase-instance-exception");
20
20
  Object.defineProperty(exports, "NoFirebaseInstanceException", { enumerable: true, get: function () { return __importDefault(no_firebase_instance_exception_1).default; } });
21
21
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb;;;;;;;GAOG;AAEH,4CAAsD;AAA7C,qHAAA,OAAO,OAAY;AAE5B,kEAA2E;AAAlE,0IAAA,OAAO,OAAsB;AACtC,8FAAqG;AAA5F,8JAAA,OAAO,OAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb;;;;;;;GAOG;AAEH,4CAAsD;AAA7C,qHAAA,OAAO,OAAY;AAE5B,oEAA4G;AAAnG,4IAAA,OAAO,OAAuB;AACvC,8FAAqG;AAA5F,8JAAA,OAAO,OAA+B"}
@@ -1,10 +1,16 @@
1
1
  'use strict';
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toJSON = exports.base64 = void 0;
4
+ const lodash_1 = require("lodash");
4
5
  exports.base64 = {
5
6
  encode: (data) => Buffer.from(data).toString('base64'),
6
7
  decode: (data) => Buffer.from(data, 'base64').toString('ascii'),
7
8
  };
8
- const toJSON = (object) => ({ ...object });
9
+ const toJSON = (object) => {
10
+ if (Array.isArray(object)) {
11
+ return (0, lodash_1.map)(object, (item) => (typeof item === 'object' ? (0, exports.toJSON)(item) : item));
12
+ }
13
+ return JSON.parse(JSON.stringify({ ...object }));
14
+ };
9
15
  exports.toJSON = toJSON;
10
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAiBA,QAAA,MAAM,GAAoB;IACtC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC9D,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;CACvE,CAAC;AAEK,MAAM,MAAM,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAA1C,QAAA,MAAM,UAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,mCAA6B;AAiBhB,QAAA,MAAM,GAAoB;IACtC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC9D,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;CACvE,CAAC;AAEK,MAAM,MAAM,GAAG,CAAC,MAAW,EAAO,EAAE;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,IAAA,YAAG,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KAC/E;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AALW,QAAA,MAAM,UAKjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sofiakb/fireblaze-ts",
3
- "version": "1.0.0-dev.2",
3
+ "version": "1.0.0-dev.20",
4
4
  "description": "A typescript library for axios API calls.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"firebase-repository.js","sourceRoot":"","sources":["../../src/core/firebase-repository.ts"],"names":[],"mappings":"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"}