@entropic-bond/firebase-admin 1.6.3 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/lib/cjs/firebase-admin-helper.js +25 -0
  2. package/lib/cjs/firebase-admin-helper.js.map +1 -0
  3. package/lib/cjs/index.js +20 -0
  4. package/lib/cjs/index.js.map +1 -0
  5. package/lib/cjs/mocks/test-user.js +134 -0
  6. package/lib/cjs/mocks/test-user.js.map +1 -0
  7. package/lib/cjs/server-auth/firebase-server-auth.js +50 -0
  8. package/lib/cjs/server-auth/firebase-server-auth.js.map +1 -0
  9. package/lib/cjs/store/firebase-admin-datasource.js +104 -0
  10. package/lib/cjs/store/firebase-admin-datasource.js.map +1 -0
  11. package/lib/esm/firebase-admin-helper.d.ts +11 -0
  12. package/lib/esm/firebase-admin-helper.js +21 -0
  13. package/lib/esm/firebase-admin-helper.js.map +1 -0
  14. package/lib/esm/index.d.ts +3 -0
  15. package/lib/esm/index.js +4 -0
  16. package/lib/esm/index.js.map +1 -0
  17. package/lib/esm/mocks/test-user.d.ts +49 -0
  18. package/lib/esm/mocks/test-user.js +131 -0
  19. package/lib/esm/mocks/test-user.js.map +1 -0
  20. package/lib/esm/server-auth/firebase-server-auth.d.ts +8 -0
  21. package/lib/esm/server-auth/firebase-server-auth.js +46 -0
  22. package/lib/esm/server-auth/firebase-server-auth.js.map +1 -0
  23. package/lib/esm/store/firebase-admin-datasource.d.ts +16 -0
  24. package/lib/esm/store/firebase-admin-datasource.js +100 -0
  25. package/lib/esm/store/firebase-admin-datasource.js.map +1 -0
  26. package/package.json +17 -14
  27. package/lib/entropic-bond-firebase-admin.js +0 -89721
  28. package/lib/entropic-bond-firebase-admin.js.map +0 -1
  29. package/lib/entropic-bond-firebase-admin.umd.cjs +0 -1054
  30. package/lib/entropic-bond-firebase-admin.umd.cjs.map +0 -1
  31. package/lib/server-auth/firebase-server-auth.spec.d.ts +0 -1
  32. package/lib/store/firebase-admin-datasource.spec.d.ts +0 -1
  33. /package/lib/{firebase-admin-helper.d.ts → cjs/firebase-admin-helper.d.ts} +0 -0
  34. /package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  35. /package/lib/{mocks → cjs/mocks}/test-user.d.ts +0 -0
  36. /package/lib/{server-auth → cjs/server-auth}/firebase-server-auth.d.ts +0 -0
  37. /package/lib/{store → cjs/store}/firebase-admin-datasource.d.ts +0 -0
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,16 @@
1
+ import { Collections, DataSource, DocumentObject, QueryObject, QueryOperator } from 'entropic-bond';
2
+ import { WhereFilterOp } from 'firebase-admin/firestore';
3
+ export declare class FirebaseAdminDatasource extends DataSource {
4
+ findById(id: string, collectionName: string): Promise<DocumentObject>;
5
+ save(collections: Collections): Promise<void>;
6
+ find(queryObject: QueryObject<DocumentObject>, collectionName: string): Promise<DocumentObject[]>;
7
+ count(queryObject: QueryObject<DocumentObject>, collectionName: string): Promise<number>;
8
+ delete(id: string, collectionName: string): Promise<void>;
9
+ next(maxDocs?: number): Promise<DocumentObject[]>;
10
+ private getFromQuery;
11
+ private queryObjectToFirebaseQuery;
12
+ toFirebaseOperator(operator: QueryOperator): WhereFilterOp;
13
+ private _lastQuery;
14
+ private _lastLimit;
15
+ private _lastDocRetrieved;
16
+ }
@@ -0,0 +1,100 @@
1
+ import { DataSource } from 'entropic-bond';
2
+ import { FirebaseAdminHelper } from '../firebase-admin-helper';
3
+ import { Filter } from 'firebase-admin/firestore';
4
+ export class FirebaseAdminDatasource extends DataSource {
5
+ constructor() {
6
+ super(...arguments);
7
+ this._lastLimit = 0;
8
+ }
9
+ findById(id, collectionName) {
10
+ const db = FirebaseAdminHelper.instance.firestore();
11
+ return new Promise(async (resolve) => {
12
+ try {
13
+ const docSnap = db.doc(`${collectionName}/${id}`);
14
+ const retrievedObj = await docSnap.get();
15
+ resolve(retrievedObj.data());
16
+ }
17
+ catch (error) {
18
+ console.log(error);
19
+ return null;
20
+ }
21
+ });
22
+ }
23
+ save(collections) {
24
+ const db = FirebaseAdminHelper.instance.firestore();
25
+ const batch = db.batch();
26
+ Object.entries(collections).forEach(([collectionName, collection]) => {
27
+ collection?.forEach(document => {
28
+ const ref = db.doc(`${collectionName}/${document.id}`);
29
+ batch.set(ref, document);
30
+ });
31
+ });
32
+ return batch.commit();
33
+ }
34
+ find(queryObject, collectionName) {
35
+ const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
36
+ this._lastQuery = query;
37
+ return this.getFromQuery(query);
38
+ }
39
+ async count(queryObject, collectionName) {
40
+ const query = this.queryObjectToFirebaseQuery(queryObject, collectionName);
41
+ const snapShot = await query.count().get();
42
+ return snapShot.data().count;
43
+ }
44
+ delete(id, collectionName) {
45
+ const db = FirebaseAdminHelper.instance.firestore();
46
+ return db.recursiveDelete(db.doc(`${collectionName}/${id}`));
47
+ }
48
+ next(maxDocs) {
49
+ if (!this._lastQuery)
50
+ throw new Error('You should perform a query prior to using method next');
51
+ this._lastLimit = maxDocs || this._lastLimit;
52
+ const query = this._lastQuery.limit(this._lastLimit).startAfter(this._lastDocRetrieved);
53
+ return this.getFromQuery(query);
54
+ }
55
+ // prev should be used with next in reverse order
56
+ // prev( limit?: number ): Promise< DocumentObject[] > {
57
+ // }
58
+ getFromQuery(query) {
59
+ return new Promise(async (resolve) => {
60
+ const doc = await query.get();
61
+ this._lastDocRetrieved = doc.docs[doc.docs.length - 1];
62
+ resolve(doc.docs.map(doc => doc.data()));
63
+ });
64
+ }
65
+ queryObjectToFirebaseQuery(queryObject, collectionName) {
66
+ const db = FirebaseAdminHelper.instance.firestore();
67
+ const andConstraints = [];
68
+ const orConstraints = [];
69
+ DataSource.toPropertyPathOperations(queryObject.operations).forEach(operation => {
70
+ const operator = this.toFirebaseOperator(operation.operator);
71
+ if (operation.aggregate)
72
+ orConstraints.push(Filter.where(operation.property, operator, operation.value));
73
+ else
74
+ andConstraints.push(Filter.where(operation.property, operator, operation.value));
75
+ });
76
+ let query = db.collection(collectionName).where(Filter.or(...orConstraints, Filter.and(...andConstraints)));
77
+ if (queryObject.sort?.propertyName) {
78
+ query = query.orderBy(queryObject.sort.propertyName, queryObject.sort.order);
79
+ }
80
+ if (queryObject.limit) {
81
+ this._lastLimit = queryObject.limit;
82
+ query = query.limit(queryObject.limit);
83
+ }
84
+ return query;
85
+ }
86
+ toFirebaseOperator(operator) {
87
+ switch (operator) {
88
+ case '==':
89
+ case '!=':
90
+ case '<':
91
+ case '<=':
92
+ case '>':
93
+ case '>=': return operator;
94
+ case 'contains': return 'array-contains';
95
+ case 'containsAny': return 'array-contains-any';
96
+ default: return operator;
97
+ }
98
+ }
99
+ }
100
+ //# sourceMappingURL=firebase-admin-datasource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase-admin-datasource.js","sourceRoot":"","sources":["../../../src/store/firebase-admin-datasource.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@entropic-bond/firebase-admin",
3
- "type": "module",
4
- "version": "1.6.3",
3
+ "type": "commonjs",
4
+ "version": "1.6.4",
5
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",
6
+ "main": "lib/cjs/index.js",
7
+ "module": "lib/esm/index.js",
8
8
  "exports": {
9
9
  ".": {
10
- "import": "./lib/entropic-bond-firebase-admin.js",
11
- "require": "./lib/entropic-bond-firebase-admin.umd.cjs",
12
- "types": "./lib/index.d.ts"
10
+ "import": "./lib/esm/index.js",
11
+ "require": "./lib/cjs/index.js",
12
+ "types": "./lib/esm/index.d.ts"
13
13
  }
14
14
  },
