@intuitionrobotics/firebase 0.46.0 → 0.47.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.
- package/app-backend/FirebaseModule.d.ts +3 -3
- package/app-backend/FirebaseModule.js +9 -12
- package/app-backend/FirebaseModule.js.map +1 -1
- package/app-backend/auth/FirebaseBaseWrapper.d.ts +1 -1
- package/app-backend/auth/FirebaseBaseWrapper.js +19 -2
- package/app-backend/auth/FirebaseBaseWrapper.js.map +1 -1
- package/app-backend/auth/FirebaseSession_Admin.js +23 -6
- package/app-backend/auth/FirebaseSession_Admin.js.map +1 -1
- package/app-backend/auth/FirebaseSession_UserPassword.js.map +1 -1
- package/app-backend/auth/firebase-session.d.ts +3 -3
- package/app-backend/auth/firebase-session.js +19 -2
- package/app-backend/auth/firebase-session.js.map +1 -1
- package/app-backend/database/DatabaseWrapper.d.ts +3 -3
- package/app-backend/database/DatabaseWrapper.js +10 -11
- package/app-backend/database/DatabaseWrapper.js.map +1 -1
- package/app-backend/database/types.d.ts +3 -3
- package/app-backend/database/types.js +17 -0
- package/app-backend/database/types.js.map +1 -1
- package/app-backend/firestore/FirestoreCollection.d.ts +7 -5
- package/app-backend/firestore/FirestoreCollection.js +22 -7
- package/app-backend/firestore/FirestoreCollection.js.map +1 -1
- package/app-backend/firestore/FirestoreInterface.d.ts +1 -1
- package/app-backend/firestore/FirestoreInterface.js +25 -10
- package/app-backend/firestore/FirestoreInterface.js.map +1 -1
- package/app-backend/firestore/FirestoreTransaction.d.ts +1 -1
- package/app-backend/firestore/FirestoreTransaction.js +22 -6
- package/app-backend/firestore/FirestoreTransaction.js.map +1 -1
- package/app-backend/firestore/FirestoreV2Collection.d.ts +1 -1
- package/app-backend/firestore/FirestoreV2Collection.js +17 -0
- package/app-backend/firestore/FirestoreV2Collection.js.map +1 -1
- package/app-backend/firestore/FirestoreWrapper.js +2 -2
- package/app-backend/firestore/FirestoreWrapper.js.map +1 -1
- package/app-backend/firestore/types.d.ts +9 -9
- package/app-backend/firestore/types.js +17 -0
- package/app-backend/firestore/types.js.map +1 -1
- package/app-backend/functions/firebase-function.d.ts +18 -12
- package/app-backend/functions/firebase-function.js +78 -32
- package/app-backend/functions/firebase-function.js.map +1 -1
- package/app-backend/push/PushMessagesWrapper.d.ts +1 -1
- package/app-backend/push/PushMessagesWrapper.js +18 -1
- package/app-backend/push/PushMessagesWrapper.js.map +1 -1
- package/app-backend/push/types.d.ts +8 -8
- package/app-backend/push/types.js +17 -0
- package/app-backend/push/types.js.map +1 -1
- package/app-backend/storage/StorageWrapper.js +25 -9
- package/app-backend/storage/StorageWrapper.js.map +1 -1
- package/app-backend/storage/types.d.ts +4 -4
- package/app-backend/storage/types.js +17 -0
- package/app-backend/storage/types.js.map +1 -1
- package/app-frontend/FirebaseModule.d.ts +3 -3
- package/app-frontend/FirebaseModule.js +5 -6
- package/app-frontend/FirebaseModule.js.map +1 -1
- package/app-frontend/analytics/AnalyticsModule.d.ts +1 -1
- package/app-frontend/analytics/AnalyticsModule.js +21 -5
- package/app-frontend/analytics/AnalyticsModule.js.map +1 -1
- package/app-frontend/analytics/AnalyticsWrapper.d.ts +1 -1
- package/app-frontend/analytics/AnalyticsWrapper.js +24 -6
- package/app-frontend/analytics/AnalyticsWrapper.js.map +1 -1
- package/app-frontend/analytics/types.d.ts +3 -3
- package/app-frontend/analytics/types.js +18 -0
- package/app-frontend/analytics/types.js.map +1 -1
- package/app-frontend/auth/FirebaseSession.d.ts +2 -2
- package/app-frontend/auth/FirebaseSession.js +11 -12
- package/app-frontend/auth/FirebaseSession.js.map +1 -1
- package/app-frontend/auth/SwFirebaseSession.d.ts +1 -1
- package/app-frontend/auth/SwFirebaseSession.js +4 -3
- package/app-frontend/auth/SwFirebaseSession.js.map +1 -1
- package/app-frontend/database/DatabaseWrapper.d.ts +1 -1
- package/app-frontend/database/DatabaseWrapper.js +33 -16
- package/app-frontend/database/DatabaseWrapper.js.map +1 -1
- package/app-frontend/database/types.d.ts +1 -1
- package/app-frontend/database/types.js +17 -0
- package/app-frontend/database/types.js.map +1 -1
- package/app-frontend/messaging/MessagingWrapper.d.ts +1 -1
- package/app-frontend/messaging/MessagingWrapper.js +21 -4
- package/app-frontend/messaging/MessagingWrapper.js.map +1 -1
- package/app-frontend/messaging/SwMessagingWrapper.d.ts +1 -1
- package/app-frontend/messaging/SwMessagingWrapper.js +21 -3
- package/app-frontend/messaging/SwMessagingWrapper.js.map +1 -1
- package/app-frontend/messaging/types.d.ts +2 -2
- package/app-frontend/messaging/types.js +17 -0
- package/app-frontend/messaging/types.js.map +1 -1
- package/backend-functions.d.ts +1 -0
- package/backend-functions.js +35 -0
- package/backend-functions.js.map +1 -0
- package/backend.d.ts +13 -0
- package/backend.js +48 -0
- package/backend.js.map +1 -0
- package/frontend.d.ts +4 -0
- package/frontend.js +39 -0
- package/frontend.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +33 -0
- package/index.js.map +1 -1
- package/package.json +6 -6
- package/shared/types.d.ts +18 -15
- package/shared/types.js +17 -0
- package/shared/types.js.map +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { Module } from "@intuitionrobotics/ts-common";
|
|
1
2
|
import { FirebaseSession_Admin } from "./auth/FirebaseSession_Admin";
|
|
2
3
|
import { Firebase_UserCredential } from "./auth/firebase-session";
|
|
3
4
|
import { FirebaseProjectCollections } from "../shared/types";
|
|
4
|
-
|
|
5
|
-
export declare type JWTInput = {
|
|
5
|
+
export type JWTInput = {
|
|
6
6
|
type?: string;
|
|
7
7
|
client_email?: string;
|
|
8
8
|
private_key?: string;
|
|
@@ -13,7 +13,7 @@ export declare type JWTInput = {
|
|
|
13
13
|
refresh_token?: string;
|
|
14
14
|
quota_project_id?: string;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
type ConfigType = {
|
|
17
17
|
[s: string]: string | JWTInput | Firebase_UserCredential;
|
|
18
18
|
};
|
|
19
19
|
export declare class FirebaseModule_Class extends Module<ConfigType> {
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FirebaseModule = exports.FirebaseModule_Class = void 0;
|
|
4
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
4
5
|
const FirebaseSession_Admin_1 = require("./auth/FirebaseSession_Admin");
|
|
5
6
|
const fs_1 = require("fs");
|
|
6
|
-
|
|
7
|
-
const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
8
|
-
const module_manager_1 = require("@intuitionrobotics/ts-common/core/module-manager");
|
|
9
|
-
const object_tools_1 = require("@intuitionrobotics/ts-common/utils/object-tools");
|
|
10
|
-
class FirebaseModule_Class extends module_1.Module {
|
|
7
|
+
class FirebaseModule_Class extends ts_common_1.Module {
|
|
11
8
|
constructor() {
|
|
12
9
|
super("FirebaseModule");
|
|
13
10
|
// private readonly tokenSessions: { [s: string]: FirebaseSession_UserPassword; } = {};
|
|
@@ -23,7 +20,7 @@ class FirebaseModule_Class extends module_1.Module {
|
|
|
23
20
|
let projectId;
|
|
24
21
|
if (FirebaseModule_Class.localAdminConfigId)
|
|
25
22
|
if (!this.config[FirebaseModule_Class.localAdminConfigId])
|
|
26
|
-
throw new
|
|
23
|
+
throw new ts_common_1.ImplementationMissingException(`Forgot to define a service account for project Id: ${FirebaseModule_Class.localAdminConfigId}`);
|
|
27
24
|
else
|
|
28
25
|
projectId = FirebaseModule_Class.localAdminConfigId;
|
|
29
26
|
if (!projectId)
|
|
@@ -31,7 +28,7 @@ class FirebaseModule_Class extends module_1.Module {
|
|
|
31
28
|
if (!projectId)
|
|
32
29
|
projectId = process.env.GCLOUD_PROJECT;
|
|
33
30
|
if (!projectId)
|
|
34
|
-
throw new
|
|
31
|
+
throw new ts_common_1.ThisShouldNotHappenException("Could not resolve project id...");
|
|
35
32
|
return projectId;
|
|
36
33
|
}
|
|
37
34
|
connect() {
|
|
@@ -70,11 +67,11 @@ class FirebaseModule_Class extends module_1.Module {
|
|
|
70
67
|
this.logInfo(`Creating Firebase session for project id: ${projectId}`);
|
|
71
68
|
let config = this.getProjectAuth(projectId);
|
|
72
69
|
if (!config && _projectId && this.localProjectId && this.localProjectId !== _projectId)
|
|
73
|
-
throw new
|
|
70
|
+
throw new ts_common_1.BadImplementationException(`Config for key ${_projectId} is not defined`);
|
|
74
71
|
if (typeof config === "string")
|
|
75
|
-
config = JSON.parse(fs_1.readFileSync(config, "utf8"));
|
|
72
|
+
config = JSON.parse((0, fs_1.readFileSync)(config, "utf8"));
|
|
76
73
|
if (config && (!config.client_email || !config.private_key))
|
|
77
|
-
throw new
|
|
74
|
+
throw new ts_common_1.BadImplementationException(`Config for key ${projectId} is not an Admin credentials pattern`);
|
|
78
75
|
session = new FirebaseSession_Admin_1.FirebaseSession_Admin(sessionName, config);
|
|
79
76
|
this.adminSessions[sessionName] = session;
|
|
80
77
|
session.connect();
|
|
@@ -85,9 +82,9 @@ class FirebaseModule_Class extends module_1.Module {
|
|
|
85
82
|
return (_a = this.config) === null || _a === void 0 ? void 0 : _a[projectId];
|
|
86
83
|
}
|
|
87
84
|
listCollectionsInModules() {
|
|
88
|
-
const modules =
|
|
85
|
+
const modules = (0, ts_common_1.moduleResolver)();
|
|
89
86
|
const firebaseProjectCollections = modules.reduce((toRet, module) => {
|
|
90
|
-
const keys =
|
|
87
|
+
const keys = (0, ts_common_1._keys)(module);
|
|
91
88
|
const _collections = keys
|
|
92
89
|
.filter(key => { var _a; return typeof module[key] === "object" && ((_a = module[key].constructor) === null || _a === void 0 ? void 0 : _a["name"].startsWith("FirestoreCollection")); })
|
|
93
90
|
.map(key => module[key])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseModule.js","sourceRoot":"","sources":["../../src/main/app-backend/FirebaseModule.ts"],"names":[],"mappings":";;;AAAA,wEAAmE;AACnE,2BAAgC;
|
|
1
|
+
{"version":3,"file":"FirebaseModule.js","sourceRoot":"","sources":["../../src/main/app-backend/FirebaseModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FirebaseSession } from "./firebase-session";
|
|
2
|
-
import { Logger } from "@intuitionrobotics/ts-common
|
|
2
|
+
import { Logger } from "@intuitionrobotics/ts-common";
|
|
3
3
|
export declare abstract class FirebaseBaseWrapper extends Logger {
|
|
4
4
|
readonly firebaseSession: FirebaseSession<any, any>;
|
|
5
5
|
protected constructor(firebaseSession: FirebaseSession<any, any>);
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Firebase is a simpler Typescript wrapper to all of firebase services.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
20
|
exports.FirebaseBaseWrapper = void 0;
|
|
4
|
-
const
|
|
5
|
-
class FirebaseBaseWrapper extends
|
|
21
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
22
|
+
class FirebaseBaseWrapper extends ts_common_1.Logger {
|
|
6
23
|
constructor(firebaseSession) {
|
|
7
24
|
super();
|
|
8
25
|
this.firebaseSession = firebaseSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseBaseWrapper.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/FirebaseBaseWrapper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"FirebaseBaseWrapper.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/FirebaseBaseWrapper.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAGH,4DAAoD;AAEpD,MAAsB,mBACrB,SAAQ,kBAAM;IAId,YAAsB,eAA0C;QAC/D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;CACD;AAbD,kDAaC"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Firebase is a simpler Typescript wrapper to all of firebase services.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
20
|
exports.FirebaseSession_Admin = void 0;
|
|
4
21
|
const firebase_admin_1 = require("firebase-admin");
|
|
5
22
|
const firebase_session_1 = require("./firebase-session");
|
|
6
|
-
const
|
|
23
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
7
24
|
const auth_1 = require("firebase-admin/auth");
|
|
8
25
|
const app_1 = require("firebase-admin/app");
|
|
9
26
|
class FirebaseSession_Admin extends firebase_session_1.FirebaseSession {
|
|
@@ -16,24 +33,24 @@ class FirebaseSession_Admin extends firebase_session_1.FirebaseSession {
|
|
|
16
33
|
getProjectId() {
|
|
17
34
|
if (!this.config) {
|
|
18
35
|
if (!process.env.GCLOUD_PROJECT)
|
|
19
|
-
throw new
|
|
36
|
+
throw new ts_common_1.ThisShouldNotHappenException("Could not deduce project id from function const!!");
|
|
20
37
|
return process.env.GCLOUD_PROJECT;
|
|
21
38
|
}
|
|
22
39
|
if (!this.config.project_id)
|
|
23
|
-
throw new
|
|
40
|
+
throw new ts_common_1.ThisShouldNotHappenException("Could not deduce project id from session config.. if you need the functionality.. add it to the config!!");
|
|
24
41
|
return this.config.project_id;
|
|
25
42
|
}
|
|
26
43
|
createApp() {
|
|
27
44
|
if (!this.config)
|
|
28
|
-
return app_1.initializeApp(undefined, this.sessionName);
|
|
45
|
+
return (0, app_1.initializeApp)(undefined, this.sessionName);
|
|
29
46
|
const databaseURL = this.config.databaseURL || `https://${this.config.project_id}.firebaseio.com`;
|
|
30
|
-
return app_1.initializeApp({
|
|
47
|
+
return (0, app_1.initializeApp)({
|
|
31
48
|
credential: firebase_admin_1.credential.cert(this.config),
|
|
32
49
|
databaseURL: databaseURL
|
|
33
50
|
}, this.sessionName);
|
|
34
51
|
}
|
|
35
52
|
getAuth() {
|
|
36
|
-
return auth_1.getAuth(this.app);
|
|
53
|
+
return (0, auth_1.getAuth)(this.app);
|
|
37
54
|
}
|
|
38
55
|
}
|
|
39
56
|
exports.FirebaseSession_Admin = FirebaseSession_Admin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseSession_Admin.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/FirebaseSession_Admin.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"FirebaseSession_Admin.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/FirebaseSession_Admin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,mDAGwB;AACxB,yDAAmD;AACnD,4DAA0E;AAC1E,8CAG6B;AAC7B,4CAG4B;AAG5B,MAAa,qBACZ,SAAQ,kCAAqE;IAE7E,YAAY,WAAmB,EAAE,MAAiB;QACjD,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5B,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,YAAY;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;gBAC9B,MAAM,IAAI,wCAA4B,CAAC,mDAAmD,CAAC,CAAA;YAE5F,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAC1B,MAAM,IAAI,wCAA4B,CAAC,0GAA0G,CAAC,CAAA;QAEnJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEO,SAAS;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM;YACf,OAAO,IAAA,mBAAa,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,iBAAiB,CAAC;QAClG,OAAO,IAAA,mBAAa,EAAC;YACC,UAAU,EAAE,2BAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAwB,CAAC;YAC1D,WAAW,EAAE,WAAW;SACxB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO;QACb,OAAO,IAAA,cAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AAvCD,sDAuCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseSession_UserPassword.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/FirebaseSession_UserPassword.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"FirebaseSession_UserPassword.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/FirebaseSession_UserPassword.ts"],"names":[],"mappings":";AACA,WAAW;AACX,SAAS;AACT,iBAAiB;AACjB,qBAAqB;AACrB,EAAE;AACF,WAAW;AACX,4BAA4B;AAC5B,mBAAmB;AACnB,+BAA+B;AAC/B,EAAE;AACF,EAAE;AACF,4CAA4C;AAC5C,sDAAsD;AACtD,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,uCAAuC;AACvC,KAAK;AACL,EAAE;AACF,4BAA4B;AAC5B,6BAA6B;AAC7B,KAAK;AACL,EAAE;AACF,4BAA4B;AAC5B,mFAAmF;AACnF,yEAAyE;AACzE,2IAA2I;AAC3I,uEAAuE;AACvE,oDAAoD;AACpD,KAAK;AACL,IAAI"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Logger } from "@intuitionrobotics/ts-common
|
|
1
|
+
import { Logger } from "@intuitionrobotics/ts-common";
|
|
2
2
|
import { FirestoreWrapper } from "../firestore/FirestoreWrapper";
|
|
3
3
|
import { DatabaseWrapper } from "../database/DatabaseWrapper";
|
|
4
4
|
import { StorageWrapper } from "../storage/StorageWrapper";
|
|
5
5
|
import { PushMessagesWrapper } from "../push/PushMessagesWrapper";
|
|
6
|
-
import { FirebaseConfig } from "
|
|
7
|
-
export
|
|
6
|
+
import { FirebaseConfig } from "../..";
|
|
7
|
+
export type Firebase_UserCredential = {
|
|
8
8
|
config: FirebaseConfig;
|
|
9
9
|
credentials: {
|
|
10
10
|
user: string;
|
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Firebase is a simpler Typescript wrapper to all of firebase services.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
20
|
exports.FirebaseSession = void 0;
|
|
4
|
-
const
|
|
21
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
5
22
|
const FirestoreWrapper_1 = require("../firestore/FirestoreWrapper");
|
|
6
23
|
const DatabaseWrapper_1 = require("../database/DatabaseWrapper");
|
|
7
24
|
const StorageWrapper_1 = require("../storage/StorageWrapper");
|
|
8
25
|
const PushMessagesWrapper_1 = require("../push/PushMessagesWrapper");
|
|
9
|
-
class FirebaseSession extends
|
|
26
|
+
class FirebaseSession extends ts_common_1.Logger {
|
|
10
27
|
constructor(config, sessionName, _admin = true) {
|
|
11
28
|
super(`firebase: ${sessionName}`);
|
|
12
29
|
this.sessionName = sessionName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-session.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/firebase-session.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"firebase-session.js","sourceRoot":"","sources":["../../../src/main/app-backend/auth/firebase-session.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,4DAAoD;AACpD,oEAA+D;AAC/D,iEAA4D;AAC5D,8DAAyD;AACzD,qEAAgE;AAWhE,MAAsB,eACrB,SAAQ,kBAAM;IAWd,YAAsB,MAAc,EAAE,WAAmB,EAAE,MAAM,GAAG,IAAI;QACvE,KAAK,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACrB,CAAC;IAIM,OAAO;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAIM,WAAW;QACjB,IAAI,IAAI,CAAC,QAAQ;YAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;QAEtB,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,UAAU;QAChB,IAAI,IAAI,CAAC,OAAO;YACf,OAAO,IAAI,CAAC,OAAO,CAAC;QAErB,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,YAAY;QAClB,IAAI,IAAI,CAAC,SAAS;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC;QAEvB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAEM,YAAY;QAClB,IAAI,IAAI,CAAC,SAAS;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC;QAEvB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;CACD;AAtDD,0CAsDC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FirebaseListener } from "./types";
|
|
2
|
+
import { ObjectTS } from "@intuitionrobotics/ts-common";
|
|
2
3
|
import { FirebaseSession } from "../auth/firebase-session";
|
|
3
4
|
import { FirebaseBaseWrapper } from "../auth/FirebaseBaseWrapper";
|
|
4
|
-
import { ObjectTS } from "@intuitionrobotics/ts-common/utils/types";
|
|
5
5
|
export declare class DatabaseWrapper extends FirebaseBaseWrapper {
|
|
6
6
|
private readonly database;
|
|
7
7
|
constructor(firebaseSession: FirebaseSession<any, any>);
|
|
@@ -10,8 +10,8 @@ export declare class DatabaseWrapper extends FirebaseBaseWrapper {
|
|
|
10
10
|
stopListening<T>(path: string, listener: FirebaseListener): void;
|
|
11
11
|
set<T>(path: string, value: T): Promise<void>;
|
|
12
12
|
uploadByChunks(parentPath: string, data: ObjectTS, maxSizeMB?: number, itemsToRef?: Promise<any>[]): Promise<void>;
|
|
13
|
-
update<T>(path: string, value: T): Promise<void>;
|
|
14
|
-
patch<T>(path: string, value: T): Promise<void>;
|
|
13
|
+
update<T extends object>(path: string, value: T): Promise<void>;
|
|
14
|
+
patch<T extends object>(path: string, value: T): Promise<void>;
|
|
15
15
|
remove<T>(path: string, assertionRegexp?: string): Promise<unknown>;
|
|
16
16
|
delete<T>(path: string, assertionRegexp?: string): Promise<T | undefined>;
|
|
17
17
|
getSdkInstance(): import("firebase-admin/database").Database;
|
|
@@ -10,14 +10,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.DatabaseWrapper = void 0;
|
|
13
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
13
14
|
const FirebaseBaseWrapper_1 = require("../auth/FirebaseBaseWrapper");
|
|
14
15
|
const database_1 = require("firebase-admin/database");
|
|
15
|
-
const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
16
|
-
const tools_1 = require("@intuitionrobotics/ts-common/utils/tools");
|
|
17
16
|
class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
18
17
|
constructor(firebaseSession) {
|
|
19
18
|
super(firebaseSession);
|
|
20
|
-
this.database = database_1.getDatabase(firebaseSession.app);
|
|
19
|
+
this.database = (0, database_1.getDatabase)(firebaseSession.app);
|
|
21
20
|
}
|
|
22
21
|
get(path, defaultValue) {
|
|
23
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -35,7 +34,7 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
35
34
|
return this.database.ref(path).on("value", (snapshot) => callback(snapshot ? snapshot.val() : undefined));
|
|
36
35
|
}
|
|
37
36
|
catch (e) {
|
|
38
|
-
throw new
|
|
37
|
+
throw new ts_common_1.BadImplementationException(`Error while getting value from path: ${path}`, e);
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
stopListening(path, listener) {
|
|
@@ -43,7 +42,7 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
43
42
|
this.database.ref(path).off("value", listener);
|
|
44
43
|
}
|
|
45
44
|
catch (e) {
|
|
46
|
-
throw new
|
|
45
|
+
throw new ts_common_1.BadImplementationException(`Error while getting value from path: ${path}`, e);
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
set(path, value) {
|
|
@@ -52,7 +51,7 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
52
51
|
return yield this.database.ref(path).set(value);
|
|
53
52
|
}
|
|
54
53
|
catch (e) {
|
|
55
|
-
throw new
|
|
54
|
+
throw new ts_common_1.BadImplementationException(`Error while setting value to path: ${path}`, e);
|
|
56
55
|
}
|
|
57
56
|
});
|
|
58
57
|
}
|
|
@@ -60,7 +59,7 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
60
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
60
|
for (const key in data) {
|
|
62
61
|
const node = `${parentPath}/${key}`;
|
|
63
|
-
if (
|
|
62
|
+
if ((0, ts_common_1.calculateJsonSizeMb)(data[key]) < maxSizeMB)
|
|
64
63
|
yield this.set(node, data[key]);
|
|
65
64
|
else
|
|
66
65
|
yield this.uploadByChunks(node, data[key], maxSizeMB, itemsToRef);
|
|
@@ -81,7 +80,7 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
81
80
|
}
|
|
82
81
|
catch (e) {
|
|
83
82
|
this.logError(e);
|
|
84
|
-
throw new
|
|
83
|
+
throw new ts_common_1.BadImplementationException(`Error while updating value to path: ${path}`, e);
|
|
85
84
|
}
|
|
86
85
|
});
|
|
87
86
|
}
|
|
@@ -94,9 +93,9 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
94
93
|
delete(path, assertionRegexp = "^/.*?/.*") {
|
|
95
94
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
95
|
if (!path)
|
|
97
|
-
throw new
|
|
96
|
+
throw new ts_common_1.BadImplementationException(`Falsy value, path: '${path}'`);
|
|
98
97
|
if (!path.match(new RegExp(assertionRegexp)))
|
|
99
|
-
throw new
|
|
98
|
+
throw new ts_common_1.BadImplementationException(`path: '${path}' does not match assertion: '${assertionRegexp}'`);
|
|
100
99
|
try {
|
|
101
100
|
return new Promise((resolve, reject) => {
|
|
102
101
|
let val;
|
|
@@ -114,7 +113,7 @@ class DatabaseWrapper extends FirebaseBaseWrapper_1.FirebaseBaseWrapper {
|
|
|
114
113
|
});
|
|
115
114
|
}
|
|
116
115
|
catch (e) {
|
|
117
|
-
throw new
|
|
116
|
+
throw new ts_common_1.BadImplementationException(`Error while removing path: ${path}`, e);
|
|
118
117
|
}
|
|
119
118
|
});
|
|
120
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseWrapper.js","sourceRoot":"","sources":["../../../src/main/app-backend/database/DatabaseWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DatabaseWrapper.js","sourceRoot":"","sources":["../../../src/main/app-backend/database/DatabaseWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as admin from "firebase-admin";
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
2
|
+
export type Firebase_DB = admin.database.Database;
|
|
3
|
+
export type Firebase_DataSnapshot = admin.database.DataSnapshot;
|
|
4
|
+
export type FirebaseListener = (snapshot: Firebase_DataSnapshot | null) => void;
|
|
@@ -1,3 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Firebase is a simpler Typescript wrapper to all of firebase services.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
20
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/main/app-backend/database/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/main/app-backend/database/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { Subset } from "@intuitionrobotics/ts-common";
|
|
1
2
|
import { FirestoreType_Collection, FirestoreType_DocumentSnapshot, FirestoreType_QuerySnapshot } from "./types";
|
|
2
3
|
import { Clause_Select, Clause_Where, FilterKeys, FirestoreQuery } from "../../shared/types";
|
|
3
4
|
import { FirestoreWrapper } from "./FirestoreWrapper";
|
|
4
5
|
import { FirestoreTransaction } from "./FirestoreTransaction";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
6
|
+
import { firestore } from "firebase-admin";
|
|
7
|
+
import { SetOptions } from "firebase-admin/lib/firestore";
|
|
8
|
+
import WriteResult = firestore.WriteResult;
|
|
7
9
|
export declare class FirestoreCollection<Type extends object> {
|
|
8
10
|
readonly name: string;
|
|
9
11
|
readonly wrapper: FirestoreWrapper;
|
|
@@ -19,7 +21,7 @@ export declare class FirestoreCollection<Type extends object> {
|
|
|
19
21
|
private _queryUnique;
|
|
20
22
|
queryUnique(ourQuery: FirestoreQuery<Type>): Promise<Type | undefined>;
|
|
21
23
|
insert(instance: Type, id?: string): Promise<Type>;
|
|
22
|
-
insertAll(instances: Type[]): Promise<Type[]>;
|
|
24
|
+
insertAll(instances: Type[]): Promise<Awaited<Type>[]>;
|
|
23
25
|
query(ourQuery: FirestoreQuery<Type>): Promise<Type[]>;
|
|
24
26
|
upsert(instance: Type): Promise<Type>;
|
|
25
27
|
upsertAll(instances: Type[]): Promise<Type[]>;
|
|
@@ -33,9 +35,9 @@ export declare class FirestoreCollection<Type extends object> {
|
|
|
33
35
|
deleteAll(): Promise<Type[]>;
|
|
34
36
|
getAll(select?: Clause_Select<Type>): Promise<Type[]>;
|
|
35
37
|
runInTransaction<ReturnType>(processor: (transaction: FirestoreTransaction) => Promise<ReturnType>): Promise<ReturnType>;
|
|
36
|
-
createDocumentReference(id?: string):
|
|
38
|
+
createDocumentReference(id?: string): firestore.DocumentReference<Type>;
|
|
37
39
|
set(instance: Type, id: string): Promise<WriteResult>;
|
|
38
40
|
set(instance: Partial<Type>, id: string, options: SetOptions): Promise<WriteResult>;
|
|
39
|
-
create(instance: Type, id: string): Promise<WriteResult>;
|
|
41
|
+
create(instance: Type, id: string): Promise<firestore.WriteResult>;
|
|
40
42
|
getUniqueFilter: () => (object: Subset<Type>) => Clause_Where<Type>;
|
|
41
43
|
}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Firebase is a simpler Typescript wrapper to all of firebase services.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
20
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
21
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,11 +27,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
27
|
};
|
|
11
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
29
|
exports.FirestoreCollection = void 0;
|
|
30
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
13
31
|
const FirestoreInterface_1 = require("./FirestoreInterface");
|
|
14
32
|
const FirestoreTransaction_1 = require("./FirestoreTransaction");
|
|
15
|
-
const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
16
|
-
const array_tools_1 = require("@intuitionrobotics/ts-common/utils/array-tools");
|
|
17
|
-
const random_tools_1 = require("@intuitionrobotics/ts-common/utils/random-tools");
|
|
18
33
|
class FirestoreCollection {
|
|
19
34
|
constructor(name, wrapper, externalFilterKeys) {
|
|
20
35
|
this.getUniqueFilter = () => this.externalUniqueFilter;
|
|
@@ -25,7 +40,7 @@ class FirestoreCollection {
|
|
|
25
40
|
this.collection = wrapper.firestore.collection(name);
|
|
26
41
|
this.externalUniqueFilter = (instance) => {
|
|
27
42
|
if (!externalFilterKeys)
|
|
28
|
-
throw new
|
|
43
|
+
throw new ts_common_1.BadImplementationException("In order to use a unique query your collection MUST have a unique filter");
|
|
29
44
|
return externalFilterKeys.reduce((where, key) => {
|
|
30
45
|
// @ts-ignore
|
|
31
46
|
where[key] = instance[key];
|
|
@@ -88,7 +103,7 @@ class FirestoreCollection {
|
|
|
88
103
|
}
|
|
89
104
|
upsertAll(instances) {
|
|
90
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
return
|
|
106
|
+
return (0, ts_common_1.batchAction)(instances, 500, (chunked) => __awaiter(this, void 0, void 0, function* () { return this.runInTransaction(transaction => transaction.upsertAll(this, chunked)); }));
|
|
92
107
|
});
|
|
93
108
|
}
|
|
94
109
|
patch(instance) {
|
|
@@ -116,7 +131,7 @@ class FirestoreCollection {
|
|
|
116
131
|
}
|
|
117
132
|
deleteBatch(docRefs) {
|
|
118
133
|
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
yield
|
|
134
|
+
yield (0, ts_common_1.batchAction)(docRefs, 500, (elements) => __awaiter(this, void 0, void 0, function* () {
|
|
120
135
|
const batch = this.collection.firestore.batch();
|
|
121
136
|
elements.forEach(doc => batch.delete(doc.ref));
|
|
122
137
|
yield batch.commit();
|
|
@@ -142,7 +157,7 @@ class FirestoreCollection {
|
|
|
142
157
|
}));
|
|
143
158
|
});
|
|
144
159
|
}
|
|
145
|
-
createDocumentReference(id =
|
|
160
|
+
createDocumentReference(id = (0, ts_common_1.generateHex)(16)) {
|
|
146
161
|
return this.collection.doc(id);
|
|
147
162
|
}
|
|
148
163
|
set(instance, id, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirestoreCollection.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreCollection.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"FirestoreCollection.js","sourceRoot":"","sources":["../../../src/main/app-backend/firestore/FirestoreCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { FirestoreQuery } from "../..";
|
|
1
2
|
import { FirestoreType_QueryDocumentSnapshot } from "./types";
|
|
2
3
|
import { FirestoreCollection } from "./FirestoreCollection";
|
|
3
4
|
import { CollectionReference, Query } from "firebase-admin/firestore";
|
|
4
|
-
import { FirestoreQuery } from "../../shared/types";
|
|
5
5
|
export declare class FirestoreInterface {
|
|
6
6
|
static buildQuery<Type extends object>(collection: CollectionReference<Type>, query?: FirestoreQuery<Type>): Query<Type>;
|
|
7
7
|
private static isQueryObject;
|