@intuitionrobotics/firebase 0.47.59 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/LICENSE +3 -0
  2. package/{app-backend → dist/app-backend}/FirebaseModule.d.ts +3 -2
  3. package/dist/app-backend/FirebaseModule.d.ts.map +1 -0
  4. package/{app-backend → dist/app-backend}/FirebaseModule.js +17 -19
  5. package/dist/app-backend/FirebaseModule.js.map +1 -0
  6. package/{app-backend → dist/app-backend}/auth/FirebaseBaseWrapper.d.ts +2 -1
  7. package/dist/app-backend/auth/FirebaseBaseWrapper.d.ts.map +1 -0
  8. package/{app-backend → dist/app-backend}/auth/FirebaseBaseWrapper.js +4 -6
  9. package/dist/app-backend/auth/FirebaseBaseWrapper.js.map +1 -0
  10. package/{app-backend → dist/app-backend}/auth/FirebaseSession_Admin.d.ts +4 -3
  11. package/dist/app-backend/auth/FirebaseSession_Admin.d.ts.map +1 -0
  12. package/{app-backend → dist/app-backend}/auth/FirebaseSession_Admin.js +13 -16
  13. package/dist/app-backend/auth/FirebaseSession_Admin.js.map +1 -0
  14. package/dist/app-backend/auth/FirebaseSession_UserPassword.d.ts +2 -0
  15. package/dist/app-backend/auth/FirebaseSession_UserPassword.d.ts.map +1 -0
  16. package/{app-backend → dist/app-backend}/auth/FirebaseSession_UserPassword.js +2 -2
  17. package/{app-backend → dist/app-backend}/auth/FirebaseSession_UserPassword.js.map +1 -1
  18. package/{app-backend → dist/app-backend}/auth/firebase-session.d.ts +6 -5
  19. package/dist/app-backend/auth/firebase-session.d.ts.map +1 -0
  20. package/{app-backend → dist/app-backend}/auth/firebase-session.js +19 -14
  21. package/dist/app-backend/auth/firebase-session.js.map +1 -0
  22. package/{app-backend → dist/app-backend}/database/DatabaseWrapper.d.ts +7 -6
  23. package/dist/app-backend/database/DatabaseWrapper.d.ts.map +1 -0
  24. package/dist/app-backend/database/DatabaseWrapper.js +101 -0
  25. package/dist/app-backend/database/DatabaseWrapper.js.map +1 -0
  26. package/{app-backend → dist/app-backend}/database/types.d.ts +1 -0
  27. package/dist/app-backend/database/types.d.ts.map +1 -0
  28. package/{app-frontend → dist/app-backend}/database/types.js +1 -2
  29. package/{app-backend → dist/app-backend}/database/types.js.map +1 -1
  30. package/{app-backend → dist/app-backend}/firestore/FirestoreCollection.d.ts +12 -10
  31. package/dist/app-backend/firestore/FirestoreCollection.d.ts.map +1 -0
  32. package/dist/app-backend/firestore/FirestoreCollection.js +133 -0
  33. package/dist/app-backend/firestore/FirestoreCollection.js.map +1 -0
  34. package/{app-backend → dist/app-backend}/firestore/FirestoreInterface.d.ts +4 -3
  35. package/dist/app-backend/firestore/FirestoreInterface.d.ts.map +1 -0
  36. package/{app-backend → dist/app-backend}/firestore/FirestoreInterface.js +13 -14
  37. package/dist/app-backend/firestore/FirestoreInterface.js.map +1 -0
  38. package/{app-backend → dist/app-backend}/firestore/FirestoreTransaction.d.ts +5 -4
  39. package/dist/app-backend/firestore/FirestoreTransaction.d.ts.map +1 -0
  40. package/dist/app-backend/firestore/FirestoreTransaction.js +152 -0
  41. package/dist/app-backend/firestore/FirestoreTransaction.js.map +1 -0
  42. package/{app-backend → dist/app-backend}/firestore/FirestoreV2Collection.d.ts +3 -3
  43. package/dist/app-backend/firestore/FirestoreV2Collection.d.ts.map +1 -0
  44. package/{app-backend → dist/app-backend}/firestore/FirestoreV2Collection.js +4 -7
  45. package/dist/app-backend/firestore/FirestoreV2Collection.js.map +1 -0
  46. package/{app-backend → dist/app-backend}/firestore/FirestoreWrapper.d.ts +7 -6
  47. package/dist/app-backend/firestore/FirestoreWrapper.d.ts.map +1 -0
  48. package/dist/app-backend/firestore/FirestoreWrapper.js +41 -0
  49. package/dist/app-backend/firestore/FirestoreWrapper.js.map +1 -0
  50. package/{app-backend → dist/app-backend}/firestore/types.d.ts +1 -0
  51. package/dist/app-backend/firestore/types.d.ts.map +1 -0
  52. package/{app-backend → dist/app-backend}/firestore/types.js +1 -2
  53. package/dist/app-backend/firestore/types.js.map +1 -0
  54. package/{app-backend → dist/app-backend}/functions/firebase-function.d.ts +8 -7
  55. package/dist/app-backend/functions/firebase-function.d.ts.map +1 -0
  56. package/dist/app-backend/functions/firebase-function.js +350 -0
  57. package/dist/app-backend/functions/firebase-function.js.map +1 -0
  58. package/{app-backend → dist/app-backend}/push/PushMessagesWrapper.d.ts +5 -4
  59. package/dist/app-backend/push/PushMessagesWrapper.d.ts.map +1 -0
  60. package/dist/app-backend/push/PushMessagesWrapper.js +48 -0
  61. package/dist/app-backend/push/PushMessagesWrapper.js.map +1 -0
  62. package/{app-backend → dist/app-backend}/push/types.d.ts +1 -0
  63. package/dist/app-backend/push/types.d.ts.map +1 -0
  64. package/{app-backend/database → dist/app-backend/push}/types.js +1 -2
  65. package/{app-backend → dist/app-backend}/push/types.js.map +1 -1
  66. package/{app-backend → dist/app-backend}/storage/StorageWrapper.d.ts +5 -4
  67. package/dist/app-backend/storage/StorageWrapper.d.ts.map +1 -0
  68. package/dist/app-backend/storage/StorageWrapper.js +196 -0
  69. package/dist/app-backend/storage/StorageWrapper.js.map +1 -0
  70. package/{app-backend → dist/app-backend}/storage/types.d.ts +2 -1
  71. package/dist/app-backend/storage/types.d.ts.map +1 -0
  72. package/dist/app-backend/storage/types.js +20 -0
  73. package/{app-backend → dist/app-backend}/storage/types.js.map +1 -1
  74. package/{app-frontend → dist/app-frontend}/FirebaseModule.d.ts +4 -3
  75. package/dist/app-frontend/FirebaseModule.d.ts.map +1 -0
  76. package/dist/app-frontend/FirebaseModule.js +85 -0
  77. package/dist/app-frontend/FirebaseModule.js.map +1 -0
  78. package/{app-frontend → dist/app-frontend}/analytics/AnalyticsModule.d.ts +1 -0
  79. package/dist/app-frontend/analytics/AnalyticsModule.d.ts.map +1 -0
  80. package/dist/app-frontend/analytics/AnalyticsModule.js +46 -0
  81. package/dist/app-frontend/analytics/AnalyticsModule.js.map +1 -0
  82. package/{app-frontend → dist/app-frontend}/analytics/AnalyticsWrapper.d.ts +5 -4
  83. package/dist/app-frontend/analytics/AnalyticsWrapper.d.ts.map +1 -0
  84. package/dist/app-frontend/analytics/AnalyticsWrapper.js +27 -0
  85. package/dist/app-frontend/analytics/AnalyticsWrapper.js.map +1 -0
  86. package/{app-frontend → dist/app-frontend}/analytics/types.d.ts +2 -1
  87. package/dist/app-frontend/analytics/types.d.ts.map +1 -0
  88. package/dist/app-frontend/analytics/types.js +2 -0
  89. package/{app-frontend → dist/app-frontend}/analytics/types.js.map +1 -1
  90. package/dist/app-frontend/auth/FirebaseSession.d.ts +32 -0
  91. package/dist/app-frontend/auth/FirebaseSession.d.ts.map +1 -0
  92. package/dist/app-frontend/auth/FirebaseSession.js +72 -0
  93. package/dist/app-frontend/auth/FirebaseSession.js.map +1 -0
  94. package/{app-frontend → dist/app-frontend}/auth/SwFirebaseSession.d.ts +4 -4
  95. package/dist/app-frontend/auth/SwFirebaseSession.d.ts.map +1 -0
  96. package/dist/app-frontend/auth/SwFirebaseSession.js +21 -0
  97. package/dist/app-frontend/auth/SwFirebaseSession.js.map +1 -0
  98. package/{app-frontend → dist/app-frontend}/database/DatabaseWrapper.d.ts +6 -5
  99. package/dist/app-frontend/database/DatabaseWrapper.d.ts.map +1 -0
  100. package/dist/app-frontend/database/DatabaseWrapper.js +90 -0
  101. package/dist/app-frontend/database/DatabaseWrapper.js.map +1 -0
  102. package/{app-frontend → dist/app-frontend}/database/types.d.ts +1 -0
  103. package/dist/app-frontend/database/types.d.ts.map +1 -0
  104. package/{app-backend/storage → dist/app-frontend/database}/types.js +1 -2
  105. package/{app-frontend → dist/app-frontend}/database/types.js.map +1 -1
  106. package/{app-frontend → dist/app-frontend}/messaging/MessagingWrapper.d.ts +3 -2
  107. package/dist/app-frontend/messaging/MessagingWrapper.d.ts.map +1 -0
  108. package/dist/app-frontend/messaging/MessagingWrapper.js +42 -0
  109. package/dist/app-frontend/messaging/MessagingWrapper.js.map +1 -0
  110. package/{app-frontend → dist/app-frontend}/messaging/SwMessagingWrapper.d.ts +3 -2
  111. package/dist/app-frontend/messaging/SwMessagingWrapper.d.ts.map +1 -0
  112. package/{app-frontend → dist/app-frontend}/messaging/SwMessagingWrapper.js +6 -8
  113. package/dist/app-frontend/messaging/SwMessagingWrapper.js.map +1 -0
  114. package/dist/app-frontend/messaging/types.d.ts +4 -0
  115. package/dist/app-frontend/messaging/types.d.ts.map +1 -0
  116. package/{app-backend/push → dist/app-frontend/messaging}/types.js +1 -2
  117. package/{app-frontend → dist/app-frontend}/messaging/types.js.map +1 -1
  118. package/dist/backend-functions.d.ts +2 -0
  119. package/dist/backend-functions.d.ts.map +1 -0
  120. package/dist/backend-functions.js +19 -0
  121. package/{backend-functions.js.map → dist/backend-functions.js.map} +1 -1
  122. package/dist/backend.d.ts +14 -0
  123. package/dist/backend.d.ts.map +1 -0
  124. package/dist/backend.js +32 -0
  125. package/dist/backend.js.map +1 -0
  126. package/dist/frontend.d.ts +7 -0
  127. package/dist/frontend.d.ts.map +1 -0
  128. package/dist/frontend.js +14 -0
  129. package/dist/frontend.js.map +1 -0
  130. package/dist/index.d.ts +2 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +19 -0
  133. package/dist/index.js.map +1 -0
  134. package/{shared → dist/shared}/types.d.ts +4 -3
  135. package/dist/shared/types.d.ts.map +1 -0
  136. package/{shared → dist/shared}/types.js +2 -4
  137. package/dist/shared/types.js.map +1 -0
  138. package/dist/tsconfig.tsbuildinfo +1 -0
  139. package/package.json +67 -14
  140. package/app-backend/FirebaseModule.js.map +0 -1
  141. package/app-backend/auth/FirebaseBaseWrapper.js.map +0 -1
  142. package/app-backend/auth/FirebaseSession_Admin.js.map +0 -1
  143. package/app-backend/auth/FirebaseSession_UserPassword.d.ts +0 -0
  144. package/app-backend/auth/firebase-session.js.map +0 -1
  145. package/app-backend/database/DatabaseWrapper.js +0 -125
  146. package/app-backend/database/DatabaseWrapper.js.map +0 -1
  147. package/app-backend/firestore/FirestoreCollection.js +0 -175
  148. package/app-backend/firestore/FirestoreCollection.js.map +0 -1
  149. package/app-backend/firestore/FirestoreInterface.js.map +0 -1
  150. package/app-backend/firestore/FirestoreTransaction.js +0 -194
  151. package/app-backend/firestore/FirestoreTransaction.js.map +0 -1
  152. package/app-backend/firestore/FirestoreV2Collection.js.map +0 -1
  153. package/app-backend/firestore/FirestoreWrapper.js +0 -54
  154. package/app-backend/firestore/FirestoreWrapper.js.map +0 -1
  155. package/app-backend/firestore/types.js.map +0 -1
  156. package/app-backend/functions/firebase-function.js +0 -335
  157. package/app-backend/functions/firebase-function.js.map +0 -1
  158. package/app-backend/push/PushMessagesWrapper.js +0 -69
  159. package/app-backend/push/PushMessagesWrapper.js.map +0 -1
  160. package/app-backend/storage/StorageWrapper.js +0 -236
  161. package/app-backend/storage/StorageWrapper.js.map +0 -1
  162. package/app-frontend/FirebaseModule.js +0 -107
  163. package/app-frontend/FirebaseModule.js.map +0 -1
  164. package/app-frontend/analytics/AnalyticsModule.js +0 -56
  165. package/app-frontend/analytics/AnalyticsModule.js.map +0 -1
  166. package/app-frontend/analytics/AnalyticsWrapper.js +0 -29
  167. package/app-frontend/analytics/AnalyticsWrapper.js.map +0 -1
  168. package/app-frontend/analytics/types.js +0 -3
  169. package/app-frontend/auth/FirebaseSession.d.ts +0 -24
  170. package/app-frontend/auth/FirebaseSession.js +0 -72
  171. package/app-frontend/auth/FirebaseSession.js.map +0 -1
  172. package/app-frontend/auth/SwFirebaseSession.js +0 -23
  173. package/app-frontend/auth/SwFirebaseSession.js.map +0 -1
  174. package/app-frontend/database/DatabaseWrapper.js +0 -113
  175. package/app-frontend/database/DatabaseWrapper.js.map +0 -1
  176. package/app-frontend/messaging/MessagingWrapper.js +0 -53
  177. package/app-frontend/messaging/MessagingWrapper.js.map +0 -1
  178. package/app-frontend/messaging/SwMessagingWrapper.js.map +0 -1
  179. package/app-frontend/messaging/types.d.ts +0 -3
  180. package/app-frontend/messaging/types.js +0 -20
  181. package/backend-functions.d.ts +0 -1
  182. package/backend-functions.js +0 -35
  183. package/backend.d.ts +0 -13
  184. package/backend.js +0 -48
  185. package/backend.js.map +0 -1
  186. package/frontend.d.ts +0 -4
  187. package/frontend.js +0 -21
  188. package/frontend.js.map +0 -1
  189. package/index.d.ts +0 -1
  190. package/index.js +0 -35
  191. package/index.js.map +0 -1
  192. package/shared/types.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ /*
2
+ * Firebase is a simpler Typescript wrapper to all of firebase services.
3
+ *
4
+ * Copyright (C) 2020 Intuition Robotics
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ import { BadImplementationException, batchAction, generateHex } from "@intuitionrobotics/ts-common";
19
+ import {} from "./types.js";
20
+ import {} from "../../shared/types.js";
21
+ import { FirestoreWrapper } from "./FirestoreWrapper.js";
22
+ import { FirestoreInterface } from "./FirestoreInterface.js";
23
+ import { FirestoreTransaction } from "./FirestoreTransaction.js";
24
+ import admin from "firebase-admin";
25
+ export class FirestoreCollection {
26
+ name;
27
+ wrapper;
28
+ collection;
29
+ /**
30
+ * External unique as in there must never ever be two that answer the same query
31
+ */
32
+ externalUniqueFilter;
33
+ constructor(name, wrapper, externalFilterKeys) {
34
+ this.name = name;
35
+ this.wrapper = wrapper;
36
+ if (!/[a-z-]{3,}/.test(name))
37
+ console.log("Please follow name pattern for collections /[a-z-]{3,}/");
38
+ this.collection = wrapper.firestore.collection(name);
39
+ this.externalUniqueFilter = (instance) => {
40
+ if (!externalFilterKeys)
41
+ throw new BadImplementationException("In order to use a unique query your collection MUST have a unique filter");
42
+ return externalFilterKeys.reduce((where, key) => {
43
+ // @ts-expect-error TS struggles with this dynamic typing
44
+ where[key] = instance[key];
45
+ return where;
46
+ }, {});
47
+ };
48
+ }
49
+ async _query(ourQuery) {
50
+ const myQuery = FirestoreInterface.buildQuery(this.collection, ourQuery);
51
+ return (await myQuery.get()).docs;
52
+ }
53
+ async getDoc(id) {
54
+ return this.collection.doc(id).get();
55
+ }
56
+ async get(ourQuery) {
57
+ const myQuery = FirestoreInterface.buildQuery(this.collection, ourQuery);
58
+ return myQuery.get();
59
+ }
60
+ async _queryUnique(ourQuery) {
61
+ const results = await this._query(ourQuery);
62
+ return FirestoreInterface.assertUniqueDocument(results, ourQuery, this.name);
63
+ }
64
+ async queryUnique(ourQuery) {
65
+ const doc = await this._queryUnique(ourQuery);
66
+ if (!doc)
67
+ return;
68
+ return doc.data();
69
+ }
70
+ async insert(instance, id) {
71
+ const ref = this.createDocumentReference(id);
72
+ await ref.set(instance);
73
+ return instance;
74
+ }
75
+ async insertAll(instances) {
76
+ return Promise.all(instances.map(instance => this.insert(instance)));
77
+ }
78
+ async query(ourQuery) {
79
+ return (await this._query(ourQuery)).map(result => result.data());
80
+ }
81
+ async upsert(instance) {
82
+ return this.runInTransaction((transaction) => transaction.upsert(this, instance));
83
+ }
84
+ async upsertAll(instances) {
85
+ return batchAction(instances, 500, async (chunked) => this.runInTransaction(transaction => transaction.upsertAll(this, chunked)));
86
+ }
87
+ async patch(instance) {
88
+ return this.runInTransaction(transaction => transaction.patch(this, instance));
89
+ }
90
+ async deleteItem(instance) {
91
+ return this.runInTransaction((transaction) => transaction.deleteItem(this, instance));
92
+ }
93
+ async deleteUnique(param) {
94
+ if (typeof param === 'string')
95
+ return this.collection.doc(param).delete();
96
+ return this.runInTransaction(async (transaction) => transaction.deleteUnique(this, param));
97
+ }
98
+ async delete(query) {
99
+ const docRefs = await this._query(query);
100
+ return this.deleteBatch(docRefs);
101
+ }
102
+ async deleteBatch(docRefs) {
103
+ await batchAction(docRefs, 500, async (elements) => {
104
+ const batch = this.collection.firestore.batch();
105
+ elements.forEach(doc => batch.delete(doc.ref));
106
+ await batch.commit();
107
+ });
108
+ return docRefs.map(d => d.data());
109
+ }
110
+ async deleteAll() {
111
+ const docRefs = await this._query();
112
+ return this.deleteBatch(docRefs);
113
+ }
114
+ async getAll(select) {
115
+ return this.query({ select });
116
+ }
117
+ async runInTransaction(processor) {
118
+ return this.collection.firestore.runTransaction(async (transaction) => {
119
+ return processor(new FirestoreTransaction(transaction));
120
+ });
121
+ }
122
+ createDocumentReference(id = generateHex(16)) {
123
+ return this.collection.doc(id);
124
+ }
125
+ async set(instance, id, options) {
126
+ return this.collection.doc(id).set(instance, options);
127
+ }
128
+ async create(instance, id) {
129
+ return this.collection.doc(id).create(instance);
130
+ }
131
+ getUniqueFilter = () => this.externalUniqueFilter;
132
+ }
133
+ //# sourceMappingURL=FirestoreCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreCollection.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreCollection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { FirestoreQuery } from "../..";
2
- import { FirestoreType_QueryDocumentSnapshot } from "./types";
3
- import { FirestoreCollection } from "./FirestoreCollection";
1
+ import { type FirestoreQuery } from "../../index.js";
2
+ import { type FirestoreType_QueryDocumentSnapshot } from "./types.js";
3
+ import { FirestoreCollection } from "./FirestoreCollection.js";
4
4
  import { CollectionReference, Query } from "firebase-admin/firestore";
