@entropic-bond/firebase-admin 1.7.12 → 1.7.13
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/cjs/index.js +2 -20
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/index.js +180 -4
- package/lib/esm/index.js.map +1 -1
- package/package.json +3 -6
- package/lib/cjs/firebase-admin-helper.d.ts +0 -11
- package/lib/cjs/firebase-admin-helper.js +0 -25
- package/lib/cjs/firebase-admin-helper.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -3
- package/lib/cjs/mocks/test-user.d.ts +0 -49
- package/lib/cjs/mocks/test-user.js +0 -134
- package/lib/cjs/mocks/test-user.js.map +0 -1
- package/lib/cjs/server-auth/firebase-server-auth.d.ts +0 -8
- package/lib/cjs/server-auth/firebase-server-auth.js +0 -50
- package/lib/cjs/server-auth/firebase-server-auth.js.map +0 -1
- package/lib/cjs/store/firebase-admin-datasource.d.ts +0 -20
- package/lib/cjs/store/firebase-admin-datasource.js +0 -196
- package/lib/cjs/store/firebase-admin-datasource.js.map +0 -1
- package/lib/esm/firebase-admin-helper.js +0 -21
- package/lib/esm/firebase-admin-helper.js.map +0 -1
- package/lib/esm/mocks/test-user.d.ts +0 -49
- package/lib/esm/mocks/test-user.js +0 -131
- package/lib/esm/mocks/test-user.js.map +0 -1
- package/lib/esm/server-auth/firebase-server-auth.js +0 -46
- package/lib/esm/server-auth/firebase-server-auth.js.map +0 -1
- package/lib/esm/store/firebase-admin-datasource.js +0 -159
- package/lib/esm/store/firebase-admin-datasource.js.map +0 -1
|
@@ -1,196 +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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.FirebaseAdminDatasource = void 0;
|
|
37
|
-
const entropic_bond_1 = require("entropic-bond");
|
|
38
|
-
const firebase_admin_helper_1 = require("../firebase-admin-helper");
|
|
39
|
-
const firestore_1 = require("firebase-admin/firestore");
|
|
40
|
-
const functions = __importStar(require("firebase-functions/v2"));
|
|
41
|
-
class FirebaseAdminDatasource extends entropic_bond_1.DataSource {
|
|
42
|
-
constructor() {
|
|
43
|
-
super(...arguments);
|
|
44
|
-
this._lastLimit = 0;
|
|
45
|
-
}
|
|
46
|
-
findById(id, collectionName) {
|
|
47
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
48
|
-
return new Promise(async (resolve) => {
|
|
49
|
-
try {
|
|
50
|
-
const docSnap = db.doc(`${collectionName}/${id}`);
|
|
51
|
-
const retrievedObj = await docSnap.get();
|
|
52
|
-
resolve(retrievedObj.data());
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
console.log(error);
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
save(collections) {
|
|
61
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
62
|
-
const batch = db.batch();
|
|
63
|
-
Object.entries(collections).forEach(([collectionName, collection]) => {
|
|
64
|
-
collection?.forEach(document => {
|
|
65
|
-
const ref = db.doc(`${collectionName}/${document.id}`);
|
|
66
|
-
batch.set(ref, document);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
return batch.commit();
|
|
70
|
-
}
|
|
71
|
-
find(queryObject, collectionName) {
|
|
72
|
-
const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
|
|
73
|
-
this._lastQuery = query;
|
|
74
|
-
return this.getFromQuery(query);
|
|
75
|
-
}
|
|
76
|
-
async count(queryObject, collectionName) {
|
|
77
|
-
const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
|
|
78
|
-
const snapShot = await query.count().get();
|
|
79
|
-
return snapShot.data().count;
|
|
80
|
-
}
|
|
81
|
-
delete(id, collectionName) {
|
|
82
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
83
|
-
return db.recursiveDelete(db.doc(`${collectionName}/${id}`));
|
|
84
|
-
}
|
|
85
|
-
next(maxDocs) {
|
|
86
|
-
if (!this._lastQuery)
|
|
87
|
-
throw new Error('You should perform a query prior to using method next');
|
|
88
|
-
this._lastLimit = maxDocs || this._lastLimit;
|
|
89
|
-
const query = this._lastQuery.limit(this._lastLimit).startAfter(this._lastDocRetrieved);
|
|
90
|
-
return this.getFromQuery(query);
|
|
91
|
-
}
|
|
92
|
-
// prev should be used with next in reverse order
|
|
93
|
-
// prev( limit?: number ): Promise< DocumentObject[] > {
|
|
94
|
-
// }
|
|
95
|
-
getFromQuery(query) {
|
|
96
|
-
return new Promise(async (resolve) => {
|
|
97
|
-
const doc = await query.get();
|
|
98
|
-
this._lastDocRetrieved = doc.docs[doc.docs.length - 1];
|
|
99
|
-
resolve(doc.docs.map(doc => doc.data()));
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
queryObjectToFirebaseQuery(queryObject, collectionName) {
|
|
103
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
104
|
-
const andConstraints = [];
|
|
105
|
-
const orConstraints = [];
|
|
106
|
-
entropic_bond_1.DataSource.toPropertyPathOperations(queryObject.operations).forEach(operation => {
|
|
107
|
-
const operator = this.toFirebaseOperator(operation.operator);
|
|
108
|
-
if (operation.aggregate)
|
|
109
|
-
orConstraints.push(firestore_1.Filter.where(operation.property, operator, operation.value));
|
|
110
|
-
else
|
|
111
|
-
andConstraints.push(firestore_1.Filter.where(operation.property, operator, operation.value));
|
|
112
|
-
});
|
|
113
|
-
let query = db.collection(collectionName).where(firestore_1.Filter.or(...orConstraints, firestore_1.Filter.and(...andConstraints)));
|
|
114
|
-
if (queryObject.sort?.propertyName) {
|
|
115
|
-
query = query.orderBy(queryObject.sort.propertyName, queryObject.sort.order);
|
|
116
|
-
}
|
|
117
|
-
if (queryObject.limit) {
|
|
118
|
-
this._lastLimit = queryObject.limit;
|
|
119
|
-
query = query.limit(queryObject.limit);
|
|
120
|
-
}
|
|
121
|
-
return query;
|
|
122
|
-
}
|
|
123
|
-
toFirebaseOperator(operator) {
|
|
124
|
-
switch (operator) {
|
|
125
|
-
case '==':
|
|
126
|
-
case '!=':
|
|
127
|
-
case '<':
|
|
128
|
-
case '<=':
|
|
129
|
-
case '>':
|
|
130
|
-
case '>=': return operator;
|
|
131
|
-
case 'contains': return 'array-contains';
|
|
132
|
-
case 'containsAny': return 'array-contains-any';
|
|
133
|
-
default: return operator;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
subscribeToDocumentChangeListener(collectionPathToListen, listener) {
|
|
137
|
-
const handler = functions.firestore.onDocumentUpdated(collectionPathToListen + '/{docId}', event => {
|
|
138
|
-
const snapshot = event.data;
|
|
139
|
-
listener({
|
|
140
|
-
before: snapshot?.before.data(),
|
|
141
|
-
after: snapshot?.after.data(),
|
|
142
|
-
type: 'update',
|
|
143
|
-
params: event.params,
|
|
144
|
-
collectionPath: collectionPathToListen
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
return Promise.resolve({
|
|
148
|
-
uninstall: () => { },
|
|
149
|
-
nativeHandler: handler,
|
|
150
|
-
collectionPath: collectionPathToListen
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
async collectionsMatchingTemplate(template) {
|
|
154
|
-
const templateTokens = template.split('/');
|
|
155
|
-
if (templateTokens.length != 3)
|
|
156
|
-
throw new Error('FirebaseAdminDatasource.collectionsMatchingTemplate only supports collection and subcollection paths (max 3 tokens)');
|
|
157
|
-
const [mainCollection, _document, subcollection] = templateTokens;
|
|
158
|
-
if (!mainCollection || !subcollection)
|
|
159
|
-
throw new Error('FirebaseAdminDatasource.collectionsMatchingTemplate requires a document and subcollection');
|
|
160
|
-
const db = firebase_admin_helper_1.FirebaseAdminHelper.instance.firestore();
|
|
161
|
-
const docs = await db.collection(mainCollection).get();
|
|
162
|
-
const collectionList = [];
|
|
163
|
-
docs.docs.forEach((doc) => {
|
|
164
|
-
collectionList.push(`${mainCollection}/${doc.id}/${subcollection}`);
|
|
165
|
-
});
|
|
166
|
-
return collectionList;
|
|
167
|
-
}
|
|
168
|
-
onCollectionChange(query, collectionName, listener) {
|
|
169
|
-
// const queryConstraints = this.queryObjectToQueryConstraints( query as unknown as QueryObject<DocumentObject>, collectionName )
|
|
170
|
-
// return onSnapshot( queryConstraints, snapshot => {
|
|
171
|
-
// snapshot.docChanges().forEach( change => {
|
|
172
|
-
// listener({
|
|
173
|
-
// type: change.type === 'added'? 'create' : change.type === 'modified'? 'update' : 'delete',
|
|
174
|
-
// after: change.doc.data() as DocumentObject,
|
|
175
|
-
// before: undefined,
|
|
176
|
-
// params: {}
|
|
177
|
-
// })
|
|
178
|
-
// })
|
|
179
|
-
// })
|
|
180
|
-
throw new Error('Not implemented yet');
|
|
181
|
-
}
|
|
182
|
-
onDocumentChange(documentPath, documentId, listener) {
|
|
183
|
-
// const db = FirebaseHelper.instance.firestore()
|
|
184
|
-
// return onSnapshot( doc( db, documentPath, documentId ), snapshot => {
|
|
185
|
-
// listener({
|
|
186
|
-
// type: 'update',
|
|
187
|
-
// before: undefined,
|
|
188
|
-
// after: snapshot.data() as DocumentObject,
|
|
189
|
-
// params: {}
|
|
190
|
-
// })
|
|
191
|
-
// })
|
|
192
|
-
throw new Error('Not implemented yet');
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
exports.FirebaseAdminDatasource = FirebaseAdminDatasource;
|
|
196
|
-
//# 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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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { initializeApp } from 'firebase-admin/app';
|
|
2
|
-
import { getAuth } from 'firebase-admin/auth';
|
|
3
|
-
import { getFirestore } from 'firebase-admin/firestore';
|
|
4
|
-
export class FirebaseAdminHelper {
|
|
5
|
-
static setFirebaseConfig(config) {
|
|
6
|
-
FirebaseAdminHelper._firebaseConfig = config;
|
|
7
|
-
}
|
|
8
|
-
constructor() {
|
|
9
|
-
initializeApp(FirebaseAdminHelper._firebaseConfig);
|
|
10
|
-
}
|
|
11
|
-
static get instance() {
|
|
12
|
-
return this._instance || (this._instance = new FirebaseAdminHelper());
|
|
13
|
-
}
|
|
14
|
-
firestore() {
|
|
15
|
-
return getFirestore();
|
|
16
|
-
}
|
|
17
|
-
auth() {
|
|
18
|
-
return getAuth();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# 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,OAAO,EAAc,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAQ,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,OAAO,mBAAmB;IAE/B,MAAM,CAAC,iBAAiB,CAAE,MAAmB;QAC5C,mBAAmB,CAAC,eAAe,GAAG,MAAM,CAAA;IAC7C,CAAC;IAED;QACC,aAAa,CAAE,mBAAmB,CAAC,eAAe,CAAE,CAAA;IACrD,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,YAAY,EAAE,CAAA;IACtB,CAAC;IAED,IAAI;QACH,OAAO,OAAO,EAAE,CAAA;IACjB,CAAC;CAID"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Persistent } from 'entropic-bond';
|
|
2
|
-
interface Name {
|
|
3
|
-
firstName: string;
|
|
4
|
-
lastName: string;
|
|
5
|
-
ancestorName?: {
|
|
6
|
-
father?: string;
|
|
7
|
-
mother?: string;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export declare class SubClass extends Persistent {
|
|
11
|
-
set year(value: number | undefined);
|
|
12
|
-
get year(): number | undefined;
|
|
13
|
-
private _year;
|
|
14
|
-
}
|
|
15
|
-
export declare class TestUser extends Persistent {
|
|
16
|
-
set name(value: Name | undefined);
|
|
17
|
-
get name(): Name | undefined;
|
|
18
|
-
set age(value: number | undefined);
|
|
19
|
-
get age(): number | undefined;
|
|
20
|
-
set admin(value: boolean | undefined);
|
|
21
|
-
get admin(): boolean | undefined;
|
|
22
|
-
set skills(value: string[] | undefined);
|
|
23
|
-
get skills(): string[] | undefined;
|
|
24
|
-
set documentRef(value: SubClass | undefined);
|
|
25
|
-
get documentRef(): SubClass | undefined;
|
|
26
|
-
set manyRefs(value: SubClass[]);
|
|
27
|
-
get manyRefs(): SubClass[];
|
|
28
|
-
set derived(value: DerivedUser | undefined);
|
|
29
|
-
get derived(): DerivedUser | undefined;
|
|
30
|
-
set manyDerived(value: DerivedUser[] | undefined);
|
|
31
|
-
get manyDerived(): DerivedUser[] | undefined;
|
|
32
|
-
set colleagues(value: TestUser[]);
|
|
33
|
-
get colleagues(): TestUser[];
|
|
34
|
-
private _colleagues;
|
|
35
|
-
private _name;
|
|
36
|
-
private _age;
|
|
37
|
-
private _admin;
|
|
38
|
-
private _skills;
|
|
39
|
-
private _documentRef;
|
|
40
|
-
private _manyRefs;
|
|
41
|
-
private _derived;
|
|
42
|
-
private _manyDerived;
|
|
43
|
-
}
|
|
44
|
-
export declare class DerivedUser extends TestUser {
|
|
45
|
-
set salary(value: number | undefined);
|
|
46
|
-
get salary(): number | undefined;
|
|
47
|
-
private _salary;
|
|
48
|
-
}
|
|
49
|
-
export {};
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { persistent, Persistent, persistentReference, persistentReferenceAt, registerPersistentClass, searchableArray } from 'entropic-bond';
|
|
8
|
-
let SubClass = class SubClass extends Persistent {
|
|
9
|
-
set year(value) {
|
|
10
|
-
this._year = value;
|
|
11
|
-
}
|
|
12
|
-
get year() {
|
|
13
|
-
return this._year;
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
__decorate([
|
|
17
|
-
persistent
|
|
18
|
-
], SubClass.prototype, "_year", void 0);
|
|
19
|
-
SubClass = __decorate([
|
|
20
|
-
registerPersistentClass('SubClass')
|
|
21
|
-
], SubClass);
|
|
22
|
-
export { SubClass };
|
|
23
|
-
let TestUser = class TestUser extends Persistent {
|
|
24
|
-
constructor() {
|
|
25
|
-
super(...arguments);
|
|
26
|
-
this._colleagues = [];
|
|
27
|
-
this._manyRefs = [];
|
|
28
|
-
}
|
|
29
|
-
set name(value) {
|
|
30
|
-
this._name = value;
|
|
31
|
-
}
|
|
32
|
-
get name() {
|
|
33
|
-
return this._name;
|
|
34
|
-
}
|
|
35
|
-
set age(value) {
|
|
36
|
-
this._age = value;
|
|
37
|
-
}
|
|
38
|
-
get age() {
|
|
39
|
-
return this._age;
|
|
40
|
-
}
|
|
41
|
-
set admin(value) {
|
|
42
|
-
this._admin = value;
|
|
43
|
-
}
|
|
44
|
-
get admin() {
|
|
45
|
-
return this._admin;
|
|
46
|
-
}
|
|
47
|
-
set skills(value) {
|
|
48
|
-
this._skills = value;
|
|
49
|
-
}
|
|
50
|
-
get skills() {
|
|
51
|
-
return this._skills;
|
|
52
|
-
}
|
|
53
|
-
set documentRef(value) {
|
|
54
|
-
this._documentRef = value;
|
|
55
|
-
}
|
|
56
|
-
get documentRef() {
|
|
57
|
-
return this._documentRef;
|
|
58
|
-
}
|
|
59
|
-
set manyRefs(value) {
|
|
60
|
-
this._manyRefs = value;
|
|
61
|
-
}
|
|
62
|
-
get manyRefs() {
|
|
63
|
-
return this._manyRefs;
|
|
64
|
-
}
|
|
65
|
-
set derived(value) {
|
|
66
|
-
this._derived = value;
|
|
67
|
-
}
|
|
68
|
-
get derived() {
|
|
69
|
-
return this._derived;
|
|
70
|
-
}
|
|
71
|
-
set manyDerived(value) {
|
|
72
|
-
this._manyDerived = value;
|
|
73
|
-
}
|
|
74
|
-
get manyDerived() {
|
|
75
|
-
return this._manyDerived;
|
|
76
|
-
}
|
|
77
|
-
set colleagues(value) {
|
|
78
|
-
this._colleagues = value;
|
|
79
|
-
}
|
|
80
|
-
get colleagues() {
|
|
81
|
-
return this._colleagues;
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
__decorate([
|
|
85
|
-
persistent,
|
|
86
|
-
searchableArray
|
|
87
|
-
], TestUser.prototype, "_colleagues", void 0);
|
|
88
|
-
__decorate([
|
|
89
|
-
persistent
|
|
90
|
-
], TestUser.prototype, "_name", void 0);
|
|
91
|
-
__decorate([
|
|
92
|
-
persistent
|
|
93
|
-
], TestUser.prototype, "_age", void 0);
|
|
94
|
-
__decorate([
|
|
95
|
-
persistent
|
|
96
|
-
], TestUser.prototype, "_admin", void 0);
|
|
97
|
-
__decorate([
|
|
98
|
-
persistent
|
|
99
|
-
], TestUser.prototype, "_skills", void 0);
|
|
100
|
-
__decorate([
|
|
101
|
-
persistentReference
|
|
102
|
-
], TestUser.prototype, "_documentRef", void 0);
|
|
103
|
-
__decorate([
|
|
104
|
-
persistentReference
|
|
105
|
-
], TestUser.prototype, "_manyRefs", void 0);
|
|
106
|
-
__decorate([
|
|
107
|
-
persistentReferenceAt('TestUser')
|
|
108
|
-
], TestUser.prototype, "_derived", void 0);
|
|
109
|
-
__decorate([
|
|
110
|
-
persistentReferenceAt('TestUser')
|
|
111
|
-
], TestUser.prototype, "_manyDerived", void 0);
|
|
112
|
-
TestUser = __decorate([
|
|
113
|
-
registerPersistentClass('TestUser')
|
|
114
|
-
], TestUser);
|
|
115
|
-
export { TestUser };
|
|
116
|
-
let DerivedUser = class DerivedUser extends TestUser {
|
|
117
|
-
set salary(value) {
|
|
118
|
-
this._salary = value;
|
|
119
|
-
}
|
|
120
|
-
get salary() {
|
|
121
|
-
return this._salary;
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
__decorate([
|
|
125
|
-
persistent
|
|
126
|
-
], DerivedUser.prototype, "_salary", void 0);
|
|
127
|
-
DerivedUser = __decorate([
|
|
128
|
-
registerPersistentClass('DerivedUser')
|
|
129
|
-
], DerivedUser);
|
|
130
|
-
export { 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,46 +0,0 @@
|
|
|
1
|
-
import { ServerAuthService } from 'entropic-bond';
|
|
2
|
-
import { FirebaseAdminHelper } from '../firebase-admin-helper';
|
|
3
|
-
export class FirebaseServerAuth extends ServerAuthService {
|
|
4
|
-
async getUser(userId) {
|
|
5
|
-
try {
|
|
6
|
-
return this.convertToUserCredentials(await FirebaseAdminHelper.instance.auth().getUser(userId));
|
|
7
|
-
}
|
|
8
|
-
catch (error) {
|
|
9
|
-
if (error.code === 'auth/user-not-found')
|
|
10
|
-
return undefined;
|
|
11
|
-
else
|
|
12
|
-
throw new Error(error);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
setCustomCredentials(userId, customCredentials) {
|
|
16
|
-
return FirebaseAdminHelper.instance.auth().setCustomUserClaims(userId, customCredentials);
|
|
17
|
-
}
|
|
18
|
-
async updateUser(userId, credentials) {
|
|
19
|
-
return this.convertToUserCredentials(await FirebaseAdminHelper.instance.auth().updateUser(userId, credentials));
|
|
20
|
-
}
|
|
21
|
-
async deleteUser(userId) {
|
|
22
|
-
try {
|
|
23
|
-
await FirebaseAdminHelper.instance.auth().deleteUser(userId);
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
if (error.code === 'auth/user-not-found')
|
|
27
|
-
return undefined;
|
|
28
|
-
else
|
|
29
|
-
throw new Error(error);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
convertToUserCredentials(userData) {
|
|
33
|
-
return {
|
|
34
|
-
id: userData.uid,
|
|
35
|
-
email: userData.email ?? '',
|
|
36
|
-
emailVerified: userData.emailVerified ?? undefined,
|
|
37
|
-
creationDate: userData.metadata.creationTime ? new Date(userData.metadata.creationTime).getTime() : undefined,
|
|
38
|
-
lastLogin: userData.metadata.lastSignInTime ? new Date(userData.metadata.lastSignInTime).getTime() : undefined,
|
|
39
|
-
name: userData.displayName,
|
|
40
|
-
phoneNumber: userData.phoneNumber ?? undefined,
|
|
41
|
-
pictureUrl: userData.photoURL ?? undefined,
|
|
42
|
-
customData: userData.customClaims
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# 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,OAAO,EAAE,iBAAiB,EAAsC,MAAM,eAAe,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAG9D,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IAExD,KAAK,CAAC,OAAO,CAAgB,MAAc;QAC1C,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,wBAAwB,CACnC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,MAAM,CAAE,CAC3D,CAAA;QACF,CAAC;QAAC,OAAQ,KAAK,EAAG,CAAC;YAClB,IAAK,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBAAG,OAAO,SAAS,CAAA;;gBACvD,MAAM,IAAI,KAAK,CAAE,KAAK,CAAE,CAAA;QAC9B,CAAC;IACF,CAAC;IAED,oBAAoB,CAA+B,MAAc,EAAE,iBAAoB;QACtF,OAAO,mBAAmB,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,mBAAmB,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,CAAC;YACJ,MAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAE,MAAM,CAAE,CAAA;QAC/D,CAAC;QACD,OAAQ,KAAK,EAAG,CAAC;YAChB,IAAK,KAAK,CAAC,IAAI,KAAK,qBAAqB;gBAAG,OAAO,SAAS,CAAA;;gBACvD,MAAM,IAAI,KAAK,CAAE,KAAK,CAAE,CAAA;QAC9B,CAAC;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"}
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { DataSource } from 'entropic-bond';
|
|
2
|
-
import { FirebaseAdminHelper } from '../firebase-admin-helper';
|
|
3
|
-
import { Filter } from 'firebase-admin/firestore';
|
|
4
|
-
import * as functions from 'firebase-functions/v2';
|
|
5
|
-
export class FirebaseAdminDatasource extends DataSource {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this._lastLimit = 0;
|
|
9
|
-
}
|
|
10
|
-
findById(id, collectionName) {
|
|
11
|
-
const db = FirebaseAdminHelper.instance.firestore();
|
|
12
|
-
return new Promise(async (resolve) => {
|
|
13
|
-
try {
|
|
14
|
-
const docSnap = db.doc(`${collectionName}/${id}`);
|
|
15
|
-
const retrievedObj = await docSnap.get();
|
|
16
|
-
resolve(retrievedObj.data());
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
console.log(error);
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
save(collections) {
|
|
25
|
-
const db = FirebaseAdminHelper.instance.firestore();
|
|
26
|
-
const batch = db.batch();
|
|
27
|
-
Object.entries(collections).forEach(([collectionName, collection]) => {
|
|
28
|
-
collection?.forEach(document => {
|
|
29
|
-
const ref = db.doc(`${collectionName}/${document.id}`);
|
|
30
|
-
batch.set(ref, document);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
return batch.commit();
|
|
34
|
-
}
|
|
35
|
-
find(queryObject, collectionName) {
|
|
36
|
-
const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
|
|
37
|
-
this._lastQuery = query;
|
|
38
|
-
return this.getFromQuery(query);
|
|
39
|
-
}
|
|
40
|
-
async count(queryObject, collectionName) {
|
|
41
|
-
const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
|
|
42
|
-
const snapShot = await query.count().get();
|
|
43
|
-
return snapShot.data().count;
|
|
44
|
-
}
|
|
45
|
-
delete(id, collectionName) {
|
|
46
|
-
const db = FirebaseAdminHelper.instance.firestore();
|
|
47
|
-
return db.recursiveDelete(db.doc(`${collectionName}/${id}`));
|
|
48
|
-
}
|
|
49
|
-
next(maxDocs) {
|
|
50
|
-
if (!this._lastQuery)
|
|
51
|
-
throw new Error('You should perform a query prior to using method next');
|
|
52
|
-
this._lastLimit = maxDocs || this._lastLimit;
|
|
53
|
-
const query = this._lastQuery.limit(this._lastLimit).startAfter(this._lastDocRetrieved);
|
|
54
|
-
return this.getFromQuery(query);
|
|
55
|
-
}
|
|
56
|
-
// prev should be used with next in reverse order
|
|
57
|
-
// prev( limit?: number ): Promise< DocumentObject[] > {
|
|
58
|
-
// }
|
|
59
|
-
getFromQuery(query) {
|
|
60
|
-
return new Promise(async (resolve) => {
|
|
61
|
-
const doc = await query.get();
|
|
62
|
-
this._lastDocRetrieved = doc.docs[doc.docs.length - 1];
|
|
63
|
-
resolve(doc.docs.map(doc => doc.data()));
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
queryObjectToFirebaseQuery(queryObject, collectionName) {
|
|
67
|
-
const db = FirebaseAdminHelper.instance.firestore();
|
|
68
|
-
const andConstraints = [];
|
|
69
|
-
const orConstraints = [];
|
|
70
|
-
DataSource.toPropertyPathOperations(queryObject.operations).forEach(operation => {
|
|
71
|
-
const operator = this.toFirebaseOperator(operation.operator);
|
|
72
|
-
if (operation.aggregate)
|
|
73
|
-
orConstraints.push(Filter.where(operation.property, operator, operation.value));
|
|
74
|
-
else
|
|
75
|
-
andConstraints.push(Filter.where(operation.property, operator, operation.value));
|
|
76
|
-
});
|
|
77
|
-
let query = db.collection(collectionName).where(Filter.or(...orConstraints, Filter.and(...andConstraints)));
|
|
78
|
-
if (queryObject.sort?.propertyName) {
|
|
79
|
-
query = query.orderBy(queryObject.sort.propertyName, queryObject.sort.order);
|
|
80
|
-
}
|
|
81
|
-
if (queryObject.limit) {
|
|
82
|
-
this._lastLimit = queryObject.limit;
|
|
83
|
-
query = query.limit(queryObject.limit);
|
|
84
|
-
}
|
|
85
|
-
return query;
|
|
86
|
-
}
|
|
87
|
-
toFirebaseOperator(operator) {
|
|
88
|
-
switch (operator) {
|
|
89
|
-
case '==':
|
|
90
|
-
case '!=':
|
|
91
|
-
case '<':
|
|
92
|
-
case '<=':
|
|
93
|
-
case '>':
|
|
94
|
-
case '>=': return operator;
|
|
95
|
-
case 'contains': return 'array-contains';
|
|
96
|
-
case 'containsAny': return 'array-contains-any';
|
|
97
|
-
default: return operator;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
subscribeToDocumentChangeListener(collectionPathToListen, listener) {
|
|
101
|
-
const handler = functions.firestore.onDocumentUpdated(collectionPathToListen + '/{docId}', event => {
|
|
102
|
-
const snapshot = event.data;
|
|
103
|
-
listener({
|
|
104
|
-
before: snapshot?.before.data(),
|
|
105
|
-
after: snapshot?.after.data(),
|
|
106
|
-
type: 'update',
|
|
107
|
-
params: event.params,
|
|
108
|
-
collectionPath: collectionPathToListen
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
return Promise.resolve({
|
|
112
|
-
uninstall: () => { },
|
|
113
|
-
nativeHandler: handler,
|
|
114
|
-
collectionPath: collectionPathToListen
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
async collectionsMatchingTemplate(template) {
|
|
118
|
-
const templateTokens = template.split('/');
|
|
119
|
-
if (templateTokens.length != 3)
|
|
120
|
-
throw new Error('FirebaseAdminDatasource.collectionsMatchingTemplate only supports collection and subcollection paths (max 3 tokens)');
|
|
121
|
-
const [mainCollection, _document, subcollection] = templateTokens;
|
|
122
|
-
if (!mainCollection || !subcollection)
|
|
123
|
-
throw new Error('FirebaseAdminDatasource.collectionsMatchingTemplate requires a document and subcollection');
|
|
124
|
-
const db = FirebaseAdminHelper.instance.firestore();
|
|
125
|
-
const docs = await db.collection(mainCollection).get();
|
|
126
|
-
const collectionList = [];
|
|
127
|
-
docs.docs.forEach((doc) => {
|
|
128
|
-
collectionList.push(`${mainCollection}/${doc.id}/${subcollection}`);
|
|
129
|
-
});
|
|
130
|
-
return collectionList;
|
|
131
|
-
}
|
|
132
|
-
onCollectionChange(query, collectionName, listener) {
|
|
133
|
-
// const queryConstraints = this.queryObjectToQueryConstraints( query as unknown as QueryObject<DocumentObject>, collectionName )
|
|
134
|
-
// return onSnapshot( queryConstraints, snapshot => {
|
|
135
|
-
// snapshot.docChanges().forEach( change => {
|
|
136
|
-
// listener({
|
|
137
|
-
// type: change.type === 'added'? 'create' : change.type === 'modified'? 'update' : 'delete',
|
|
138
|
-
// after: change.doc.data() as DocumentObject,
|
|
139
|
-
// before: undefined,
|
|
140
|
-
// params: {}
|
|
141
|
-
// })
|
|
142
|
-
// })
|
|
143
|
-
// })
|
|
144
|
-
throw new Error('Not implemented yet');
|
|
145
|
-
}
|
|
146
|
-
onDocumentChange(documentPath, documentId, listener) {
|
|
147
|
-
// const db = FirebaseHelper.instance.firestore()
|
|
148
|
-
// return onSnapshot( doc( db, documentPath, documentId ), snapshot => {
|
|
149
|
-
// listener({
|
|
150
|
-
// type: 'update',
|
|
151
|
-
// before: undefined,
|
|
152
|
-
// after: snapshot.data() as DocumentObject,
|
|
153
|
-
// params: {}
|
|
154
|
-
// })
|
|
155
|
-
// })
|
|
156
|
-
throw new Error('Not implemented yet');
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
//# 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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"}
|