@hyper-fetch/firebase-admin 7.5.3 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +12 -0
- package/__tests__/features/firestore/admin/constraints.admin.spec.ts +1 -1
- package/__tests__/features/firestore/admin/methods.admin.spec.ts +1 -1
- package/__tests__/features/firestore/admin/sockets.base.spec.ts +1 -1
- package/__tests__/features/firestore/shared/constraints.shared.tests.ts +3 -3
- package/__tests__/features/firestore/shared/methods/add-doc.test.suite.ts +3 -3
- package/__tests__/features/firestore/shared/methods/delete-doc.test.suite.ts +2 -2
- package/__tests__/features/firestore/shared/methods/get-doc.test.suite.ts +2 -2
- package/__tests__/features/firestore/shared/methods/get-docs.test.suite.ts +2 -2
- package/__tests__/features/firestore/shared/methods/on-snapshot.test.suite.ts +9 -9
- package/__tests__/features/firestore/shared/methods/set-doc.test.suite.ts +2 -2
- package/__tests__/features/firestore/shared/methods/update-doc.test.suite.ts +2 -2
- package/__tests__/features/firestore/shared/methods.shared.tests.ts +1 -1
- package/__tests__/features/realtime/admin/methods.admin.spec.ts +1 -1
- package/__tests__/features/realtime/admin/sockets.base.spec.ts +1 -1
- package/__tests__/features/realtime/shared/constraints.shared.tests.ts +3 -5
- package/__tests__/features/realtime/shared/methods/get.test.suite.ts +3 -3
- package/__tests__/features/realtime/shared/methods/on-value.test.suite.ts +9 -9
- package/__tests__/features/realtime/shared/methods/push.test.suite.ts +2 -2
- package/__tests__/features/realtime/shared/methods/remove.test.suite.ts +2 -2
- package/__tests__/features/realtime/shared/methods/set.test.suite.ts +9 -7
- package/__tests__/features/realtime/shared/methods/update.test.suite.ts +2 -2
- package/__tests__/features/realtime/shared/methods.shared.tests.ts +1 -1
- package/__tests__/shared/request-events.shared.ts +10 -10
- package/__tests__/tsconfig.json +15 -2
- package/__tests__/utils/seed.admin.ts +2 -2
- package/__tests__/vitest.setup.ts +9 -0
- package/dist/adapter/adapter.d.ts +3 -0
- package/dist/adapter/adapter.d.ts.map +1 -0
- package/dist/adapter/adapter.sockets.d.ts +3 -0
- package/dist/adapter/adapter.sockets.d.ts.map +1 -0
- package/dist/adapter/index.d.ts +4 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/types/adapter.base.types.d.ts +11 -0
- package/dist/adapter/types/adapter.base.types.d.ts.map +1 -0
- package/dist/adapter/types/adapter.firestore.types.d.ts +45 -0
- package/dist/adapter/types/adapter.firestore.types.d.ts.map +1 -0
- package/dist/adapter/types/adapter.realtime.types.d.ts +39 -0
- package/dist/adapter/types/adapter.realtime.types.d.ts.map +1 -0
- package/dist/adapter/types/firestore.socket.types.d.ts +17 -0
- package/dist/adapter/types/firestore.socket.types.d.ts.map +1 -0
- package/dist/adapter/types/index.d.ts +6 -0
- package/dist/adapter/types/index.d.ts.map +1 -0
- package/dist/adapter/types/realtime.socket.types.d.ts +12 -0
- package/dist/adapter/types/realtime.socket.types.d.ts.map +1 -0
- package/dist/constraints/constraints.types.d.ts +13 -0
- package/dist/constraints/constraints.types.d.ts.map +1 -0
- package/dist/constraints/firebase.constraints.d.ts +86 -0
- package/dist/constraints/firebase.constraints.d.ts.map +1 -0
- package/dist/constraints/index.d.ts +3 -0
- package/dist/constraints/index.d.ts.map +1 -0
- package/dist/firestore/firestore.methods.d.ts +21 -0
- package/dist/firestore/firestore.methods.d.ts.map +1 -0
- package/dist/firestore/firestore.sockets.d.ts +4 -0
- package/dist/firestore/firestore.sockets.d.ts.map +1 -0
- package/dist/firestore/index.d.ts +4 -0
- package/dist/firestore/index.d.ts.map +1 -0
- package/dist/firestore/utils/constraints.utils.d.ts +5 -0
- package/dist/firestore/utils/constraints.utils.d.ts.map +1 -0
- package/dist/firestore/utils/index.d.ts +4 -0
- package/dist/firestore/utils/index.d.ts.map +1 -0
- package/dist/firestore/utils/ref.utils.d.ts +3 -0
- package/dist/firestore/utils/ref.utils.d.ts.map +1 -0
- package/dist/firestore/utils/result.utils.d.ts +10 -0
- package/dist/firestore/utils/result.utils.d.ts.map +1 -0
- package/dist/index.d.ts +5 -271
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +670 -0
- package/dist/index.mjs.map +1 -0
- package/dist/realtime/index.d.ts +4 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/realtime.methods.d.ts +19 -0
- package/dist/realtime/realtime.methods.d.ts.map +1 -0
- package/dist/realtime/realtime.sockets.d.ts +4 -0
- package/dist/realtime/realtime.sockets.d.ts.map +1 -0
- package/dist/realtime/utils/constraints.utils.d.ts +5 -0
- package/dist/realtime/utils/constraints.utils.d.ts.map +1 -0
- package/dist/realtime/utils/index.d.ts +3 -0
- package/dist/realtime/utils/index.d.ts.map +1 -0
- package/dist/realtime/utils/result.utils.d.ts +3 -0
- package/dist/realtime/utils/result.utils.d.ts.map +1 -0
- package/dist/utils/cache.utils.d.ts +11 -0
- package/dist/utils/cache.utils.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/misc.d.ts +3 -0
- package/dist/utils/misc.d.ts.map +1 -0
- package/package.json +8 -11
- package/src/adapter/adapter.sockets.ts +1 -1
- package/src/adapter/adapter.ts +13 -14
- package/src/adapter/types/adapter.base.types.ts +4 -4
- package/src/adapter/types/adapter.firestore.types.ts +4 -4
- package/src/adapter/types/adapter.realtime.types.ts +4 -4
- package/src/adapter/types/firestore.socket.types.ts +3 -3
- package/src/adapter/types/realtime.socket.types.ts +3 -3
- package/src/constraints/constraints.types.ts +1 -1
- package/src/constraints/firebase.constraints.ts +1 -1
- package/src/firestore/firestore.methods.ts +4 -4
- package/src/firestore/firestore.sockets.ts +3 -9
- package/src/firestore/utils/constraints.utils.ts +4 -3
- package/src/firestore/utils/ref.utils.ts +1 -1
- package/src/firestore/utils/result.utils.ts +1 -1
- package/src/realtime/realtime.methods.ts +4 -4
- package/src/realtime/realtime.sockets.ts +2 -2
- package/src/realtime/utils/constraints.utils.ts +3 -2
- package/src/realtime/utils/result.utils.ts +1 -1
- package/src/utils/cache.utils.ts +4 -2
- package/tsconfig.json +1 -1
- package/vite.config.ts +45 -0
- package/.eslintrc.json +0 -11
- package/__tests__/global.d.ts +0 -1
- package/__tests__/jest.setup.ts +0 -8
- package/dist/index.js +0 -686
- package/dist/index.js.map +0 -7
- package/jest.config.ts +0 -9
package/dist/index.js
DELETED
|
@@ -1,686 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __async = (__this, __arguments, generator) => {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
var fulfilled = (value) => {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var rejected = (value) => {
|
|
30
|
-
try {
|
|
31
|
-
step(generator.throw(value));
|
|
32
|
-
} catch (e) {
|
|
33
|
-
reject(e);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
// src/adapter/types/adapter.firestore.types.ts
|
|
42
|
-
var FirestoreMethods = /* @__PURE__ */ ((FirestoreMethods2) => {
|
|
43
|
-
FirestoreMethods2["addDoc"] = "addDoc";
|
|
44
|
-
FirestoreMethods2["getDoc"] = "getDoc";
|
|
45
|
-
FirestoreMethods2["getDocs"] = "getDocs";
|
|
46
|
-
FirestoreMethods2["setDoc"] = "setDoc";
|
|
47
|
-
FirestoreMethods2["updateDoc"] = "updateDoc";
|
|
48
|
-
FirestoreMethods2["deleteDoc"] = "deleteDoc";
|
|
49
|
-
return FirestoreMethods2;
|
|
50
|
-
})(FirestoreMethods || {});
|
|
51
|
-
|
|
52
|
-
// src/adapter/types/adapter.realtime.types.ts
|
|
53
|
-
var RealtimeDBMethods = /* @__PURE__ */ ((RealtimeDBMethods2) => {
|
|
54
|
-
RealtimeDBMethods2["set"] = "set";
|
|
55
|
-
RealtimeDBMethods2["push"] = "push";
|
|
56
|
-
RealtimeDBMethods2["update"] = "update";
|
|
57
|
-
RealtimeDBMethods2["get"] = "get";
|
|
58
|
-
RealtimeDBMethods2["remove"] = "remove";
|
|
59
|
-
return RealtimeDBMethods2;
|
|
60
|
-
})(RealtimeDBMethods || {});
|
|
61
|
-
|
|
62
|
-
// src/adapter/adapter.sockets.ts
|
|
63
|
-
import { Firestore as Firestore2 } from "firebase-admin/firestore";
|
|
64
|
-
|
|
65
|
-
// src/firestore/firestore.sockets.ts
|
|
66
|
-
import {
|
|
67
|
-
CollectionReference,
|
|
68
|
-
DocumentSnapshot
|
|
69
|
-
} from "firebase-admin/firestore";
|
|
70
|
-
import { SocketAdapter } from "@hyper-fetch/sockets";
|
|
71
|
-
|
|
72
|
-
// src/firestore/utils/result.utils.ts
|
|
73
|
-
var getOrderedResultFirestore = (snapshot) => {
|
|
74
|
-
const result = [];
|
|
75
|
-
snapshot.docs.forEach((d) => {
|
|
76
|
-
result.push(__spreadProps(__spreadValues({}, d.data()), { __key: d.id }));
|
|
77
|
-
});
|
|
78
|
-
return result;
|
|
79
|
-
};
|
|
80
|
-
var getGroupedResultFirestore = (snapshot) => {
|
|
81
|
-
const groupedResult = {
|
|
82
|
-
added: [],
|
|
83
|
-
modified: [],
|
|
84
|
-
removed: []
|
|
85
|
-
};
|
|
86
|
-
snapshot.docChanges().forEach((change) => {
|
|
87
|
-
groupedResult[change.type].push(change.doc.data());
|
|
88
|
-
});
|
|
89
|
-
return [...groupedResult.added, ...groupedResult.modified, ...groupedResult.removed].length > 0 ? groupedResult : null;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
// src/firestore/utils/ref.utils.ts
|
|
93
|
-
var getRef = (db, fullUrl) => {
|
|
94
|
-
const withoutSurroundingSlashes = fullUrl.replace(/^\/|\/$/g, "");
|
|
95
|
-
const urlParts = withoutSurroundingSlashes.split("/").map((element, index) => {
|
|
96
|
-
return index % 2 === 0 ? ["collection", element] : ["doc", element];
|
|
97
|
-
});
|
|
98
|
-
return urlParts.reduce(
|
|
99
|
-
(_db, value) => {
|
|
100
|
-
const [method, pathPart] = value;
|
|
101
|
-
if (method === "doc" && "doc" in _db) {
|
|
102
|
-
return _db.doc(pathPart);
|
|
103
|
-
}
|
|
104
|
-
if (method === "collection" && "collection" in _db) {
|
|
105
|
-
return _db.collection(pathPart);
|
|
106
|
-
}
|
|
107
|
-
return _db;
|
|
108
|
-
},
|
|
109
|
-
db
|
|
110
|
-
);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
// src/constraints/firebase.constraints.ts
|
|
114
|
-
var SharedQueryConstraints = /* @__PURE__ */ ((SharedQueryConstraints2) => {
|
|
115
|
-
SharedQueryConstraints2["START_AT"] = "startAt";
|
|
116
|
-
SharedQueryConstraints2["START_AFTER"] = "startAfter";
|
|
117
|
-
SharedQueryConstraints2["END_AT"] = "endAt";
|
|
118
|
-
SharedQueryConstraints2["END_BEFORE"] = "endBefore";
|
|
119
|
-
return SharedQueryConstraints2;
|
|
120
|
-
})(SharedQueryConstraints || {});
|
|
121
|
-
var RealtimeQueryConstraints = /* @__PURE__ */ ((RealtimeQueryConstraints2) => {
|
|
122
|
-
RealtimeQueryConstraints2["ORDER_BY_CHILD"] = "orderByChild";
|
|
123
|
-
RealtimeQueryConstraints2["ORDER_BY_KEY"] = "orderByKey";
|
|
124
|
-
RealtimeQueryConstraints2["ORDER_BY_VALUE"] = "orderByValue";
|
|
125
|
-
RealtimeQueryConstraints2["LIMIT_TO_FIRST"] = "limitToFirst";
|
|
126
|
-
RealtimeQueryConstraints2["LIMIT_TO_LAST"] = "limitToLast";
|
|
127
|
-
RealtimeQueryConstraints2["EQUAL_TO"] = "equalTo";
|
|
128
|
-
return RealtimeQueryConstraints2;
|
|
129
|
-
})(RealtimeQueryConstraints || {});
|
|
130
|
-
var FirestoreQueryConstraints = /* @__PURE__ */ ((FirestoreQueryConstraints2) => {
|
|
131
|
-
FirestoreQueryConstraints2["WHERE"] = "where";
|
|
132
|
-
FirestoreQueryConstraints2["ORDER_BY"] = "orderBy";
|
|
133
|
-
FirestoreQueryConstraints2["LIMIT"] = "limit";
|
|
134
|
-
return FirestoreQueryConstraints2;
|
|
135
|
-
})(FirestoreQueryConstraints || {});
|
|
136
|
-
var $where = (fieldPath, opStr, value) => {
|
|
137
|
-
return {
|
|
138
|
-
toString: () => `${"where" /* WHERE */}_${fieldPath}${opStr}${value}`,
|
|
139
|
-
type: "where" /* WHERE */,
|
|
140
|
-
values: [fieldPath, opStr, value]
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
var $orderBy = (fieldPath, directionStr) => {
|
|
144
|
-
return {
|
|
145
|
-
toString: () => `${"orderBy" /* ORDER_BY */}_${fieldPath}_${directionStr || ""}`,
|
|
146
|
-
type: "orderBy" /* ORDER_BY */,
|
|
147
|
-
values: [fieldPath, directionStr]
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
var $limit = (num) => {
|
|
151
|
-
return {
|
|
152
|
-
toString: () => `${"limit" /* LIMIT */}_${num}`,
|
|
153
|
-
type: "limit" /* LIMIT */,
|
|
154
|
-
values: [num]
|
|
155
|
-
};
|
|
156
|
-
};
|
|
157
|
-
var startEndConstraintsImpl = (constraintType) => {
|
|
158
|
-
return (...docOrFields) => {
|
|
159
|
-
if (docOrFields.length === 1 && docOrFields[0].query) {
|
|
160
|
-
return {
|
|
161
|
-
toString: () => {
|
|
162
|
-
var _a, _b, _c;
|
|
163
|
-
return `${constraintType}_${(_c = (_b = (_a = docOrFields[0].query) == null ? void 0 : _a._query) == null ? void 0 : _b.memoizedTarget) == null ? void 0 : _c.memoizedCanonicalId}`;
|
|
164
|
-
},
|
|
165
|
-
type: constraintType,
|
|
166
|
-
values: [docOrFields]
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
return {
|
|
170
|
-
toString: () => `${constraintType}_${docOrFields}`,
|
|
171
|
-
type: constraintType,
|
|
172
|
-
values: [docOrFields]
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
var $startAt = startEndConstraintsImpl("startAt" /* START_AT */);
|
|
177
|
-
var $startAfter = startEndConstraintsImpl("startAfter" /* START_AFTER */);
|
|
178
|
-
var $endAt = startEndConstraintsImpl("endAt" /* END_AT */);
|
|
179
|
-
var $endBefore = startEndConstraintsImpl("endBefore" /* END_BEFORE */);
|
|
180
|
-
var $orderByChild = (path) => {
|
|
181
|
-
return {
|
|
182
|
-
toString: () => `${"orderByChild" /* ORDER_BY_CHILD */}_${path}`,
|
|
183
|
-
type: "orderByChild" /* ORDER_BY_CHILD */,
|
|
184
|
-
values: [path]
|
|
185
|
-
};
|
|
186
|
-
};
|
|
187
|
-
var $orderByKey = () => {
|
|
188
|
-
return {
|
|
189
|
-
toString: () => `${"orderByKey" /* ORDER_BY_KEY */}`,
|
|
190
|
-
type: "orderByKey" /* ORDER_BY_KEY */,
|
|
191
|
-
values: []
|
|
192
|
-
};
|
|
193
|
-
};
|
|
194
|
-
var $orderByValue = () => {
|
|
195
|
-
return {
|
|
196
|
-
toString: () => `${"orderByValue" /* ORDER_BY_VALUE */}`,
|
|
197
|
-
type: "orderByValue" /* ORDER_BY_VALUE */,
|
|
198
|
-
values: []
|
|
199
|
-
};
|
|
200
|
-
};
|
|
201
|
-
var $limitToFirst = (num) => {
|
|
202
|
-
return {
|
|
203
|
-
toString: () => `${"limitToFirst" /* LIMIT_TO_FIRST */}_${num}`,
|
|
204
|
-
type: "limitToFirst" /* LIMIT_TO_FIRST */,
|
|
205
|
-
values: [num]
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
var $limitToLast = (num) => {
|
|
209
|
-
return {
|
|
210
|
-
toString: () => `${"limitToLast" /* LIMIT_TO_LAST */}_${num}`,
|
|
211
|
-
type: "limitToLast" /* LIMIT_TO_LAST */,
|
|
212
|
-
values: [num]
|
|
213
|
-
};
|
|
214
|
-
};
|
|
215
|
-
var $equalTo = (value) => {
|
|
216
|
-
return {
|
|
217
|
-
toString: () => `${"limitToLast" /* LIMIT_TO_LAST */}_${value}`,
|
|
218
|
-
type: "equalTo" /* EQUAL_TO */,
|
|
219
|
-
values: [value]
|
|
220
|
-
};
|
|
221
|
-
};
|
|
222
|
-
|
|
223
|
-
// src/firestore/utils/constraints.utils.ts
|
|
224
|
-
var applyFireStoreAdminConstraint = (collectionRef, { type, values }) => {
|
|
225
|
-
switch (type) {
|
|
226
|
-
case "where" /* WHERE */: {
|
|
227
|
-
const [fieldPath, strOp, value] = values;
|
|
228
|
-
return collectionRef.where(fieldPath, strOp, value);
|
|
229
|
-
}
|
|
230
|
-
case "orderBy" /* ORDER_BY */: {
|
|
231
|
-
const [field, ord] = values;
|
|
232
|
-
return collectionRef.orderBy(field, ord);
|
|
233
|
-
}
|
|
234
|
-
case "limit" /* LIMIT */: {
|
|
235
|
-
const [limitValue] = values;
|
|
236
|
-
return collectionRef.limit(limitValue);
|
|
237
|
-
}
|
|
238
|
-
case "startAt" /* START_AT */: {
|
|
239
|
-
const [docOrFields] = values;
|
|
240
|
-
return collectionRef.startAt(docOrFields);
|
|
241
|
-
}
|
|
242
|
-
case "startAfter" /* START_AFTER */: {
|
|
243
|
-
const [docOrFields] = values;
|
|
244
|
-
return collectionRef.startAfter(docOrFields);
|
|
245
|
-
}
|
|
246
|
-
case "endAt" /* END_AT */: {
|
|
247
|
-
const [docOrFields] = values;
|
|
248
|
-
return collectionRef.endAt(docOrFields);
|
|
249
|
-
}
|
|
250
|
-
case "endBefore" /* END_BEFORE */: {
|
|
251
|
-
const [docOrFields] = values;
|
|
252
|
-
return collectionRef.endBefore(docOrFields);
|
|
253
|
-
}
|
|
254
|
-
default:
|
|
255
|
-
throw new Error(`Unknown method ${type}`);
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
var applyFireStoreAdminConstraints = (collectionRef, constraints) => {
|
|
259
|
-
return constraints.reduce((collection, constraint) => {
|
|
260
|
-
return applyFireStoreAdminConstraint(collection, constraint);
|
|
261
|
-
}, collectionRef);
|
|
262
|
-
};
|
|
263
|
-
|
|
264
|
-
// src/utils/misc.ts
|
|
265
|
-
var getStatus = (res) => {
|
|
266
|
-
return Array.isArray(res) && res.length === 0 || res == null ? "emptyResource" : "success";
|
|
267
|
-
};
|
|
268
|
-
var isDocOrQuery = (fullUrl) => {
|
|
269
|
-
const withoutSurroundingSlashes = fullUrl.replace(/^\/|\/$/g, "");
|
|
270
|
-
const pathElements = withoutSurroundingSlashes.split("/").length;
|
|
271
|
-
return pathElements % 2 === 0 ? "doc" : "query";
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
// src/firestore/firestore.sockets.ts
|
|
275
|
-
var firestoreAdminSockets = (database) => {
|
|
276
|
-
return new SocketAdapter({
|
|
277
|
-
name: "firebase-admin-firestore",
|
|
278
|
-
defaultConnected: true
|
|
279
|
-
}).setConnector(({ socket, onReconnect, onListen, onEvent, onError }) => {
|
|
280
|
-
const connect = () => {
|
|
281
|
-
throw new Error("Connect function is not implemented for Firestore Admin socket.");
|
|
282
|
-
};
|
|
283
|
-
const disconnect = () => {
|
|
284
|
-
throw new Error("Cannot disconnect from Firestore database socket. Use 'app.delete()' instead.");
|
|
285
|
-
};
|
|
286
|
-
const reconnect = () => {
|
|
287
|
-
onReconnect({ disconnect, connect });
|
|
288
|
-
};
|
|
289
|
-
const listen = (listener, callback) => {
|
|
290
|
-
const fullUrl = socket.url + listener.topic;
|
|
291
|
-
const { options } = listener;
|
|
292
|
-
let pathRef = getRef(database, fullUrl);
|
|
293
|
-
if (pathRef instanceof CollectionReference) {
|
|
294
|
-
pathRef = applyFireStoreAdminConstraints(pathRef, (options == null ? void 0 : options.constraints) || []);
|
|
295
|
-
}
|
|
296
|
-
let unsubscribe = () => {
|
|
297
|
-
};
|
|
298
|
-
let unmount = () => {
|
|
299
|
-
};
|
|
300
|
-
let clearListeners = () => {
|
|
301
|
-
};
|
|
302
|
-
unsubscribe = pathRef.onSnapshot(
|
|
303
|
-
(snapshot) => {
|
|
304
|
-
const getSnapshotData = (s) => s.data() ? __spreadProps(__spreadValues({}, s.data()), { __key: s.id }) : null;
|
|
305
|
-
const response = snapshot instanceof DocumentSnapshot ? getSnapshotData(snapshot) : getOrderedResultFirestore(snapshot);
|
|
306
|
-
const status = getStatus(response);
|
|
307
|
-
const groupedResult = (options == null ? void 0 : options.groupByChangeType) === true ? getGroupedResultFirestore(snapshot) : null;
|
|
308
|
-
const extra = { ref: pathRef, snapshot, unsubscribe, groupedResult, status };
|
|
309
|
-
callback({ data: response, extra });
|
|
310
|
-
onEvent({ topic: listener.topic, data: response, extra });
|
|
311
|
-
},
|
|
312
|
-
(error) => {
|
|
313
|
-
onError({ error });
|
|
314
|
-
}
|
|
315
|
-
);
|
|
316
|
-
unmount = onListen({ listener, callback, onUnmount: unsubscribe });
|
|
317
|
-
clearListeners = () => {
|
|
318
|
-
unsubscribe();
|
|
319
|
-
unmount();
|
|
320
|
-
};
|
|
321
|
-
return clearListeners;
|
|
322
|
-
};
|
|
323
|
-
const emit = () => __async(null, null, function* () {
|
|
324
|
-
throw new Error("Cannot emit from Firestore database socket.");
|
|
325
|
-
});
|
|
326
|
-
return {
|
|
327
|
-
connect,
|
|
328
|
-
reconnect,
|
|
329
|
-
disconnect,
|
|
330
|
-
emit,
|
|
331
|
-
listen
|
|
332
|
-
};
|
|
333
|
-
});
|
|
334
|
-
};
|
|
335
|
-
|
|
336
|
-
// src/firestore/firestore.methods.ts
|
|
337
|
-
var getFirestoreAdminMethods = ({
|
|
338
|
-
database,
|
|
339
|
-
url,
|
|
340
|
-
onSuccess,
|
|
341
|
-
onError,
|
|
342
|
-
onResponseStart,
|
|
343
|
-
onRequestStart,
|
|
344
|
-
onRequestEnd,
|
|
345
|
-
onResponseEnd
|
|
346
|
-
}) => {
|
|
347
|
-
const [cleanUrl] = url.split("?");
|
|
348
|
-
const methods = {
|
|
349
|
-
getDoc: () => __async(null, null, function* () {
|
|
350
|
-
const path = getRef(database, cleanUrl);
|
|
351
|
-
const snapshot = yield path.get();
|
|
352
|
-
const result = snapshot.data() ? __spreadProps(__spreadValues({}, snapshot.data()), { __key: snapshot.id }) : null;
|
|
353
|
-
const status = result ? "success" : "emptyResource";
|
|
354
|
-
return { result, status, extra: { ref: path, snapshot } };
|
|
355
|
-
}),
|
|
356
|
-
getDocs: (_0) => __async(null, [_0], function* ({
|
|
357
|
-
constraints = []
|
|
358
|
-
}) {
|
|
359
|
-
const path = getRef(database, cleanUrl);
|
|
360
|
-
const query = applyFireStoreAdminConstraints(path, constraints);
|
|
361
|
-
const querySnapshot = yield query.get();
|
|
362
|
-
const result = getOrderedResultFirestore(querySnapshot);
|
|
363
|
-
const status = getStatus(result);
|
|
364
|
-
return { result, status, extra: { ref: path, snapshot: querySnapshot } };
|
|
365
|
-
}),
|
|
366
|
-
setDoc: (_0) => __async(null, [_0], function* ({ data, options }) {
|
|
367
|
-
const path = getRef(database, cleanUrl);
|
|
368
|
-
const merge = (options == null ? void 0 : options.merge) === true;
|
|
369
|
-
const res = yield path.set(data, { merge });
|
|
370
|
-
return { result: res, status: "success", extra: { ref: path } };
|
|
371
|
-
}),
|
|
372
|
-
addDoc: (_0) => __async(null, [_0], function* ({ data }) {
|
|
373
|
-
const ref = getRef(database, cleanUrl);
|
|
374
|
-
const docRef = yield ref.add(data);
|
|
375
|
-
return { result: __spreadProps(__spreadValues({}, data), { __key: docRef.id }), status: "success", extra: { ref: docRef } };
|
|
376
|
-
}),
|
|
377
|
-
updateDoc: (_0) => __async(null, [_0], function* ({ data }) {
|
|
378
|
-
const path = getRef(database, cleanUrl);
|
|
379
|
-
yield path.update(data);
|
|
380
|
-
return { result: data, status: "success", extra: { ref: path } };
|
|
381
|
-
}),
|
|
382
|
-
deleteDoc: () => __async(null, null, function* () {
|
|
383
|
-
const path = getRef(database, cleanUrl);
|
|
384
|
-
yield path.delete();
|
|
385
|
-
return { result: null, status: "success", extra: { ref: path } };
|
|
386
|
-
})
|
|
387
|
-
};
|
|
388
|
-
return (methodName, data) => __async(null, null, function* () {
|
|
389
|
-
try {
|
|
390
|
-
onRequestStart();
|
|
391
|
-
const { result, status, extra } = yield methods[methodName](data);
|
|
392
|
-
onRequestEnd();
|
|
393
|
-
onResponseStart();
|
|
394
|
-
onSuccess({ data: result, status, extra });
|
|
395
|
-
onResponseEnd();
|
|
396
|
-
} catch (error) {
|
|
397
|
-
onRequestEnd();
|
|
398
|
-
onResponseStart();
|
|
399
|
-
onError({ error, status: "error", extra: {} });
|
|
400
|
-
onResponseEnd();
|
|
401
|
-
}
|
|
402
|
-
});
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
// src/realtime/utils/result.utils.ts
|
|
406
|
-
var getOrderedResultRealtime = (snapshot) => {
|
|
407
|
-
const res = [];
|
|
408
|
-
snapshot.forEach((child) => {
|
|
409
|
-
res.push(__spreadProps(__spreadValues({}, child.val()), { __key: child.key }));
|
|
410
|
-
});
|
|
411
|
-
return res.length > 0 ? res : null;
|
|
412
|
-
};
|
|
413
|
-
|
|
414
|
-
// src/realtime/utils/constraints.utils.ts
|
|
415
|
-
var applyRealtimeAdminConstraint = (ref, { type, values }) => {
|
|
416
|
-
switch (type) {
|
|
417
|
-
case "orderByChild" /* ORDER_BY_CHILD */: {
|
|
418
|
-
const [value] = values;
|
|
419
|
-
return ref.orderByChild(value);
|
|
420
|
-
}
|
|
421
|
-
case "orderByKey" /* ORDER_BY_KEY */: {
|
|
422
|
-
return ref.orderByKey();
|
|
423
|
-
}
|
|
424
|
-
case "orderByValue" /* ORDER_BY_VALUE */: {
|
|
425
|
-
return ref.orderByValue();
|
|
426
|
-
}
|
|
427
|
-
case "startAt" /* START_AT */: {
|
|
428
|
-
const [[value]] = values;
|
|
429
|
-
return ref.startAt(value);
|
|
430
|
-
}
|
|
431
|
-
case "startAfter" /* START_AFTER */: {
|
|
432
|
-
const [[value]] = values;
|
|
433
|
-
return ref.startAfter(value);
|
|
434
|
-
}
|
|
435
|
-
case "endAt" /* END_AT */: {
|
|
436
|
-
const [[value]] = values;
|
|
437
|
-
return ref.endAt(value);
|
|
438
|
-
}
|
|
439
|
-
case "endBefore" /* END_BEFORE */: {
|
|
440
|
-
const [[value]] = values;
|
|
441
|
-
return ref.endBefore(value);
|
|
442
|
-
}
|
|
443
|
-
case "limitToFirst" /* LIMIT_TO_FIRST */: {
|
|
444
|
-
const [value] = values;
|
|
445
|
-
return ref.limitToFirst(value);
|
|
446
|
-
}
|
|
447
|
-
case "limitToLast" /* LIMIT_TO_LAST */: {
|
|
448
|
-
const [value] = values;
|
|
449
|
-
return ref.limitToLast(value);
|
|
450
|
-
}
|
|
451
|
-
case "equalTo" /* EQUAL_TO */: {
|
|
452
|
-
const [value] = values;
|
|
453
|
-
return ref.equalTo(value);
|
|
454
|
-
}
|
|
455
|
-
default:
|
|
456
|
-
throw new Error(`Unknown method ${type}`);
|
|
457
|
-
}
|
|
458
|
-
};
|
|
459
|
-
var applyRealtimeAdminConstraints = (ref, constraints) => {
|
|
460
|
-
return constraints.reduce((collection, constraint) => {
|
|
461
|
-
return applyRealtimeAdminConstraint(collection, constraint);
|
|
462
|
-
}, ref);
|
|
463
|
-
};
|
|
464
|
-
|
|
465
|
-
// src/realtime/realtime.methods.ts
|
|
466
|
-
var getRealtimeDbAdminMethods = ({
|
|
467
|
-
database,
|
|
468
|
-
url,
|
|
469
|
-
onSuccess,
|
|
470
|
-
onError,
|
|
471
|
-
onResponseStart,
|
|
472
|
-
onRequestStart,
|
|
473
|
-
onRequestEnd,
|
|
474
|
-
onResponseEnd
|
|
475
|
-
}) => {
|
|
476
|
-
const [fullUrl] = url.split("?");
|
|
477
|
-
const path = database.ref(fullUrl);
|
|
478
|
-
const methods = {
|
|
479
|
-
get: (_0) => __async(null, [_0], function* ({ constraints = [] }) {
|
|
480
|
-
const docOrQuery = isDocOrQuery(fullUrl);
|
|
481
|
-
const q = applyRealtimeAdminConstraints(path, constraints);
|
|
482
|
-
const snapshot = yield q.get();
|
|
483
|
-
const res = docOrQuery === "doc" ? snapshot.val() : getOrderedResultRealtime(snapshot);
|
|
484
|
-
const status = getStatus(res);
|
|
485
|
-
return { result: res, status, extra: { ref: path, snapshot } };
|
|
486
|
-
}),
|
|
487
|
-
set: (_0) => __async(null, [_0], function* ({ data }) {
|
|
488
|
-
yield path.set(data);
|
|
489
|
-
return { result: data, status: "success", extra: { ref: path } };
|
|
490
|
-
}),
|
|
491
|
-
push: (_0) => __async(null, [_0], function* ({ data }) {
|
|
492
|
-
const resRef = yield path.push(data);
|
|
493
|
-
return { result: __spreadProps(__spreadValues({}, data), { __key: resRef.key }), status: "success", extra: { ref: resRef, key: resRef.key } };
|
|
494
|
-
}),
|
|
495
|
-
update: (_0) => __async(null, [_0], function* ({ data }) {
|
|
496
|
-
yield path.update(data);
|
|
497
|
-
return { result: data, status: "success", extra: { ref: path } };
|
|
498
|
-
}),
|
|
499
|
-
remove: () => __async(null, null, function* () {
|
|
500
|
-
yield path.remove();
|
|
501
|
-
return { result: null, status: "success", extra: { ref: path } };
|
|
502
|
-
})
|
|
503
|
-
};
|
|
504
|
-
return (methodName, data) => __async(null, null, function* () {
|
|
505
|
-
try {
|
|
506
|
-
onRequestStart();
|
|
507
|
-
const { result, status, extra } = yield methods[methodName](data);
|
|
508
|
-
onRequestEnd();
|
|
509
|
-
onResponseStart();
|
|
510
|
-
onSuccess({ data: result, status, extra });
|
|
511
|
-
onResponseEnd();
|
|
512
|
-
} catch (error) {
|
|
513
|
-
onRequestEnd();
|
|
514
|
-
onResponseStart();
|
|
515
|
-
onError({ error, status: "error", extra: {} });
|
|
516
|
-
onResponseEnd();
|
|
517
|
-
}
|
|
518
|
-
});
|
|
519
|
-
};
|
|
520
|
-
|
|
521
|
-
// src/realtime/realtime.sockets.ts
|
|
522
|
-
import { SocketAdapter as SocketAdapter2 } from "@hyper-fetch/sockets";
|
|
523
|
-
var realtimeSocketsAdmin = (database) => {
|
|
524
|
-
return new SocketAdapter2({
|
|
525
|
-
name: "firebase-admin-realtime",
|
|
526
|
-
defaultConnected: true
|
|
527
|
-
}).setConnector(
|
|
528
|
-
({ socket, onReconnect, onConnect, onConnected, onDisconnect, onDisconnected, onListen, onEvent, onError }) => {
|
|
529
|
-
const connect = () => __async(null, null, function* () {
|
|
530
|
-
const enabled = onConnect();
|
|
531
|
-
if (enabled) {
|
|
532
|
-
database.goOnline();
|
|
533
|
-
onConnected();
|
|
534
|
-
}
|
|
535
|
-
});
|
|
536
|
-
const disconnect = () => __async(null, null, function* () {
|
|
537
|
-
database.goOffline();
|
|
538
|
-
onDisconnect();
|
|
539
|
-
onDisconnected();
|
|
540
|
-
});
|
|
541
|
-
const reconnect = () => {
|
|
542
|
-
onReconnect({ disconnect, connect });
|
|
543
|
-
};
|
|
544
|
-
const listen = (listener, callback) => {
|
|
545
|
-
const fullUrl = socket.url + listener.topic;
|
|
546
|
-
const path = database.ref(fullUrl);
|
|
547
|
-
const { options } = listener;
|
|
548
|
-
const onlyOnce = (options == null ? void 0 : options.onlyOnce) || false;
|
|
549
|
-
const q = applyRealtimeAdminConstraints(path, (options == null ? void 0 : options.constraints) || []);
|
|
550
|
-
const method = onlyOnce === true ? "once" : "on";
|
|
551
|
-
q[method](
|
|
552
|
-
"value",
|
|
553
|
-
(snapshot) => {
|
|
554
|
-
const getSnapshotData = (s) => s.val() ? __spreadProps(__spreadValues({}, s.val()), { __key: s.key }) : null;
|
|
555
|
-
const response = isDocOrQuery(fullUrl) === "doc" ? getSnapshotData(snapshot) : getOrderedResultRealtime(snapshot);
|
|
556
|
-
const status = getStatus(response);
|
|
557
|
-
const extra = { ref: path, snapshot, status };
|
|
558
|
-
callback({ data: response, extra });
|
|
559
|
-
onEvent({ topic: listener.topic, data: response, extra });
|
|
560
|
-
},
|
|
561
|
-
(error) => {
|
|
562
|
-
onError({ error });
|
|
563
|
-
}
|
|
564
|
-
);
|
|
565
|
-
const unsubscribe = () => q.off("value");
|
|
566
|
-
const unmount = onListen({ listener, callback, onUnmount: unsubscribe });
|
|
567
|
-
const clearListeners = () => {
|
|
568
|
-
unsubscribe();
|
|
569
|
-
unmount();
|
|
570
|
-
};
|
|
571
|
-
return clearListeners;
|
|
572
|
-
};
|
|
573
|
-
const emit = () => __async(null, null, function* () {
|
|
574
|
-
throw new Error("Cannot emit from Realtime database socket.");
|
|
575
|
-
});
|
|
576
|
-
return {
|
|
577
|
-
connect,
|
|
578
|
-
reconnect,
|
|
579
|
-
disconnect,
|
|
580
|
-
listen,
|
|
581
|
-
emit
|
|
582
|
-
};
|
|
583
|
-
}
|
|
584
|
-
);
|
|
585
|
-
};
|
|
586
|
-
|
|
587
|
-
// src/adapter/adapter.sockets.ts
|
|
588
|
-
var FirebaseSocketsAdminAdapter = (database) => {
|
|
589
|
-
if (database instanceof Firestore2) {
|
|
590
|
-
return firestoreAdminSockets(database);
|
|
591
|
-
}
|
|
592
|
-
return realtimeSocketsAdmin(database);
|
|
593
|
-
};
|
|
594
|
-
|
|
595
|
-
// src/adapter/adapter.ts
|
|
596
|
-
import { Adapter } from "@hyper-fetch/core";
|
|
597
|
-
import { Firestore as Firestore3 } from "firebase-admin/firestore";
|
|
598
|
-
var FirebaseAdminAdapter = (database) => {
|
|
599
|
-
return new Adapter({
|
|
600
|
-
name: "firebase-admin",
|
|
601
|
-
defaultMethod: "getDoc",
|
|
602
|
-
defaultExtra: {},
|
|
603
|
-
systemErrorStatus: "error",
|
|
604
|
-
systemErrorExtra: {}
|
|
605
|
-
}).setFetcher(
|
|
606
|
-
(_0) => __async(null, [_0], function* ({ request, onSuccess, onError, onResponseStart, onResponseEnd, onRequestStart, onRequestEnd }) {
|
|
607
|
-
const fullUrl = `${request.client.url}${request.endpoint}`;
|
|
608
|
-
if (database instanceof Firestore3) {
|
|
609
|
-
const { method = "getDocs" /* getDocs */, queryParams, payload, options } = request;
|
|
610
|
-
const availableMethods = getFirestoreAdminMethods({
|
|
611
|
-
database,
|
|
612
|
-
url: fullUrl,
|
|
613
|
-
onSuccess,
|
|
614
|
-
onError,
|
|
615
|
-
onRequestStart,
|
|
616
|
-
onResponseEnd,
|
|
617
|
-
onResponseStart,
|
|
618
|
-
onRequestEnd
|
|
619
|
-
});
|
|
620
|
-
if (!Object.values(FirestoreMethods).includes(method)) {
|
|
621
|
-
throw new Error(`Cannot find method ${method} in Firestore available methods.`);
|
|
622
|
-
}
|
|
623
|
-
availableMethods(method, {
|
|
624
|
-
constraints: (queryParams == null ? void 0 : queryParams.constraints) ? queryParams.constraints : [],
|
|
625
|
-
payload,
|
|
626
|
-
options
|
|
627
|
-
});
|
|
628
|
-
} else {
|
|
629
|
-
const { method = "get" /* get */, queryParams, payload, options } = request;
|
|
630
|
-
const availableMethods = getRealtimeDbAdminMethods({
|
|
631
|
-
database,
|
|
632
|
-
url: fullUrl,
|
|
633
|
-
onSuccess,
|
|
634
|
-
onError,
|
|
635
|
-
onRequestStart,
|
|
636
|
-
onResponseEnd,
|
|
637
|
-
onResponseStart,
|
|
638
|
-
onRequestEnd
|
|
639
|
-
});
|
|
640
|
-
if (!Object.values(RealtimeDBMethods).includes(method)) {
|
|
641
|
-
throw new Error(`Cannot find method ${method} in Realtime database available methods.`);
|
|
642
|
-
}
|
|
643
|
-
availableMethods(method, {
|
|
644
|
-
constraints: (queryParams == null ? void 0 : queryParams.constraints) ? queryParams.constraints : [],
|
|
645
|
-
options,
|
|
646
|
-
payload
|
|
647
|
-
});
|
|
648
|
-
}
|
|
649
|
-
})
|
|
650
|
-
);
|
|
651
|
-
};
|
|
652
|
-
export {
|
|
653
|
-
$endAt,
|
|
654
|
-
$endBefore,
|
|
655
|
-
$equalTo,
|
|
656
|
-
$limit,
|
|
657
|
-
$limitToFirst,
|
|
658
|
-
$limitToLast,
|
|
659
|
-
$orderBy,
|
|
660
|
-
$orderByChild,
|
|
661
|
-
$orderByKey,
|
|
662
|
-
$orderByValue,
|
|
663
|
-
$startAfter,
|
|
664
|
-
$startAt,
|
|
665
|
-
$where,
|
|
666
|
-
FirebaseAdminAdapter,
|
|
667
|
-
FirebaseSocketsAdminAdapter,
|
|
668
|
-
FirestoreMethods,
|
|
669
|
-
FirestoreQueryConstraints,
|
|
670
|
-
RealtimeDBMethods,
|
|
671
|
-
RealtimeQueryConstraints,
|
|
672
|
-
SharedQueryConstraints,
|
|
673
|
-
applyFireStoreAdminConstraint,
|
|
674
|
-
applyFireStoreAdminConstraints,
|
|
675
|
-
applyRealtimeAdminConstraint,
|
|
676
|
-
applyRealtimeAdminConstraints,
|
|
677
|
-
firestoreAdminSockets,
|
|
678
|
-
getFirestoreAdminMethods,
|
|
679
|
-
getGroupedResultFirestore,
|
|
680
|
-
getOrderedResultFirestore,
|
|
681
|
-
getOrderedResultRealtime,
|
|
682
|
-
getRealtimeDbAdminMethods,
|
|
683
|
-
getRef,
|
|
684
|
-
realtimeSocketsAdmin
|
|
685
|
-
};
|
|
686
|
-
//# sourceMappingURL=index.js.map
|