strapi-plugin-firebase-authentication 1.4.0 → 1.4.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.
@@ -5,9 +5,9 @@ const admin = require("@strapi/strapi/admin");
5
5
  const reactRouterDom = require("react-router-dom");
6
6
  const rt = require("@radix-ui/react-tooltip");
7
7
  const m = require("react");
8
- const api = require("./api-e13nzvp3.js");
8
+ const api = require("./api-vlU0YOD2.js");
9
9
  const reactIntl = require("react-intl");
10
- const index = require("./index-DG0-IQtm.js");
10
+ const index = require("./index-DLo9v_Bx.js");
11
11
  const styled = require("styled-components");
12
12
  const rx = require("react-icons/rx");
13
13
  const ai = require("react-icons/ai");
@@ -6006,8 +6006,10 @@ const FilterRow = styled__default.default(api.T)`
6006
6006
  margin-bottom: 16px;
6007
6007
  `;
6008
6008
  const ScrollContainer = styled__default.default(api.R)`
6009
- max-height: 400px;
6009
+ max-height: calc(100vh - 500px);
6010
+ min-height: 200px;
6010
6011
  overflow-y: auto;
6012
+ padding-right: 12px;
6011
6013
  `;
6012
6014
  const PaginationRow = styled__default.default(api.T)`
6013
6015
  margin-top: 16px;
@@ -6019,6 +6021,8 @@ const ExpandableDetails = styled__default.default(api.R)`
6019
6021
  padding: 12px;
6020
6022
  background: ${({ theme }) => theme.colors.neutral100};
6021
6023
  border-radius: 4px;
6024
+ text-align: left;
6025
+ width: 100%;
6022
6026
  `;
6023
6027
  const ResponseBodyContainer = styled__default.default(api.R)`
6024
6028
  margin-top: 8px;
@@ -6180,17 +6184,7 @@ const ActivityLog = ({ firebaseUserId }) => {
6180
6184
  isLoading ? /* @__PURE__ */ jsxRuntime.jsx(api.T, { justifyContent: "center", padding: 4, children: /* @__PURE__ */ jsxRuntime.jsx(api.Wd, { small: true, children: "Loading activity logs..." }) }) : logs.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "pi", textColor: "neutral600", children: "No activity logs found." }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6181
