@entropic-bond/firebase-admin 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/entropic-bond-firebase-admin.js +133451 -0
- package/lib/entropic-bond-firebase-admin.js.map +1 -0
- package/lib/entropic-bond-firebase-admin.umd.cjs +3589 -0
- package/lib/entropic-bond-firebase-admin.umd.cjs.map +1 -0
- package/lib/firebase-admin-helper.d.ts +1 -1
- package/package.json +26 -19
- package/lib/firebase-admin-helper.js +0 -26
- package/lib/firebase-admin-helper.js.map +0 -1
- package/lib/index.js +0 -20
- package/lib/index.js.map +0 -1
- package/lib/mocks/mock-data.json +0 -148
- package/lib/mocks/test-user.js +0 -131
- package/lib/mocks/test-user.js.map +0 -1
- package/lib/server-auth/firebase-server-auth.js +0 -50
- package/lib/server-auth/firebase-server-auth.js.map +0 -1
- package/lib/server-auth/firebase-server-auth.spec.js +0 -22
- package/lib/server-auth/firebase-server-auth.spec.js.map +0 -1
- package/lib/store/firebase-admin-datasource.js +0 -104
- package/lib/store/firebase-admin-datasource.js.map +0 -1
- package/lib/store/firebase-admin-datasource.spec.js +0 -401
- package/lib/store/firebase-admin-datasource.spec.js.map +0 -1
|
@@ -5,7 +5,7 @@ export declare class FirebaseAdminHelper {
|
|
|
5
5
|
private constructor();
|
|
6
6
|
static get instance(): FirebaseAdminHelper;
|
|
7
7
|
firestore(): admin.firestore.Firestore;
|
|
8
|
-
auth():
|
|
8
|
+
auth(): admin.auth.Auth;
|
|
9
9
|
private static _instance;
|
|
10
10
|
private static _firebaseConfig;
|
|
11
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entropic-bond/firebase-admin",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.6.1",
|
|
5
|
+
"description": "Firebase Admin plugins for Entropic Bond",
|
|
6
|
+
"main": "lib/entropic-bond-firebase-admin.umd.cjs",
|
|
7
|
+
"module": "lib/entropic-bond-firebase-admin.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./lib/entropic-bond-firebase-admin.js",
|
|
11
|
+
"require": "./lib/entropic-bond-firebase-admin.umd.cjs",
|
|
12
|
+
"types": "./lib/index.d.ts"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"types": "./lib/index.d.ts",
|
|
16
|
+
"files": [
|
|
17
|
+
"lib"
|
|
18
|
+
],
|
|
4
19
|
"publishConfig": {
|
|
5
20
|
"access": "public",
|
|
6
21
|
"branches": [
|
|
@@ -16,18 +31,10 @@
|
|
|
16
31
|
"@semantic-release/github"
|
|
17
32
|
]
|
|
18
33
|
},
|
|
19
|
-
"description": "Firebase Admin plugins for Entropic Bond",
|
|
20
|
-
"main": "lib/index.js",
|
|
21
|
-
"types": "lib/index.d.ts",
|
|
22
|
-
"files": [
|
|
23
|
-
"lib"
|
|
24
|
-
],
|
|
25
34
|
"scripts": {
|
|
26
|
-
"test": "firebase emulators:exec --project demo-test '
|
|
27
|
-
"build": "
|
|
35
|
+
"test": "firebase emulators:exec --project demo-test 'vitest'",
|
|
36
|
+
"build": "tsc -p tsconfig-build.json && vite build",
|
|
28
37
|
"prepare": "npm run build",
|
|
29
|
-
"build-ts": "cp -r ./src/ ./lib",
|
|
30
|
-
"build-cjs": "tsc -p tsconfig-cjs.json",
|
|
31
38
|
"emulators": "firebase emulators:start --project demo-test"
|
|
32
39
|
},
|
|
33
40
|
"repository": {
|
|
@@ -47,17 +54,17 @@
|
|
|
47
54
|
"devDependencies": {
|
|
48
55
|
"@semantic-release/changelog": "^6.0.3",
|
|
49
56
|
"@semantic-release/git": "^10.0.1",
|
|
50
|
-
"@types/jest": "^29.5.2",
|
|
51
57
|
"git-branch-is": "^4.0.0",
|
|
52
|
-
"husky": "^
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
58
|
+
"husky": "^9.0.10",
|
|
59
|
+
"semantic-release": "^23.0.2",
|
|
60
|
+
"typescript": "^5.3.3",
|
|
61
|
+
"vite": "^5.1.1",
|
|
62
|
+
"vite-plugin-dts": "^3.7.2",
|
|
63
|
+
"vitest": "^1.2.2"
|
|
57
64
|
},
|
|
58
65
|
"dependencies": {
|
|
59
|
-
"entropic-bond": "^1.
|
|
60
|
-
"firebase-admin": "^
|
|
66
|
+
"entropic-bond": "^1.50.4",
|
|
67
|
+
"firebase-admin": "^12.0.0"
|
|
61
68
|
},
|
|
62
69
|
"husky": {
|
|
63
70
|
"hooks": {
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.FirebaseAdminHelper = void 0;
|
|
7
|
-
const firebase_admin_1 = __importDefault(require("firebase-admin"));
|
|
8
|
-
class FirebaseAdminHelper {
|
|
9
|
-
static setFirebaseConfig(config) {
|
|
10
|
-
FirebaseAdminHelper._firebaseConfig = config;
|
|
11
|
-
}
|
|
12
|
-
constructor() {
|
|
13
|
-
firebase_admin_1.default.initializeApp(FirebaseAdminHelper._firebaseConfig);
|
|
14
|
-
}
|
|
15
|
-
static get instance() {
|
|
16
|
-
return this._instance || (this._instance = new FirebaseAdminHelper());
|
|
17
|
-
}
|
|
18
|
-
firestore() {
|
|
19
|
-
return firebase_admin_1.default.firestore();
|
|
20
|
-
}
|
|
21
|
-
auth() {
|
|
22
|
-
return firebase_admin_1.default.auth();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.FirebaseAdminHelper = FirebaseAdminHelper;
|
|
26
|
-
//# sourceMappingURL=firebase-admin-helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-admin-helper.js","sourceRoot":"","sources":["../src/firebase-admin-helper.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAkC;AAGlC,MAAa,mBAAmB;IAE/B,MAAM,CAAC,iBAAiB,CAAE,MAAmB;QAC5C,mBAAmB,CAAC,eAAe,GAAG,MAAM,CAAA;IAC7C,CAAC;IAED;QACC,wBAAK,CAAC,aAAa,CAAE,mBAAmB,CAAC,eAAe,CAAE,CAAA;IAC3D,CAAC;IAED,MAAM,KAAK,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAE,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAE,CAAA;IACxE,CAAC;IAED,SAAS;QACR,OAAO,wBAAK,CAAC,SAAS,EAAE,CAAA;IACzB,CAAC;IAED,IAAI;QACH,OAAO,wBAAK,CAAC,IAAI,EAAE,CAAA;IACpB,CAAC;CAID;AAxBD,kDAwBC"}
|
package/lib/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./store/firebase-admin-datasource"), exports);
|
|
18
|
-
__exportStar(require("./firebase-admin-helper"), exports);
|
|
19
|
-
__exportStar(require("./server-auth/firebase-server-auth"), exports);
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAiD;AACjD,0DAAuC;AACvC,qEAAkD"}
|
package/lib/mocks/mock-data.json
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"TestUser": {
|
|
3
|
-
"user1": {
|
|
4
|
-
"__className": "TestUser",
|
|
5
|
-
"id": "user1",
|
|
6
|
-
"name": {
|
|
7
|
-
"firstName": "userFirstName1",
|
|
8
|
-
"lastName": "userLastName1"
|
|
9
|
-
},
|
|
10
|
-
"age": 23,
|
|
11
|
-
"admin": true,
|
|
12
|
-
"skills": ["skill1", "skill2", "skill3"]
|
|
13
|
-
},
|
|
14
|
-
"user2": {
|
|
15
|
-
"__className": "TestUser",
|
|
16
|
-
"id": "user2",
|
|
17
|
-
"name": {
|
|
18
|
-
"firstName": "userFirstName2",
|
|
19
|
-
"lastName": "userLastName2",
|
|
20
|
-
"ancestorName": {
|
|
21
|
-
"father": "user2Father"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"age": 21,
|
|
25
|
-
"admin": false,
|
|
26
|
-
"skills": ["skill1", "skill2", "skill3"],
|
|
27
|
-
"colleagues": [
|
|
28
|
-
{
|
|
29
|
-
"id": "colleague1",
|
|
30
|
-
"__className": "TestUser"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"id": "user3",
|
|
34
|
-
"__className": "TestUser"
|
|
35
|
-
}
|
|
36
|
-
],
|
|
37
|
-
"__colleagues_searchable": ["colleague1", "user3"]
|
|
38
|
-
},
|
|
39
|
-
"user3": {
|
|
40
|
-
"__className": "TestUser",
|
|
41
|
-
"id": "user3",
|
|
42
|
-
"name": {
|
|
43
|
-
"firstName": "userFirstName3",
|
|
44
|
-
"lastName": "userLastName3",
|
|
45
|
-
"ancestorName": {
|
|
46
|
-
"father": "user3Father"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"age": 56,
|
|
50
|
-
"admin": true,
|
|
51
|
-
"skills": ["skill21", "skill22", "skill23"],
|
|
52
|
-
"colleagues": [
|
|
53
|
-
{
|
|
54
|
-
"id": "user1",
|
|
55
|
-
"__className": "TestUser"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"id": "user3",
|
|
59
|
-
"__className": "TestUser"
|
|
60
|
-
}
|
|
61
|
-
],
|
|
62
|
-
"__colleagues_searchable": ["user1", "user3"]
|
|
63
|
-
},
|
|
64
|
-
"user4": {
|
|
65
|
-
"__className": "DerivedUser",
|
|
66
|
-
"id": "user4",
|
|
67
|
-
"name": {
|
|
68
|
-
"firstName": "userFirstName4",
|
|
69
|
-
"lastName": "userLastName4"
|
|
70
|
-
},
|
|
71
|
-
"age": 35,
|
|
72
|
-
"admin": false,
|
|
73
|
-
"skills": ["skill41", "skill42", "skill43"],
|
|
74
|
-
"salary": 2800,
|
|
75
|
-
"colleagues": [
|
|
76
|
-
{
|
|
77
|
-
"id": "colleague1",
|
|
78
|
-
"__className": "TestUser"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "colleague2",
|
|
82
|
-
"__className": "TestUser"
|
|
83
|
-
}
|
|
84
|
-
],
|
|
85
|
-
"__colleagues_searchable": ["colleague1", "colleague2"]
|
|
86
|
-
},
|
|
87
|
-
"user5": {
|
|
88
|
-
"__className": "TestUser",
|
|
89
|
-
"id": "user5",
|
|
90
|
-
"name": {
|
|
91
|
-
"firstName": "userFirstName5",
|
|
92
|
-
"lastName": "userLastName5",
|
|
93
|
-
"ancestorName": {
|
|
94
|
-
"father": "user5Father"
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
"age": 41,
|
|
98
|
-
"skills": ["skill21", "skill22", "skill23"],
|
|
99
|
-
"derived": {
|
|
100
|
-
"id": "user3",
|
|
101
|
-
"__className": "DerivedUser",
|
|
102
|
-
"__documentReference": {
|
|
103
|
-
"storedInCollection": "DerivedUser"
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"user6": {
|
|
108
|
-
"__className": "TestUser",
|
|
109
|
-
"id": "user6",
|
|
110
|
-
"name": {
|
|
111
|
-
"firstName": "userFirstName6",
|
|
112
|
-
"lastName": "userLastName6",
|
|
113
|
-
"ancestorName": {
|
|
114
|
-
"father": "user6Father"
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
"age": 40,
|
|
118
|
-
"skills": ["skill21", "skill22", "skill23"],
|
|
119
|
-
"derived": {
|
|
120
|
-
"id": "user4",
|
|
121
|
-
"__className": "DerivedUser",
|
|
122
|
-
"__documentReference": {
|
|
123
|
-
"storedInCollection": "TestUser"
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
"colleagues": [
|
|
127
|
-
{
|
|
128
|
-
"id": "colleague2",
|
|
129
|
-
"__className": "TestUser"
|
|
130
|
-
}
|
|
131
|
-
],
|
|
132
|
-
"__colleagues_searchable": ["colleague2"]
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
"DerivedUser": {
|
|
136
|
-
"user4": {
|
|
137
|
-
"__className": "DerivedUser",
|
|
138
|
-
"id": "user5",
|
|
139
|
-
"name": {
|
|
140
|
-
"firstName": "userFirstName5",
|
|
141
|
-
"lastName": "userLastName5"
|
|
142
|
-
},
|
|
143
|
-
"age": 35,
|
|
144
|
-
"admin": false,
|
|
145
|
-
"salary": 2300
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
package/lib/mocks/test-user.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.DerivedUser = exports.TestUser = exports.SubClass = void 0;
|
|
10
|
-
const entropic_bond_1 = require("entropic-bond");
|
|
11
|
-
let SubClass = exports.SubClass = class SubClass extends entropic_bond_1.Persistent {
|
|
12
|
-
set year(value) {
|
|
13
|
-
this._year = value;
|
|
14
|
-
}
|
|
15
|
-
get year() {
|
|
16
|
-
return this._year;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
__decorate([
|
|
20
|
-
entropic_bond_1.persistent
|
|
21
|
-
], SubClass.prototype, "_year", void 0);
|
|
22
|
-
exports.SubClass = SubClass = __decorate([
|
|
23
|
-
(0, entropic_bond_1.registerPersistentClass)('SubClass')
|
|
24
|
-
], SubClass);
|
|
25
|
-
let TestUser = exports.TestUser = class TestUser extends entropic_bond_1.Persistent {
|
|
26
|
-
constructor() {
|
|
27
|
-
super(...arguments);
|
|
28
|
-
this._colleagues = [];
|
|
29
|
-
this._manyRefs = [];
|
|
30
|
-
}
|
|
31
|
-
set name(value) {
|
|
32
|
-
this._name = value;
|
|
33
|
-
}
|
|
34
|
-
get name() {
|
|
35
|
-
return this._name;
|
|
36
|
-
}
|
|
37
|
-
set age(value) {
|
|
38
|
-
this._age = value;
|
|
39
|
-
}
|
|
40
|
-
get age() {
|
|
41
|
-
return this._age;
|
|
42
|
-
}
|
|
43
|
-
set admin(value) {
|
|
44
|
-
this._admin = value;
|
|
45
|
-
}
|
|
46
|
-
get admin() {
|
|
47
|
-
return this._admin;
|
|
48
|
-
}
|
|
49
|
-
set skills(value) {
|
|
50
|
-
this._skills = value;
|
|
51
|
-
}
|
|
52
|
-
get skills() {
|
|
53
|
-
return this._skills;
|
|
54
|
-
}
|
|
55
|
-
set documentRef(value) {
|
|
56
|
-
this._documentRef = value;
|
|
57
|
-
}
|
|
58
|
-
get documentRef() {
|
|
59
|
-
return this._documentRef;
|
|
60
|
-
}
|
|
61
|
-
set manyRefs(value) {
|
|
62
|
-
this._manyRefs = value;
|
|
63
|
-
}
|
|
64
|
-
get manyRefs() {
|
|
65
|
-
return this._manyRefs;
|
|
66
|
-
}
|
|
67
|
-
set derived(value) {
|
|
68
|
-
this._derived = value;
|
|
69
|
-
}
|
|
70
|
-
get derived() {
|
|
71
|
-
return this._derived;
|
|
72
|
-
}
|
|
73
|
-
set manyDerived(value) {
|
|
74
|
-
this._manyDerived = value;
|
|
75
|
-
}
|
|
76
|
-
get manyDerived() {
|
|
77
|
-
return this._manyDerived;
|
|
78
|
-
}
|
|
79
|
-
set colleagues(value) {
|
|
80
|
-
this._colleagues = value;
|
|
81
|
-
}
|
|
82
|
-
get colleagues() {
|
|
83
|
-
return this._colleagues;
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
__decorate([
|
|
87
|
-
entropic_bond_1.persistent,
|
|
88
|
-
entropic_bond_1.searchableArray
|
|
89
|
-
], TestUser.prototype, "_colleagues", void 0);
|
|
90
|
-
__decorate([
|
|
91
|
-
entropic_bond_1.persistent
|
|
92
|
-
], TestUser.prototype, "_name", void 0);
|
|
93
|
-
__decorate([
|
|
94
|
-
entropic_bond_1.persistent
|
|
95
|
-
], TestUser.prototype, "_age", void 0);
|
|
96
|
-
__decorate([
|
|
97
|
-
entropic_bond_1.persistent
|
|
98
|
-
], TestUser.prototype, "_admin", void 0);
|
|
99
|
-
__decorate([
|
|
100
|
-
entropic_bond_1.persistent
|
|
101
|
-
], TestUser.prototype, "_skills", void 0);
|
|
102
|
-
__decorate([
|
|
103
|
-
entropic_bond_1.persistentReference
|
|
104
|
-
], TestUser.prototype, "_documentRef", void 0);
|
|
105
|
-
__decorate([
|
|
106
|
-
entropic_bond_1.persistentReference
|
|
107
|
-
], TestUser.prototype, "_manyRefs", void 0);
|
|
108
|
-
__decorate([
|
|
109
|
-
(0, entropic_bond_1.persistentReferenceAt)('TestUser')
|
|
110
|
-
], TestUser.prototype, "_derived", void 0);
|
|
111
|
-
__decorate([
|
|
112
|
-
(0, entropic_bond_1.persistentReferenceAt)('TestUser')
|
|
113
|
-
], TestUser.prototype, "_manyDerived", void 0);
|
|
114
|
-
exports.TestUser = TestUser = __decorate([
|
|
115
|
-
(0, entropic_bond_1.registerPersistentClass)('TestUser')
|
|
116
|
-
], TestUser);
|
|
117
|
-
let DerivedUser = exports.DerivedUser = class DerivedUser extends TestUser {
|
|
118
|
-
set salary(value) {
|
|
119
|
-
this._salary = value;
|
|
120
|
-
}
|
|
121
|
-
get salary() {
|
|
122
|
-
return this._salary;
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
__decorate([
|
|
126
|
-
entropic_bond_1.persistent
|
|
127
|
-
], DerivedUser.prototype, "_salary", void 0);
|
|
128
|
-
exports.DerivedUser = DerivedUser = __decorate([
|
|
129
|
-
(0, entropic_bond_1.registerPersistentClass)('DerivedUser')
|
|
130
|
-
], DerivedUser);
|
|
131
|
-
//# sourceMappingURL=test-user.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-user.js","sourceRoot":"","sources":["../../src/mocks/test-user.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FirebaseServerAuth = void 0;
|
|
4
|
-
const entropic_bond_1 = require("entropic-bond");
|
|
5
|
-
const firebase_admin_helper_1 = require("../firebase-admin-helper");
|
|
6
|
-
class FirebaseServerAuth extends entropic_bond_1.ServerAuthService {
|
|
7
|
-
async getUser(userId) {
|
|
8
|
-
try {
|
|
9
|
-
return this.convertToUserCredentials(await firebase_admin_helper_1.FirebaseAdminHelper.instance.auth().getUser(userId));
|
|
10
|
-
}
|
|
11
|
-
catch (error) {
|
|
12
|
-
if (error.code === 'auth/user-not-found')
|
|
13
|
-
return undefined;
|
|
14
|
-
else
|
|
15
|
-
throw new Error(error);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
setCustomCredentials(userId, customCredentials) {
|
|
19
|
-
return firebase_admin_helper_1.FirebaseAdminHelper.instance.auth().setCustomUserClaims(userId, customCredentials);
|
|
20
|
-
}
|
|
21
|
-
async updateUser(userId, credentials) {
|
|
22
|
-
return this.convertToUserCredentials(await firebase_admin_helper_1.FirebaseAdminHelper.instance.auth().updateUser(userId, credentials));
|
|
23
|
-
}
|
|
24
|
-
async deleteUser(userId) {
|
|
25
|
-
try {
|
|
26
|
-
await firebase_admin_helper_1.FirebaseAdminHelper.instance.auth().deleteUser(userId);
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
if (error.code === 'auth/user-not-found')
|
|
30
|
-
return undefined;
|
|
31
|
-
else
|
|
32
|
-
throw new Error(error);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
convertToUserCredentials(userData) {
|
|
36
|
-
return {
|
|
37
|
-
id: userData.uid,
|
|
38
|
-
email: userData.email ?? '',
|
|
39
|
-
emailVerified: userData.emailVerified ?? undefined,
|
|
40
|
-
creationDate: userData.metadata.creationTime ? new Date(userData.metadata.creationTime).getTime() : undefined,
|
|
41
|
-
lastLogin: userData.metadata.lastSignInTime ? new Date(userData.metadata.lastSignInTime).getTime() : undefined,
|
|
42
|
-
name: userData.displayName,
|
|
43
|
-
phoneNumber: userData.phoneNumber ?? undefined,
|
|
44
|
-
pictureUrl: userData.photoURL ?? undefined,
|
|
45
|
-
customData: userData.customClaims
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.FirebaseServerAuth = FirebaseServerAuth;
|
|
50
|
-
//# sourceMappingURL=firebase-server-auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-server-auth.js","sourceRoot":"","sources":["../../src/server-auth/firebase-server-auth.ts"],"names":[],"mappings":";;;AAAA,iDAAqF;AAErF,oEAA8D;AAE9D,MAAa,kBAAmB,SAAQ,iCAAiB;IAExD,KAAK,CAAC,OAAO,CAAgB,MAAc;QAC1C,IAAI;YACH,OAAO,IAAI,CAAC,wBAAwB,CACnC,MAAM,2CAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,MAAM,CAAE,CAC3D,CAAA;SACD;QAAC,OAAQ,KAAK,EAAG;YACjB,IAAK,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBAAG,OAAO,SAAS,CAAA;;gBACvD,MAAM,IAAI,KAAK,CAAE,KAAK,CAAE,CAAA;SAC7B;IACF,CAAC;IAED,oBAAoB,CAA+B,MAAc,EAAE,iBAAoB;QACtF,OAAO,2CAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAE,MAAM,EAAE,iBAAiB,CAAE,CAAA;IAC5F,CAAC;IAED,KAAK,CAAC,UAAU,CAAgB,MAAc,EAAE,WAA+B;QAC9E,OAAO,IAAI,CAAC,wBAAwB,CACnC,MAAM,2CAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAE,MAAM,EAAE,WAAW,CAAE,CAC3E,CAAA;IACF,CAAC;IAED,KAAK,CAAC,UAAU,CAAE,MAAc;QAC/B,IAAI;YACH,MAAM,2CAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAE,MAAM,CAAE,CAAA;SAC9D;QACD,OAAQ,KAAK,EAAG;YACf,IAAK,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBAAG,OAAO,SAAS,CAAA;;gBACvD,MAAM,IAAI,KAAK,CAAE,KAAK,CAAE,CAAA;SAC7B;IACF,CAAC;IAEO,wBAAwB,CAAgB,QAAoB;QACnE,OAAO;YACN,EAAE,EAAE,QAAQ,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,SAAS;YAClD,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAA,CAAC,CAAC,IAAI,IAAI,CAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;YAC9G,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAA,CAAC,CAAC,IAAI,IAAI,CAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;YAC/G,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;YAC9C,UAAU,EAAE,QAAQ,CAAC,QAAQ,IAAI,SAAS;YAC1C,UAAU,EAAE,QAAQ,CAAC,YAAiB;SACtC,CAAA;IACF,CAAC;CACD;AA9CD,gDA8CC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const entropic_bond_1 = require("entropic-bond");
|
|
4
|
-
const firebase_admin_helper_1 = require("../firebase-admin-helper");
|
|
5
|
-
const firebase_server_auth_1 = require("./firebase-server-auth");
|
|
6
|
-
describe('Firebase Server Auth', () => {
|
|
7
|
-
firebase_admin_helper_1.FirebaseAdminHelper.setFirebaseConfig({
|
|
8
|
-
projectId: "demo-test",
|
|
9
|
-
});
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
entropic_bond_1.ServerAuth.useServerAuthService(new firebase_server_auth_1.FirebaseServerAuth());
|
|
12
|
-
});
|
|
13
|
-
it('should not throw if user not found', async () => {
|
|
14
|
-
expect.assertions(1);
|
|
15
|
-
await expect(entropic_bond_1.ServerAuth.instance.getUser('non-existing-user-id')).resolves.toBeUndefined();
|
|
16
|
-
});
|
|
17
|
-
it('should not throw if user not found in deleteUser', async () => {
|
|
18
|
-
expect.assertions(1);
|
|
19
|
-
await expect(entropic_bond_1.ServerAuth.instance.deleteUser('non-existing-user-id')).resolves.toBeUndefined();
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=firebase-server-auth.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-server-auth.spec.js","sourceRoot":"","sources":["../../src/server-auth/firebase-server-auth.spec.ts"],"names":[],"mappings":";;AAAA,iDAA0C;AAC1C,oEAA8D;AAC9D,iEAA2D;AAE3D,QAAQ,CAAE,sBAAsB,EAAE,GAAE,EAAE;IACrC,2CAAmB,CAAC,iBAAiB,CAAC;QACrC,SAAS,EAAE,WAAW;KACtB,CAAC,CAAA;IAEF,UAAU,CAAC,GAAE,EAAE;QACd,0BAAU,CAAC,oBAAoB,CAAE,IAAI,yCAAkB,EAAE,CAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAE,oCAAoC,EAAE,KAAK,IAAG,EAAE;QACnD,MAAM,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;QACtB,MAAM,MAAM,CACX,0BAAU,CAAC,QAAQ,CAAC,OAAO,CAAE,sBAAsB,CAAE,CACrD,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAE,kDAAkD,EAAE,KAAK,IAAG,EAAE;QACjE,MAAM,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;QACtB,MAAM,MAAM,CACX,0BAAU,CAAC,QAAQ,CAAC,UAAU,CAAE,sBAAsB,CAAE,CACxD,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;AAEH,CAAC,CAAC,CAAA"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FirebaseAdminDatasource = void 0;
|
|
4
|
-
const entropic_bond_1 = require("entropic-bond");
|
|
5
|
-
const firebase_admin_helper_1 = require("../firebase-admin-helper");
|
|
6
|
-
const firestore_1 = require("firebase-admin/firestore");
|
|
7
|
-
class FirebaseAdminDatasource extends entropic_bond_1.DataSource {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this._lastLimit = 0;
|
|
11
|
-
}
|
|
12
|
-
findById(id, collectionName) {
|
|
13
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
14
|
-
return new Promise(async (resolve) => {
|
|
15
|
-
try {
|
|
16
|
-
const docSnap = db.doc(`${collectionName}/${id}`);
|
|
17
|
-
const retrievedObj = await docSnap.get();
|
|
18
|
-
resolve(retrievedObj.data());
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
console.log(error);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
save(collections) {
|
|
27
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
28
|
-
const batch = db.batch();
|
|
29
|
-
Object.entries(collections).forEach(([collectionName, collection]) => {
|
|
30
|
-
collection?.forEach(document => {
|
|
31
|
-
const ref = db.doc(`${collectionName}/${document.id}`);
|
|
32
|
-
batch.set(ref, document);
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
return batch.commit();
|
|
36
|
-
}
|
|
37
|
-
find(queryObject, collectionName) {
|
|
38
|
-
const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
|
|
39
|
-
this._lastQuery = query;
|
|
40
|
-
return this.getFromQuery(query);
|
|
41
|
-
}
|
|
42
|
-
async count(queryObject, collectionName) {
|
|
43
|
-
const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
|
|
44
|
-
const snapShot = await query.count().get();
|
|
45
|
-
return snapShot.data().count;
|
|
46
|
-
}
|
|
47
|
-
delete(id, collectionName) {
|
|
48
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
49
|
-
return db.recursiveDelete(db.doc(`${collectionName}/${id}`));
|
|
50
|
-
}
|
|
51
|
-
next(maxDocs) {
|
|
52
|
-
if (!this._lastQuery)
|
|
53
|
-
throw new Error('You should perform a query prior to using method next');
|
|
54
|
-
this._lastLimit = maxDocs || this._lastLimit;
|
|
55
|
-
const query = this._lastQuery.limit(this._lastLimit).startAfter(this._lastDocRetrieved);
|
|
56
|
-
return this.getFromQuery(query);
|
|
57
|
-
}
|
|
58
|
-
// prev should be used with next in reverse order
|
|
59
|
-
// prev( limit?: number ): Promise< DocumentObject[] > {
|
|
60
|
-
// }
|
|
61
|
-
getFromQuery(query) {
|
|
62
|
-
return new Promise(async (resolve) => {
|
|
63
|
-
const doc = await query.get();
|
|
64
|
-
this._lastDocRetrieved = doc.docs[doc.docs.length - 1];
|
|
65
|
-
resolve(doc.docs.map(doc => doc.data()));
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
queryObjectToFirebaseQuery(queryObject, collectionName) {
|
|
69
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
70
|
-
const andConstraints = [];
|
|
71
|
-
const orConstraints = [];
|
|
72
|
-
entropic_bond_1.DataSource.toPropertyPathOperations(queryObject.operations).forEach(operation => {
|
|
73
|
-
const operator = this.toFirebaseOperator(operation.operator);
|
|
74
|
-
if (operation.aggregate)
|
|
75
|
-
orConstraints.push(firestore_1.Filter.where(operation.property, operator, operation.value));
|
|
76
|
-
else
|
|
77
|
-
andConstraints.push(firestore_1.Filter.where(operation.property, operator, operation.value));
|
|
78
|
-
});
|
|
79
|
-
let query = db.collection(collectionName).where(firestore_1.Filter.or(...orConstraints, firestore_1.Filter.and(...andConstraints)));
|
|
80
|
-
if (queryObject.sort?.propertyName) {
|
|
81
|
-
query = query.orderBy(queryObject.sort.propertyName, queryObject.sort.order);
|
|
82
|
-
}
|
|
83
|
-
if (queryObject.limit) {
|
|
84
|
-
this._lastLimit = queryObject.limit;
|
|
85
|
-
query = query.limit(queryObject.limit);
|
|
86
|
-
}
|
|
87
|
-
return query;
|
|
88
|
-
}
|
|
89
|
-
toFirebaseOperator(operator) {
|
|
90
|
-
switch (operator) {
|
|
91
|
-
case '==':
|
|
92
|
-
case '!=':
|
|
93
|
-
case '<':
|
|
94
|
-
case '<=':
|
|
95
|
-
case '>':
|
|
96
|
-
case '>=': return operator;
|
|
97
|
-
case 'contains': return 'array-contains';
|
|
98
|
-
case 'containsAny': return 'array-contains-any';
|
|
99
|
-
default: return operator;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
exports.FirebaseAdminDatasource = FirebaseAdminDatasource;
|
|
104
|
-
//# sourceMappingURL=firebase-admin-datasource.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-admin-datasource.js","sourceRoot":"","sources":["../../src/store/firebase-admin-datasource.ts"],"names":[],"mappings":"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"}
|