5
5
  export declare class FirestoreInterface {
6
6
  static buildQuery<Type extends object>(collection: CollectionReference<Type>, query?: FirestoreQuery<Type>): Query<Type>;
@@ -8,3 +8,4 @@ export declare class FirestoreInterface {
8
8
  static assertUniqueDocument(results: FirestoreType_QueryDocumentSnapshot[], query: FirestoreQuery<any>, collectionName: string): (FirestoreType_QueryDocumentSnapshot | undefined);
9
9
  static buildUniqueQuery<Type extends object>(collection: FirestoreCollection<Type>, instance: Type): FirestoreQuery<Type>;
10
10
  }
11
+ //# sourceMappingURL=FirestoreInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreInterface.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreInterface.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEN,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,KAAK,mCAAmC,EAExC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAO7D,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAEpE,qBAAa,kBAAkB;IAE9B,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IA6DxH,OAAO,CAAC,MAAM,CAAC,aAAa;IAc5B,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,mCAAmC,GAAG,SAAS,CAAC;IAUlL,MAAM,CAAC,gBAAgB,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;CAWzH"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * Firebase is a simpler Typescript wrapper to all of firebase services.
4
3
  *
@@ -16,11 +15,12 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.FirestoreInterface = void 0;
21
- const __1 = require("../..");
22
- const ts_common_1 = require("@intuitionrobotics/ts-common");
23
- class FirestoreInterface {
18
+ import { ComparatorMap } from "../../index.js";
19
+ import {} from "./types.js";
20
+ import { FirestoreCollection } from "./FirestoreCollection.js";
21
+ import { __stringify, _keys, BadImplementationException, ImplementationMissingException } from "@intuitionrobotics/ts-common";
22
+ import { CollectionReference, Query } from "firebase-admin/firestore";
23
+ export class FirestoreInterface {
24
24
  static buildQuery(collection, query) {
25
25
  let myQuery = collection;
26
26
  if (query && query.select)
@@ -36,15 +36,15 @@ class FirestoreInterface {
36
36
  const valueType = typeof _whereValue;
37
37
  if (Array.isArray(_whereValue)) {
38
38
  if (_whereValue.length === 0 || _whereValue.length > 10)
39
- throw new ts_common_1.BadImplementationException("While querying in an array you can only provide one or more values to query by and not more than 10... this " +
39
+ throw new BadImplementationException("While querying in an array you can only provide one or more values to query by and not more than 10... this " +
40
40
  "is due to Firestore limitation... ");
41
41
  if (_whereValue.length === 1)
42
42
  return _query.where(whereKey, 'array-contains', _whereValue[0]);
43
43
  return _query.where(whereKey, 'array-contains-any', _whereValue);
44
44
  }
45
45
  if (this.isQueryObject(_whereValue)) {
46
- // @ts-ignore
47
- return _query.where(whereKey, __1.ComparatorMap[Object.keys(_whereValue)[0]], Object.values(_whereValue)[0]);
46
+ // @ts-expect-error TS struggles with this dynamic typing
47
+ return _query.where(whereKey, ComparatorMap[Object.keys(_whereValue)[0]], Object.values(_whereValue)[0]);
48
48
  }
49
49
  if (valueType === "string" || valueType === "number" || valueType === "boolean")
50
50
  return ___query.where(whereKey, "==", _whereValue);
@@ -53,7 +53,7 @@ class FirestoreInterface {
53
53
  return processObject(__query, `${whereKey}.${key}`, _whereValue[key]);
54
54
  }, ___query);
55
55
  }
56
- throw new ts_common_1.ImplementationMissingException(`Could not compose where clause for '${whereKey}' with value type '${valueType}'in query: ${(0, ts_common_1.__stringify)(___query)}`);
56
+ throw new ImplementationMissingException(`Could not compose where clause for '${whereKey}' with value type '${valueType}'in query: ${__stringify(___query)}`);
57
57
  };
58
58
  return processObject(_query, whereField, whereValue);
59
59
  }, myQuery);
@@ -80,21 +80,20 @@ class FirestoreInterface {
80
80
  }
81
81
  static assertUniqueDocument(results, query, collectionName) {
82
82
  if (results.length > 1)
83
- throw new ts_common_1.BadImplementationException(`too many results for query: ${(0, ts_common_1.__stringify)(query)} in collection: ${collectionName}`);
83
+ throw new BadImplementationException(`too many results for query: ${__stringify(query)} in collection: ${collectionName}`);
84
84
  if (results.length === 0)
85
85
  return;
86
86
  return results[0];
87
87
  }
88
88
  ;
89
89
  static buildUniqueQuery(collection, instance) {
90
- (0, ts_common_1._keys)(instance).forEach((key) => {
90
+ _keys(instance).forEach((key) => {
91
91
  if (instance[key] === undefined || instance[key] === null) {
92
- throw new ts_common_1.BadImplementationException(`No where properties are allowed to be null or undefined.\nWhile querying collection '${collection.name}' we found property '${String(key)}' to be '${instance[key]}'`);
92
+ throw new BadImplementationException(`No where properties are allowed to be null or undefined.\nWhile querying collection '${collection.name}' we found property '${String(key)}' to be '${instance[key]}'`);
93
93
  }
94
94
  });
95
95
  const where = collection.externalUniqueFilter(instance);
96
96
  return { where };
97
97
  }
98
98
  }
99
- exports.FirestoreInterface = FirestoreInterface;
100
99
  //# sourceMappingURL=FirestoreInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreInterface.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreInterface.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import * as admin from "firebase-admin";
2
2
  import { firestore } from "firebase-admin";
3
- import { FirestoreCollection } from "./FirestoreCollection";
4
- import { Subset } from "@intuitionrobotics/ts-common";
5
- import { FirestoreQuery } from "../../shared/types";
6
- import { SetOptions } from "firebase-admin/firestore";
3
+ import { FirestoreCollection } from "./FirestoreCollection.js";
4
+ import { type Subset } from "@intuitionrobotics/ts-common";
5
+ import { type FirestoreQuery } from "../../shared/types.js";
6
+ import { type SetOptions } from "firebase-admin/firestore";
7
7
  import Transaction = firestore.Transaction;
8
8
  export declare class FirestoreTransaction {
9
9
  private transaction;
@@ -36,3 +36,4 @@ export declare class FirestoreTransaction {
36
36
  create<Type extends object>(collection: FirestoreCollection<Type>, instance: Type, id: string): firestore.Transaction;
37
37
  getSdkInstance(): firestore.Transaction;
38
38
  }
39
+ //# sourceMappingURL=FirestoreTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreTransaction.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreTransaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ /*
2
+ * Firebase is a simpler Typescript wrapper to all of firebase services.
3
+ *
4
+ * Copyright (C) 2020 Intuition Robotics
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ import * as admin from "firebase-admin";
19
+ import { firestore } from "firebase-admin";
20
+ import {} from "./types.js";
21
+ import { FirestoreCollection, } from "./FirestoreCollection.js";
22
+ import { BadImplementationException, merge } from "@intuitionrobotics/ts-common";
23
+ import {} from "../../shared/types.js";
24
+ import { FirestoreInterface } from "./FirestoreInterface.js";
25
+ import { Query } from "firebase-admin/firestore";
26
+ var Transaction = firestore.Transaction;
27
+ export class FirestoreTransaction {
28
+ transaction;
29
+ constructor(transaction) {
30
+ this.transaction = transaction;
31
+ }
32
+ async _query(collection, ourQuery) {
33
+ const query = FirestoreInterface.buildQuery(collection.collection, ourQuery);
34
+ return (await this.transaction.get(query)).docs;
35
+ }
36
+ async _queryUnique(collection, ourQuery) {
37
+ const results = await this._query(collection, ourQuery);
38
+ return FirestoreInterface.assertUniqueDocument(results, ourQuery, collection.name);
39
+ }
40
+ async _queryItem(collection, instance) {
41
+ const ourQuery = FirestoreInterface.buildUniqueQuery(collection, instance);
42
+ const results = await this._query(collection, ourQuery);
43
+ return FirestoreInterface.assertUniqueDocument(results, ourQuery, collection.name);
44
+ }
45
+ async query(collection, ourQuery) {
46
+ return (await this._query(collection, ourQuery)).map(result => result.data());
47
+ }
48
+ async queryItem(collection, instance) {
49
+ const ourQuery = FirestoreInterface.buildUniqueQuery(collection, instance);
50
+ return this.queryUnique(collection, ourQuery);
51
+ }
52
+ async queryUnique(collection, ourQuery) {
53
+ const doc = await this._queryUnique(collection, ourQuery);
54
+ if (!doc)
55
+ return;
56
+ return doc.data();
57
+ }
58
+ insert(collection, instance, id) {
59
+ const doc = collection.createDocumentReference(id);
60
+ this.transaction.set(doc, instance);
61
+ return instance;
62
+ }
63
+ insertAll(collection, instances) {
64
+ return instances.map(instance => this.insert(collection, instance));
65
+ }
66
+ //------------------------
67
+ async upsert(collection, instance) {
68
+ return (await this.upsert_Read(collection, instance))();
69
+ }
70
+ async upsert_Read(collection, instance) {
71
+ const ref = await this.getOrCreateDocument(collection, instance);
72
+ return () => {
73
+ this.transaction.set(ref, instance);
74
+ return instance;
75
+ };
76
+ }
77
+ async getOrCreateDocument(collection, instance) {
78
+ let ref = (await this._queryItem(collection, instance))?.ref;
79
+ if (!ref)
80
+ ref = collection.createDocumentReference();
81
+ return ref;
82
+ }
83
+ async upsertAll(collection, instances) {
84
+ if (instances.length > 500)
85
+ throw new BadImplementationException('Firestore transaction supports maximum 500 at a time');
86
+ return (await this.upsertAll_Read(collection, instances))();
87
+ }
88
+ async upsertAll_Read(collection, instances) {
89
+ const writes = await Promise.all(instances.map(async (instance) => this.upsert_Read(collection, instance)));
90
+ return () => writes.map(_write => _write());
91
+ }
92
+ async patch(collection, instance) {
93
+ return (await this.patch_Read(collection, instance))();
94
+ }
95
+ async patch_Read(collection, instance) {
96
+ const doc = await this._queryItem(collection, instance);
97
+ if (!doc)
98
+ throw new BadImplementationException(`Patching a non existent doc for query ${FirestoreInterface.buildUniqueQuery(collection, instance)}`);
99
+ return () => {
100
+ const patchedInstance = merge(doc.data(), instance);
101
+ this.transaction.set(doc.ref, patchedInstance);
102
+ return patchedInstance;
103
+ };
104
+ }
105
+ async delete(collection, ourQuery) {
106
+ return (await this.delete_Read(collection, ourQuery))();
107
+ }
108
+ async delete_Read(collection, ourQuery) {
109
+ const docs = await this._query(collection, ourQuery);
110
+ if (docs.length > 500)
111
+ throw new BadImplementationException(`Trying to delete ${docs.length} documents. Not allowed more then 5oo in a single transaction`);
112
+ return () => {
113
+ const toReturn = docs.map(doc => doc.data());
114
+ docs.forEach((doc) => this.transaction.delete(doc.ref));
115
+ return toReturn;
116
+ };
117
+ }
118
+ async deleteItem(collection, instance) {
119
+ return this.deleteUnique(collection, FirestoreInterface.buildUniqueQuery(collection, instance));
120
+ }
121
+ deleteUnique(collection, ourQuery) {
122
+ if (typeof ourQuery === 'string')
123
+ return this.transaction.delete(collection.collection.doc(ourQuery));
124
+ return this.deleteUniqueImpl(collection, ourQuery);
125
+ }
126
+ async deleteUniqueImpl(collection, ourQuery) {
127
+ const write = await this.deleteUnique_Read(collection, ourQuery);
128
+ if (!write)
129
+ return;
130
+ return write();
131
+ }
132
+ async deleteUnique_Read(collection, ourQuery) {
133
+ const doc = (await this._queryUnique(collection, ourQuery));
134
+ if (!doc)
135
+ return;
136
+ return () => {
137
+ const result = doc.data();
138
+ this.transaction.delete(doc.ref);
139
+ return result;
140
+ };
141
+ }
142
+ set(collection, instance, id, options) {
143
+ return this.transaction.set(collection.collection.doc(id), instance, options);
144
+ }
145
+ create(collection, instance, id) {
146
+ return this.transaction.create(collection.collection.doc(id), instance);
147
+ }
148
+ getSdkInstance() {
149
+ return this.transaction;
150
+ }
151
+ }
152
+ //# sourceMappingURL=FirestoreTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreTransaction.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { FirestoreQuery } from "../../shared/types";
2
- import { CollectionReference } from "firebase-admin/firestore";
3
- import { Query } from "firebase-admin/lib/firestore";
1
+ import { type FirestoreQuery } from "../../shared/types.js";
2
+ import type { CollectionReference, Query } from "firebase-admin/firestore";
4
3
  export type FirestoreV2Collection<Type extends object> = CollectionReference<Type> & {
5
4
  buildQuery: (query?: FirestoreQuery<Type>) => Query<Type>;
6
5
  };
7
6
  export declare const enhanceCollection: <Type extends object>(collection: CollectionReference<Type>) => FirestoreV2Collection<Type>;
7
+ //# sourceMappingURL=FirestoreV2Collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreV2Collection.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreV2Collection.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAC,mBAAmB,EAAE,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAEzE,MAAM,MAAM,qBAAqB,CAAC,IAAI,SAAS,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG;IACjF,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;CAC7D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,SAAS,MAAM,EAAE,YAAY,mBAAmB,CAAC,IAAI,CAAC,KAAG,qBAAqB,CAAC,IAAI,CAOxH,CAAC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * Firebase is a simpler Typescript wrapper to all of firebase services.
4
3
  *
@@ -16,15 +15,13 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.enhanceCollection = void 0;
21
- const FirestoreInterface_1 = require("./FirestoreInterface");
22
- const enhanceCollection = (collection) => {
18
+ import {} from "../../shared/types.js";
19
+ import { FirestoreInterface } from "./FirestoreInterface.js";
20
+ export const enhanceCollection = (collection) => {
23
21
  const collectionRef = collection;
24
22
  collectionRef.buildQuery = (ourQuery) => {
25
- return FirestoreInterface_1.FirestoreInterface.buildQuery(collection, ourQuery);
23
+ return FirestoreInterface.buildQuery(collection, ourQuery);
26
24
  };
27
25
  return collectionRef;
28
26
  };
29
- exports.enhanceCollection = enhanceCollection;
30
27
  //# sourceMappingURL=FirestoreV2Collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreV2Collection.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreV2Collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAO3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAsB,UAAqC,EAA+B,EAAE;IACzH,MAAM,aAAa,GAAG,UAAyC,CAAC;IAChE,aAAa,CAAC,UAAU,GAAG,CAAC,QAA+B,EAAe,EAAE;QACxE,OAAO,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
- import { FirestoreCollection } from "./FirestoreCollection";
2
- import { FirestoreType, FirestoreType_Collection } from "./types";
3
- import { FilterKeys } from "../../shared/types";
4
- import { FirebaseSession } from "../auth/firebase-session";
5
- import { FirebaseBaseWrapper } from "../auth/FirebaseBaseWrapper";
6
- import { FirestoreV2Collection } from "./FirestoreV2Collection";
1
+ import { FirestoreCollection } from "./FirestoreCollection.js";
2
+ import { type FirestoreType, type FirestoreType_Collection } from "./types.js";
3
+ import { type FilterKeys } from "../../shared/types.js";
4
+ import { FirebaseSession } from "../auth/firebase-session.js";
5
+ import { FirebaseBaseWrapper } from "../auth/FirebaseBaseWrapper.js";
6
+ import { type FirestoreV2Collection } from "./FirestoreV2Collection.js";
7
7
  export declare class FirestoreWrapper extends FirebaseBaseWrapper {
8
8
  readonly firestore: FirestoreType;
9
9
  private readonly collections;
@@ -15,3 +15,4 @@ export declare class FirestoreWrapper extends FirebaseBaseWrapper {
15
15
  deleteCollection(name: string): Promise<object[]>;
16
16
  listCollections(): Promise<FirestoreType_Collection[]>;
17
17
  }
18
+ //# sourceMappingURL=FirestoreWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreWrapper.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,KAAK,aAAa,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAoB,KAAK,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAGzF,qBAAa,gBACT,SAAQ,mBAAmB;IAE3B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8D;IAC1F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgE;gBAElF,eAAe,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC;IAK/C,aAAa,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC;IAQlH,eAAe,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAStF,cAAc;IAID,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAI7B,eAAe,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAMtE"}
@@ -0,0 +1,41 @@
1
+ import { FirestoreCollection } from "./FirestoreCollection.js";
2
+ import {} from "./types.js";
3
+ import {} from "../../shared/types.js";
4
+ import { FirebaseSession } from "../auth/firebase-session.js";
5
+ import { FirebaseBaseWrapper } from "../auth/FirebaseBaseWrapper.js";
6
+ import { CollectionReference, getFirestore } from "firebase-admin/firestore";
7
+ import { enhanceCollection } from "./FirestoreV2Collection.js";
8
+ export class FirestoreWrapper extends FirebaseBaseWrapper {
9
+ firestore;
10
+ collections = {};
11
+ collectionsV2 = {};
12
+ constructor(firebaseSession) {
13
+ super(firebaseSession);
14
+ this.firestore = getFirestore(firebaseSession.app);
15
+ }
16
+ getCollection(name, externalFilterKeys) {
17
+ const collection = this.collections[name];
18
+ if (collection)
19
+ return collection;
20
+ return this.collections[name] = new FirestoreCollection(name, this, externalFilterKeys);
21
+ }
22
+ getCollectionV2(name) {
23
+ const collection = this.collectionsV2[name];
24
+ if (collection)
25
+ return collection;
26
+ const enchanceCollection1 = enhanceCollection(this.firestore.collection(name));
27
+ return this.collectionsV2[name] = enchanceCollection1;
28
+ }
29
+ getSdkInstance() {
30
+ return this.firestore;
31
+ }
32
+ async deleteCollection(name) {
33
+ return this.getCollection(name).deleteAll();
34
+ }
35
+ async listCollections() {
36
+ if (!this.firestore.listCollections)
37
+ return [];
38
+ return this.firestore.listCollections();
39
+ }
40
+ }
41
+ //# sourceMappingURL=FirestoreWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirestoreWrapper.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAoD,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAC,iBAAiB,EAA6B,MAAM,4BAA4B,CAAC;AAGzF,MAAM,OAAO,gBACT,SAAQ,mBAAmB;IAElB,SAAS,CAAgB;IACjB,WAAW,GAA2D,EAAE,CAAC;IACzE,aAAa,GAA6D,EAAE,CAAC;IAE9F,YAAY,eAA0C;QAClD,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IACtD,CAAC;IAEM,aAAa,CAAsB,IAAY,EAAE,kBAAqC;QACzF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,UAAU;YACV,OAAO,UAAU,CAAC;QAEtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAO,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAClG,CAAC;IAEM,eAAe,CAAsB,IAAY;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,UAAU;YACV,OAAO,UAAU,CAAC;QAEtB,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAA8B,CAA+B,CAAC;QAC1I,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC;IAC1D,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe;YAC/B,OAAO,EAAE,CAAC;QAEd,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;CACJ"}
@@ -7,3 +7,4 @@ export type FirestoreType_Query = admin.firestore.Query;
7
7
  export type FirestoreType_DocumentReference = admin.firestore.DocumentReference;
8
8
  export type FirestoreType = admin.firestore.Firestore;
9
9
  export type FirestoreType_Transaction = admin.firestore.Transaction;
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/types.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,MAAM,MAAM,wBAAwB,CAAC,CAAC,GAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAE;AACvF,MAAM,MAAM,mCAAmC,CAAC,CAAC,GAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAE;AACpG,MAAM,MAAM,8BAA8B,CAAC,CAAC,GAAE,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE;AAC1F,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE;AAC/E,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;AACxD,MAAM,MAAM,+BAA+B,GAAG,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAE;AACjF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAE;AACvD,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * Firebase is a simpler Typescript wrapper to all of firebase services.
4
3
  *
@@ -16,7 +15,7 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
18
+ import * as admin from "firebase-admin";
20
19
  // export type FirestoreType_Collection = admin.firestore.CollectionReference | firebase.firestore.CollectionReference;
21
20
  // export type FirestoreType_DocumentSnapshot = admin.firestore.QueryDocumentSnapshot | firebase.firestore.QueryDocumentSnapshot;
22
21
  // export type FirestoreType_Query = (admin.firestore.Query | firebase.firestore.Query) & { select?: (...field: string[]) => FirestoreType_Query };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAWxC,uHAAuH;AACvH,iIAAiI;AACjI,mJAAmJ;AACnJ,0HAA0H;AAC1H,8JAA8J;AAC9J,wGAAwG;AACxG,EAAE"}