6185
  /* @__PURE__ */ jsxRuntime.jsx(ScrollContainer, { children: logs.map((log) => /* @__PURE__ */ jsxRuntime.jsx(LogItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(api.T, { justifyContent: "space-between", alignItems: "flex-start", children: [
6182
6186
  /* @__PURE__ */ jsxRuntime.jsxs(api.T, { direction: "column", gap: 1, alignItems: "flex-start", style: { flex: 1 }, children: [
6183
- /* @__PURE__ */ jsxRuntime.jsxs(api.T, { gap: 2, alignItems: "center", children: [
6184
- hasExpandableContent(log) && /* @__PURE__ */ jsxRuntime.jsx(
6185
- api.ot,
6186
- {
6187
- onClick: () => toggleExpand(log.documentId),
6188
- label: expandedRows.has(log.documentId) ? "Collapse" : "Expand",
6189
- variant: "ghost",
6190
- size: "S",
6191
- children: expandedRows.has(log.documentId) ? /* @__PURE__ */ jsxRuntime.jsx(index.c5, {}) : /* @__PURE__ */ jsxRuntime.jsx(index.w5, {})
6192
- }
6193
- ),
6187
+ /* @__PURE__ */ jsxRuntime.jsxs(api.T, { gap: 2, alignItems: "center", wrap: "wrap", children: [
6194
6188
  /* @__PURE__ */ jsxRuntime.jsx(api.Is, { textColor: getActivityTypeBadgeColor(log.activityType), size: "S", children: formatActivityType(log.activityType) }),
6195
6189
  log.activityType !== "fieldUpdate" && /* @__PURE__ */ jsxRuntime.jsx(api.E, { variant: "omega", fontWeight: "semiBold", children: log.action }),
6196
6190
  log.metadata?.statusCode && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6208,7 +6202,17 @@ const ActivityLog = ({ firebaseUserId }) => {
6208
6202
  "Error: ",
6209
6203
  log.errorMessage
6210
6204
  ] }),
6211
- expandedRows.has(log.documentId) && hasExpandableContent(log) && /* @__PURE__ */ jsxRuntime.jsx(ExpandableDetails, { children: /* @__PURE__ */ jsxRuntime.jsxs(api.T, { direction: "column", gap: 2, children: [
6205
+ hasExpandableContent(log) && /* @__PURE__ */ jsxRuntime.jsx(
6206
+ api.Nn,
6207
+ {
6208
+ onClick: () => toggleExpand(log.documentId),
6209
+ variant: "ghost",
6210
+ size: "S",
6211
+ startIcon: expandedRows.has(log.documentId) ? /* @__PURE__ */ jsxRuntime.jsx(index.c5, {}) : /* @__PURE__ */ jsxRuntime.jsx(index.w5, {}),
6212
+ children: expandedRows.has(log.documentId) ? "Hide details" : "Show details"
6213
+ }
6214
+ ),
6215
+ expandedRows.has(log.documentId) && hasExpandableContent(log) && /* @__PURE__ */ jsxRuntime.jsx(ExpandableDetails, { children: /* @__PURE__ */ jsxRuntime.jsxs(api.T, { direction: "column", gap: 2, alignItems: "flex-start", children: [
6212
6216
  log.endpoint && /* @__PURE__ */ jsxRuntime.jsxs(api.E, { variant: "pi", textColor: "neutral600", children: [
6213
6217
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Endpoint:" }),
6214
6218
  " ",
@@ -3,9 +3,9 @@ import { Layouts, useQueryParams as useQueryParams$1, getFetchClient, Pagination
3
3
  import { useNavigate, useLocation, useParams, Routes, Route } from "react-router-dom";
4
4
  import { Provider } from "@radix-ui/react-tooltip";
5
5
  import m__default, { useState, useCallback, useMemo, useEffect, useRef, useLayoutEffect } from "react";
6
- import { z as zc, T, R, N as Nn, A as Ar, S as S1, k as k1, a as A1, b as Tr, E, t as t1, v as v1, C as C1, $ as $1, c as bo, w as wo, h as h0, d as a0, o as ot, K as Km, x as x1, G as G0, e as vm, g as getFirebaseConfig$1, F as Fm, D as D1, W as Wd, I as Is, p as pl } from "./api-ut3LjIwN.mjs";
6
+ import { z as zc, T, R, N as Nn, A as Ar, S as S1, k as k1, a as A1, b as Tr, E, t as t1, v as v1, C as C1, $ as $1, c as bo, w as wo, h as h0, d as a0, o as ot, K as Km, x as x1, G as G0, e as vm, g as getFirebaseConfig$1, F as Fm, D as D1, W as Wd, I as Is, p as pl } from "./api-BUBYDvgD.mjs";
7
7
  import { useIntl } from "react-intl";
8
- import { i as isArguments_1, a as isBufferExports, b as isTypedArray_1, c as isLength_1, d as isFunction_1, _ as _getTag, e as _Stack, f as _equalArrays, g as _equalByTag, h as isObjectLike_1, j as getDefaultExportFromCjs, U as U2, k as _baseGetTag, l as _MapCache, m as _Symbol, n as m3, o as bn, N as Nn$1, Y as Y2, J as J2, P as PLUGIN_ID, p as getAugmentedNamespace, q as commonjsGlobal, u as un, s as sn, r as c5, w as w5, t as _3 } from "./index-CciifEG2.mjs";
8
+ import { i as isArguments_1, a as isBufferExports, b as isTypedArray_1, c as isLength_1, d as isFunction_1, _ as _getTag, e as _Stack, f as _equalArrays, g as _equalByTag, h as isObjectLike_1, j as getDefaultExportFromCjs, U as U2, k as _baseGetTag, l as _MapCache, m as _Symbol, n as m3, o as bn, N as Nn$1, Y as Y2, J as J2, P as PLUGIN_ID, p as getAugmentedNamespace, q as commonjsGlobal, u as un, s as sn, r as c5, w as w5, t as _3 } from "./index-BZSt7Cfj.mjs";
9
9
  import styled from "styled-components";
10
10
  import { RxCheck, RxCross2 } from "react-icons/rx";
11
11
  import { AiOutlineUserAdd, AiFillPhone, AiFillMail, AiFillYahoo, AiFillGithub, AiFillTwitterCircle, AiFillFacebook, AiFillApple, AiFillGoogleCircle } from "react-icons/ai";
@@ -5982,8 +5982,10 @@ const FilterRow = styled(T)`
5982
5982
  margin-bottom: 16px;
5983
5983
  `;
5984
5984
  const ScrollContainer = styled(R)`
5985
- max-height: 400px;
5985
+ max-height: calc(100vh - 500px);
5986
+ min-height: 200px;
5986
5987
  overflow-y: auto;
5988
+ padding-right: 12px;
5987
5989
  `;
5988
5990
  const PaginationRow = styled(T)`
5989
5991
  margin-top: 16px;
@@ -5995,6 +5997,8 @@ const ExpandableDetails = styled(R)`
5995
5997
  padding: 12px;
5996
5998
  background: ${({ theme }) => theme.colors.neutral100};
5997
5999
  border-radius: 4px;
6000
+ text-align: left;
6001
+ width: 100%;
5998
6002
  `;
5999
6003
  const ResponseBodyContainer = styled(R)`
6000
6004
  margin-top: 8px;
@@ -6156,17 +6160,7 @@ const ActivityLog = ({ firebaseUserId }) => {
6156
6160
  isLoading ? /* @__PURE__ */ jsx(T, { justifyContent: "center", padding: 4, children: /* @__PURE__ */ jsx(Wd, { small: true, children: "Loading activity logs..." }) }) : logs.length === 0 ? /* @__PURE__ */ jsx(E, { variant: "pi", textColor: "neutral600", children: "No activity logs found." }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6157
6161
  /* @__PURE__ */ jsx(ScrollContainer, { children: logs.map((log) => /* @__PURE__ */ jsx(LogItem, { children: /* @__PURE__ */ jsxs(T, { justifyContent: "space-between", alignItems: "flex-start", children: [
6158
6162
  /* @__PURE__ */ jsxs(T, { direction: "column", gap: 1, alignItems: "flex-start", style: { flex: 1 }, children: [
6159
- /* @__PURE__ */ jsxs(T, { gap: 2, alignItems: "center", children: [
6160
- hasExpandableContent(log) && /* @__PURE__ */ jsx(
6161
- ot,
6162
- {
6163
- onClick: () => toggleExpand(log.documentId),
6164
- label: expandedRows.has(log.documentId) ? "Collapse" : "Expand",
6165
- variant: "ghost",
6166
- size: "S",
6167
- children: expandedRows.has(log.documentId) ? /* @__PURE__ */ jsx(c5, {}) : /* @__PURE__ */ jsx(w5, {})
6168
- }
6169
- ),
6163
+ /* @__PURE__ */ jsxs(T, { gap: 2, alignItems: "center", wrap: "wrap", children: [
6170
6164
  /* @__PURE__ */ jsx(Is, { textColor: getActivityTypeBadgeColor(log.activityType), size: "S", children: formatActivityType(log.activityType) }),
6171
6165
  log.activityType !== "fieldUpdate" && /* @__PURE__ */ jsx(E, { variant: "omega", fontWeight: "semiBold", children: log.action }),
6172
6166
  log.metadata?.statusCode && /* @__PURE__ */ jsx(
@@ -6184,7 +6178,17 @@ const ActivityLog = ({ firebaseUserId }) => {
6184
6178
  "Error: ",
6185
6179
  log.errorMessage
6186
6180
  ] }),
6187
- expandedRows.has(log.documentId) && hasExpandableContent(log) && /* @__PURE__ */ jsx(ExpandableDetails, { children: /* @__PURE__ */ jsxs(T, { direction: "column", gap: 2, children: [
6181
+ hasExpandableContent(log) && /* @__PURE__ */ jsx(
6182
+ Nn,
6183
+ {
6184
+ onClick: () => toggleExpand(log.documentId),
6185
+ variant: "ghost",
6186
+ size: "S",
6187
+ startIcon: expandedRows.has(log.documentId) ? /* @__PURE__ */ jsx(c5, {}) : /* @__PURE__ */ jsx(w5, {}),
6188
+ children: expandedRows.has(log.documentId) ? "Hide details" : "Show details"
6189
+ }
6190
+ ),
6191
+ expandedRows.has(log.documentId) && hasExpandableContent(log) && /* @__PURE__ */ jsx(ExpandableDetails, { children: /* @__PURE__ */ jsxs(T, { direction: "column", gap: 2, alignItems: "flex-start", children: [
6188
6192
  log.endpoint && /* @__PURE__ */ jsxs(E, { variant: "pi", textColor: "neutral600", children: [
6189
6193
  /* @__PURE__ */ jsx("strong", { children: "Endpoint:" }),
6190
6194
  " ",
@@ -5,7 +5,7 @@ import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
5
5
  import * as rt from "@radix-ui/react-tooltip";
6
6
  import * as we$1 from "react-dom";
7
7
  import we__default, { flushSync, createPortal } from "react-dom";
8
- import { q as commonjsGlobal, J as J2, R as R3, C as C5, v as f5, x as a5, N as Nn$1, y as r3, z as f3, u as un$1, w as w5, A as h5, K as K2, B as o5, P as PLUGIN_ID } from "./index-CciifEG2.mjs";
8
+ import { q as commonjsGlobal, J as J2, R as R3, C as C5, v as f5, x as a5, N as Nn$1, y as r3, z as f3, u as un$1, w as w5, A as h5, K as K2, B as o5, P as PLUGIN_ID } from "./index-BZSt7Cfj.mjs";
9
9
  import { getFetchClient } from "@strapi/strapi/admin";
10
10
  function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {
11
11
  const callbackRef = useRef(callback);
@@ -4,7 +4,7 @@ const m = require("react");
4
4
  const jsxRuntime = require("react/jsx-runtime");
5
5
  const rt = require("@radix-ui/react-tooltip");
6
6
  const we$1 = require("react-dom");
7
- const index$2 = require("./index-DG0-IQtm.js");
7
+ const index$2 = require("./index-DLo9v_Bx.js");
8
8
  const admin = require("@strapi/strapi/admin");
9
9
  function _interopNamespace(e) {
10
10
  if (e && e.__esModule) return e;
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
- import { T, R, E, J as Jm, N as Nn, G as G0, I as Is, M as M1, D as D1, i as i1, t as t1, g as getFirebaseConfig, s as saveFirebaseConfig, f as delFirebaseConfig, j as savePasswordSettings } from "./api-ut3LjIwN.mjs";
3
+ import { T, R, E, J as Jm, N as Nn, G as G0, I as Is, M as M1, D as D1, i as i1, t as t1, g as getFirebaseConfig, s as saveFirebaseConfig, f as delFirebaseConfig, j as savePasswordSettings } from "./api-BUBYDvgD.mjs";
4
4
  import { useNotification, Page } from "@strapi/strapi/admin";
5
5
  import { useNavigate } from "react-router-dom";
6
6
  function SettingsPage() {
@@ -2660,7 +2660,7 @@ const index = {
2660
2660
  id: `${PLUGIN_ID}.page.title`,
2661
2661
  defaultMessage: PLUGIN_ID
2662
2662
  },
2663
- Component: () => import("./App-BetYshSi.mjs").then((mod) => ({
2663
+ Component: () => import("./App-ICSLMN65.mjs").then((mod) => ({
2664
2664
  default: mod.App
2665
2665
  })),
2666
2666
  permissions: PERMISSIONS["menu-link"]
@@ -2682,7 +2682,7 @@ const index = {
2682
2682
  id: "settings",
2683
2683
  to: `/settings/${PLUGIN_ID}`,
2684
2684
  async Component() {
2685
- const component = await import("./index-LLF37Cdh.mjs");
2685
+ const component = await import("./index-BXFmeItI.mjs");
2686
2686
  return component.default;
2687
2687
  },
2688
2688
  permissions: PERMISSIONS["menu-link"]
@@ -2661,7 +2661,7 @@ const index = {
2661
2661
  id: `${PLUGIN_ID}.page.title`,
2662
2662
  defaultMessage: PLUGIN_ID
2663
2663
  },
2664
- Component: () => Promise.resolve().then(() => require("./App-CvU_Hs6w.js")).then((mod) => ({
2664
+ Component: () => Promise.resolve().then(() => require("./App-C9bt_W_j.js")).then((mod) => ({
2665
2665
  default: mod.App
2666
2666
  })),
2667
2667
  permissions: PERMISSIONS["menu-link"]
@@ -2683,7 +2683,7 @@ const index = {
2683
2683
  id: "settings",
2684
2684
  to: `/settings/${PLUGIN_ID}`,
2685
2685
  async Component() {
2686
- const component = await Promise.resolve().then(() => require("./index-Cdk5SnH2.js"));
2686
+ const component = await Promise.resolve().then(() => require("./index-ovm1QUEJ.js"));
2687
2687
  return component.default;
2688
2688
  },
2689
2689
  permissions: PERMISSIONS["menu-link"]
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const m = require("react");
5
- const api = require("./api-e13nzvp3.js");
5
+ const api = require("./api-vlU0YOD2.js");
6
6
  const admin = require("@strapi/strapi/admin");
7
7
  const reactRouterDom = require("react-router-dom");
8
8
  function SettingsPage() {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index-DG0-IQtm.js");
2
+ const index = require("../_chunks/index-DLo9v_Bx.js");
3
3
  require("react/jsx-runtime");
4
4
  require("@strapi/strapi/admin");
5
5
  require("react-router-dom");
@@ -1,4 +1,4 @@
1
- import { D } from "../_chunks/index-CciifEG2.mjs";
1
+ import { D } from "../_chunks/index-BZSt7Cfj.mjs";
2
2
  import "react/jsx-runtime";
3
3
  import "@strapi/strapi/admin";
4
4
  import "react-router-dom";
@@ -339,11 +339,14 @@ function getClientIP(ctx) {
339
339
  return ctx.request.ip || "unknown";
340
340
  }
341
341
  const activityLoggerFactory = ({ strapi: strapi2 }) => {
342
+ strapi2.log.info("[Activity Logger] Middleware registered");
342
343
  return async (ctx, next) => {
343
344
  const startTime = Date.now();
344
345
  await next();
345
346
  const routeConfig = LOGGED_ROUTES.find((r) => ctx.path === r.path && ctx.method === r.method);
346
- if (!routeConfig) return;
347
+ if (!routeConfig) {
348
+ return;
349
+ }
347
350
  const status = ctx.status;
348
351
  const body = ctx.body;
349
352
  const path2 = ctx.path;
@@ -354,7 +357,9 @@ const activityLoggerFactory = ({ strapi: strapi2 }) => {
354
357
  (async () => {
355
358
  try {
356
359
  const firebaseUserId = await extractFirebaseUserId(ctx, strapi2);
357
- if (!firebaseUserId) return;
360
+ if (!firebaseUserId) {
361
+ return;
362
+ }
358
363
  await strapi2.plugin("firebase-authentication").service("activityLogService").logActivity({
359
364
  firebaseUserId,
360
365
  strapiUserId: stateUser?.documentId,
@@ -373,7 +378,7 @@ const activityLoggerFactory = ({ strapi: strapi2 }) => {
373
378
  }
374
379
  });
375
380
  } catch (err) {
376
- strapi2.log.error("[Activity Logger] Failed:", err);
381
+ strapi2.log.error("[Activity Logger] Failed to log activity:", err);
377
382
  }
378
383
  })();
379
384
  };
@@ -312,11 +312,14 @@ function getClientIP(ctx) {
312
312
  return ctx.request.ip || "unknown";
313
313
  }
314
314
  const activityLoggerFactory = ({ strapi: strapi2 }) => {
315
+ strapi2.log.info("[Activity Logger] Middleware registered");
315
316
  return async (ctx, next) => {
316
317
  const startTime = Date.now();
317
318
  await next();
318
319
  const routeConfig = LOGGED_ROUTES.find((r) => ctx.path === r.path && ctx.method === r.method);
319
- if (!routeConfig) return;
320
+ if (!routeConfig) {
321
+ return;
322
+ }
320
323
  const status = ctx.status;
321
324
  const body = ctx.body;
322
325
  const path2 = ctx.path;
@@ -327,7 +330,9 @@ const activityLoggerFactory = ({ strapi: strapi2 }) => {
327
330
  (async () => {
328
331
  try {
329
332
  const firebaseUserId = await extractFirebaseUserId(ctx, strapi2);
330
- if (!firebaseUserId) return;
333
+ if (!firebaseUserId) {
334
+ return;
335
+ }
331
336
  await strapi2.plugin("firebase-authentication").service("activityLogService").logActivity({
332
337
  firebaseUserId,
333
338
  strapiUserId: stateUser?.documentId,
@@ -346,7 +351,7 @@ const activityLoggerFactory = ({ strapi: strapi2 }) => {
346
351
  }
347
352
  });
348
353
  } catch (err) {
349
- strapi2.log.error("[Activity Logger] Failed:", err);
354
+ strapi2.log.error("[Activity Logger] Failed to log activity:", err);
350
355
  }
351
356
  })();
352
357
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strapi-plugin-firebase-authentication",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Allows easy integration between clients utilizing Firebase for authentication and Strapi",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -51,6 +51,7 @@
51
51
  "watch:link": "strapi-plugin watch:link"
52
52
  },
53
53
  "dependencies": {
54
+ "@radix-ui/react-tooltip": "1.0.7",
54
55
  "@tanstack/react-query": "^5.90.2",
55
56
  "crypto-js": "^4.2.0",
56
57
  "destr": "^2.0.5",
@@ -61,15 +62,15 @@
61
62
  "react-phone-input-2": "^2.15.1",
62
63
  "react-phone-number-input": "^3.4.12",
63
64
  "react-syntax-highlighter": "^15.6.6",
64
- "@radix-ui/react-tooltip": "1.0.7",
65
65
  "validator": "^13.15.15"
66
66
  },
67
67
  "devDependencies": {
68
+ "@strapi/design-system": "^2.0.0-rc.16",
69
+ "@strapi/icons": "^2.0.0-rc.25",
68
70
  "@strapi/sdk-plugin": "^5.3.2",
69
71
  "@strapi/strapi": "^5.0.0",
70
72
  "@strapi/typescript-utils": "^5.23.3",
71
- "@strapi/design-system": "^2.0.0-rc.16",
72
- "@strapi/icons": "^2.0.0-rc.25",
73
+ "@strapi/utils": "^5.33.3",
73
74
  "@types/koa": "^2.15.0",
74
75
  "@types/react": "^18.3.0",
75
76
  "@types/react-dom": "^18.3.0",