@rebasepro/firebase 0.12.1-canary.gf5f1d39 → 0.13.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.
@@ -53,5 +53,5 @@ export declare function useFirestoreDriver({ firebaseApp, textSearchControllerBu
53
53
  * @param data
54
54
  * @group Firestore
55
55
  */
56
- export declare function firestoreToCMSModel(data: unknown): unknown;
57
- export declare function cmsToFirestoreModel(data: unknown, firestore: Firestore, inArray?: boolean): unknown;
56
+ export declare function firestoreToRebaseModel(data: unknown): unknown;
57
+ export declare function rebaseToFirestoreModel(data: unknown, firestore: Firestore, inArray?: boolean): unknown;
package/dist/index.es.js CHANGED
@@ -14,7 +14,7 @@ import { removeUndefined } from "@rebasepro/utils";
14
14
  import { AdminModeControllerProvider, ErrorView, ModeControllerProvider, Rebase, RebaseLogo, RebaseRoutes, SnackbarProvider, useBrowserTitleAndIcon, useBuildAdminModeController, useBuildLocalConfigurationPersistence, useBuildModeController, useModeController, useSnackbarController } from "@rebasepro/app";
15
15
  import { AppBar, CollectionRegistryContext, Drawer, NavigationStateContext, RebaseRoute, Scaffold, SideDialogs, SidePanelProvider, UrlContext, useBuildCollectionRegistryController, useBuildNavigationStateController, useBuildUrlController } from "@rebasepro/admin";
16
16
  import { ArrowLeftIcon, Button, CenteredView, CircularProgress, CircularProgressCenter, IconButton, LoadingButton, MailIcon, PhoneIcon, TextField, Typography, UserIcon, cls, iconSize } from "@rebasepro/ui";
17
- import { Navigate, Outlet, Route } from "react-router-dom";
17
+ import { Navigate, Outlet, Route } from "react-router";
18
18
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
19
  //#region src/hooks/useFirebaseAuthController.ts
20
20
  /**
@@ -472,10 +472,11 @@ function useAppCheck({ firebaseApp, options }) {
472
472
  setAppCheckLoading(true);
473
473
  const { provider, isTokenAutoRefreshEnabled } = options;
474
474
  removeCurrentAppCheckDiv();
475
- verifyToken(initializeAppCheck(firebaseApp, {
475
+ const appCheck = initializeAppCheck(firebaseApp, {
476
476
  provider,
477
477
  isTokenAutoRefreshEnabled
478
- })).then(() => {
478
+ });
479
+ verifyToken(appCheck).then(() => {
479
480
  setAppCheckLoading(false);
480
481
  });
481
482
  initialCheck.current = true;
@@ -513,7 +514,8 @@ var docsToCollectionTree = (docs) => {
513
514
  Object.keys(collectionsMap).sort((a, b) => b.split(COLLECTION_PATH_SEPARATOR).length - a.split(COLLECTION_PATH_SEPARATOR).length).forEach((id) => {
514
515
  const collection = collectionsMap[id];
515
516
  if (id.includes(COLLECTION_PATH_SEPARATOR)) {
516
- const parentCollection = collectionsMap[id.split(COLLECTION_PATH_SEPARATOR).slice(0, -1).join(COLLECTION_PATH_SEPARATOR)];
517
+ const parentId = id.split(COLLECTION_PATH_SEPARATOR).slice(0, -1).join(COLLECTION_PATH_SEPARATOR);
518
+ const parentCollection = collectionsMap[parentId];
517
519
  if (parentCollection) parentCollection.subcollections = () => [...parentCollection.subcollections?.() ?? [], collection];
518
520
  delete collectionsMap[id];
519
521
  }
@@ -698,7 +700,8 @@ var localSearchControllerBuilder = ({ firebaseApp }) => {
698
700
  return new Promise((resolve, reject) => {
699
701
  if (collectionProp) {
700
702
  console.debug("Init local search controller", path);
701
- listeners[path] = onSnapshot(query(collection(databaseId ? getFirestore(firebaseApp, databaseId) : getFirestore(firebaseApp), path)), {
703
+ const col = collection(databaseId ? getFirestore(firebaseApp, databaseId) : getFirestore(firebaseApp), path);
704
+ listeners[path] = onSnapshot(query(col), {
702
705
  next: (entity) => {
703
706
  if (entity.metadata.fromCache && entity.metadata.hasPendingWrites) return;
704
707
  const docs = entity.docs.map((doc) => ({
@@ -977,7 +980,7 @@ function useFirestoreDriver({ firebaseApp, textSearchControllerBuilder, firestor
977
980
  return;
978
981
  }
979
982
  if (op === "like" || op === "ilike" || op === "not-like" || op === "not-ilike") throw new Error(`Firestore does not support the "${op}" operator (SQL pattern matching). Use a full-text search index or the collection's searchString instead.`);
980
- queryParams.push(where(key, op, cmsToFirestoreModel(value, firestore)));
983
+ queryParams.push(where(key, op, rebaseToFirestoreModel(value, firestore)));
981
984
  });
982
985
  if (orderBy$1 && order) queryParams.push(orderBy(orderBy$1, order));
983
986
  if (startAfter$1) queryParams.push(startAfter(startAfter$1));
@@ -1165,7 +1168,7 @@ function useFirestoreDriver({ firebaseApp, textSearchControllerBuilder, firestor
1165
1168
  values: valuesProp,
1166
1169
  collection: collection$1
1167
1170
  });
1168
- const values = cmsToFirestoreModel(valuesProp, getFirestore(firebaseApp));
1171
+ const values = rebaseToFirestoreModel(valuesProp, getFirestore(firebaseApp));
1169
1172
  console.debug("2", {
1170
1173
  path,
1171
1174
  id,
@@ -1185,7 +1188,7 @@ function useFirestoreDriver({ firebaseApp, textSearchControllerBuilder, firestor
1185
1188
  else documentReference = doc(collectionReference);
1186
1189
  return setDoc(documentReference, values, { merge: true }).then(() => {
1187
1190
  return {
1188
- ...firestoreToCMSModel(values),
1191
+ ...firestoreToRebaseModel(values),
1189
1192
  id: documentReference.id
1190
1193
  };
1191
1194
  }).catch((error) => {
@@ -1219,7 +1222,7 @@ function useFirestoreDriver({ firebaseApp, textSearchControllerBuilder, firestor
1219
1222
  const databaseId = collection$2?.databaseId;
1220
1223
  const firestore = databaseId ? getFirestore(firebaseApp, databaseId) : getFirestore(firebaseApp);
1221
1224
  if (value === void 0 || value === null) return Promise.resolve(true);
1222
- return (await getDocs(query(collection(firestore, path), where(name, "==", cmsToFirestoreModel(value, firestore))))).docs.filter((doc) => doc.id !== id).length === 0;
1225
+ return (await getDocs(query(collection(firestore, path), where(name, "==", rebaseToFirestoreModel(value, firestore))))).docs.filter((doc) => doc.id !== id).length === 0;
1223
1226
  }, [firebaseApp]);
1224
1227
  const count = useCallback(async ({ path, filter, order, orderBy, collection }) => {
1225
1228
  if (!firebaseApp) throw Error("useFirestoreDriver Firebase not initialised");
@@ -1273,7 +1276,7 @@ function useFirestoreDriver({ firebaseApp, textSearchControllerBuilder, firestor
1273
1276
  }
1274
1277
  var createRowFromDocument = (docSnap) => {
1275
1278
  return {
1276
- ...firestoreToCMSModel(docSnap.data()),
1279
+ ...firestoreToRebaseModel(docSnap.data()),
1277
1280
  id: docSnap.id
1278
1281
  };
1279
1282
  };
@@ -1287,7 +1290,7 @@ var createRowFromDocument = (docSnap) => {
1287
1290
  * @param data
1288
1291
  * @group Firestore
1289
1292
  */
1290
- function firestoreToCMSModel(data) {
1293
+ function firestoreToRebaseModel(data) {
1291
1294
  if (data === null || data === void 0) return null;
1292
1295
  if (typeof data === "object" && data !== null && "isEqual" in data && typeof data.isEqual === "function" && deleteField().isEqual(data)) return;
1293
1296
  if (typeof data === "object" && data !== null && "isEqual" in data && typeof data.isEqual === "function" && serverTimestamp().isEqual(data)) return null;
@@ -1307,11 +1310,11 @@ function firestoreToCMSModel(data) {
1307
1310
  databaseId
1308
1311
  });
1309
1312
  }
1310
- if (Array.isArray(data)) return data.map(firestoreToCMSModel).filter((v) => v !== void 0);
1313
+ if (Array.isArray(data)) return data.map(firestoreToRebaseModel).filter((v) => v !== void 0);
1311
1314
  if (typeof data === "object") {
1312
1315
  const result = {};
1313
1316
  for (const key of Object.keys(data)) {
1314
- const childValue = firestoreToCMSModel(data[key]);
1317
+ const childValue = firestoreToRebaseModel(data[key]);
1315
1318
  if (childValue !== void 0) result[key] = childValue;
1316
1319
  }
1317
1320
  return result;
@@ -1327,10 +1330,10 @@ function getCMSPathFromFirestorePath(fsPath) {
1327
1330
  to = to === -1 ? fsPath.length : to;
1328
1331
  return fsPath.substring(0, to);
1329
1332
  }
1330
- function cmsToFirestoreModel(data, firestore, inArray = false) {
1333
+ function rebaseToFirestoreModel(data, firestore, inArray = false) {
1331
1334
  if (data === void 0) return deleteField();
1332
1335
  else if (data === null) return null;
1333
- else if (Array.isArray(data)) return data.filter((v) => v !== void 0).map((v) => cmsToFirestoreModel(v, firestore, true));
1336
+ else if (Array.isArray(data)) return data.filter((v) => v !== void 0).map((v) => rebaseToFirestoreModel(v, firestore, true));
1334
1337
  else if (typeof data === "object" && data !== null && "isEntityReference" in data && typeof data.isEntityReference === "function" && data.isEntityReference()) {
1335
1338
  const entityRef = data;
1336
1339
  return doc(entityRef.databaseId ? getFirestore(firestore.app, entityRef.databaseId) : firestore, entityRef.path, entityRef.id);
@@ -1341,7 +1344,7 @@ function cmsToFirestoreModel(data, firestore, inArray = false) {
1341
1344
  else if (data instanceof Date) return Timestamp.fromDate(data);
1342
1345
  else if (data && typeof data === "object" && "__type__" in data && data.__type__ === "__vector__") return vector(data.value || []);
1343
1346
  else if (data && typeof data === "object") return Object.entries(data).map(([key, v]) => {
1344
- const firestoreModel = cmsToFirestoreModel(v, firestore);
1347
+ const firestoreModel = rebaseToFirestoreModel(v, firestore);
1345
1348
  if (firestoreModel !== void 0) return { [key]: firestoreModel };
1346
1349
  else return {};
1347
1350
  }).reduce((a, b) => ({
@@ -1575,7 +1578,8 @@ function useBuildUserManagement({ authController, dataSourceDelegate, roles: rol
1575
1578
  console.debug("Updating users", rows);
1576
1579
  setUsersError(void 0);
1577
1580
  try {
1578
- setUsersWithRoleIds(rowsToUsers(rows));
1581
+ const newUsers = rowsToUsers(rows);
1582
+ setUsersWithRoleIds(newUsers);
1579
1583
  } catch (e) {
1580
1584
  setUsersWithRoleIds([]);
1581
1585
  console.error("Error loading users", e);
@@ -2645,6 +2649,6 @@ function RebaseFirebaseApp({ name, logo, logoDark, accessGate, collections, view
2645
2649
  }) });
2646
2650
  }
2647
2651
  //#endregion
2648
- export { FirebaseLoginView, LoginButton, RECAPTCHA_CONTAINER_ID, RebaseFirebaseApp, buildCollectionId, buildExternalSearchController, buildPineconeSearchController, buildRebaseSearchController, cmsToFirestoreModel, docToCollection, docsToCollectionTree, firestoreToCMSModel, getFirestoreDataInPath, localSearchControllerBuilder, performAlgoliaTextSearch, performPineconeTextSearch, useAppCheck, useBuildUserManagement, useFirebaseAccessGate, useFirebaseAuthController, useFirebaseRTDBDelegate, useFirebaseStorageSource, useFirestoreDriver, useInitialiseFirebase, useRecaptcha };
2652
+ export { FirebaseLoginView, LoginButton, RECAPTCHA_CONTAINER_ID, RebaseFirebaseApp, buildCollectionId, buildExternalSearchController, buildPineconeSearchController, buildRebaseSearchController, docToCollection, docsToCollectionTree, firestoreToRebaseModel, getFirestoreDataInPath, localSearchControllerBuilder, performAlgoliaTextSearch, performPineconeTextSearch, rebaseToFirestoreModel, useAppCheck, useBuildUserManagement, useFirebaseAccessGate, useFirebaseAuthController, useFirebaseRTDBDelegate, useFirebaseStorageSource, useFirestoreDriver, useInitialiseFirebase, useRecaptcha };
2649
2653
 
2650
2654
  //# sourceMappingURL=index.es.js.map