15
- "types": "./lib/index.d.ts",
15
+ "types": "./lib/esm/index.d.ts",
16
16
  "files": [
17
17
  "lib"
18
18
  ],
@@ -33,7 +33,10 @@
33
33
  },
34
34
  "scripts": {
35
35
  "test": "firebase emulators:exec --project demo-test 'vitest'",
36
- "build": "vite build",
36
+ "build": "npm run build-module && npm run build-cjs",
37
+ "build-with-vite": "tsc -p tsconfig-build.json && vite build",
38
+ "build-module": "tsc -p tsconfig-module.json",
39
+ "build-cjs": "tsc -p tsconfig-cjs.json",
37
40
  "prepare": "npm run build",
38
41
  "emulators": "firebase emulators:start --project demo-test"
39
42
  },
@@ -54,14 +57,14 @@
54
57
  "devDependencies": {
55
58
  "@semantic-release/changelog": "^6.0.3",
56
59
  "@semantic-release/git": "^10.0.1",
57
- "@types/node": "^20.11.17",
60
+ "@types/node": "^20.11.20",
58
61
  "git-branch-is": "^4.0.0",
59
- "husky": "^9.0.10",
62
+ "husky": "^9.0.11",
60
63
  "semantic-release": "^23.0.2",
61
64
  "typescript": "^5.3.3",
62
- "vite": "^5.1.1",
63
- "vite-plugin-dts": "^3.7.2",
64
- "vitest": "^1.2.2"
65
+ "vite": "^5.1.4",
66
+ "vite-plugin-dts": "^3.7.3",
67
+ "vitest": "^1.3.1"
65
68
  },
66
69
  "dependencies": {
67
70
  "entropic-bond": "^1.50.4",