@nextjscms/plugin-google-analytics 1.1.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/dist/client/AnalyticsPage.d.ts +6 -0
- package/dist/client/AnalyticsPage.d.ts.map +1 -0
- package/dist/client/AnalyticsPage.js +15 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/router.d.ts +29 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +6 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +25 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPage.d.ts","sourceRoot":"","sources":["../../src/client/AnalyticsPage.tsx"],"names":[],"mappings":"AAkBA,KAAK,wBAAwB,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,WAAW,wBAAwB,4CA4BtE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { trpc as trpcClient } from 'nextjs-cms/api/trpc/client';
|
|
4
|
+
import { useI18n } from 'nextjs-cms/translations/client';
|
|
5
|
+
export const GoogleAnalyticsPage = ({ title }) => {
|
|
6
|
+
const t = useI18n();
|
|
7
|
+
const trpc = trpcClient;
|
|
8
|
+
const query = trpc?.googleAnalytics?.test.useQuery;
|
|
9
|
+
const { data, isLoading, isError, error } = query ? query() : { isLoading: true, isError: true, error: null };
|
|
10
|
+
if (!query) {
|
|
11
|
+
return (_jsx("div", { className: 'p-6 text-sm text-red-500', children: "Google Analytics plugin misconfigured: missing trpc client." }));
|
|
12
|
+
}
|
|
13
|
+
return (_jsxs("div", { className: 'w-full', children: [_jsx("div", { className: 'text-foreground bg-linear-to-r from-sky-200 via-emerald-300 to-blue-600 p-8 font-extrabold dark:from-blue-800 dark:via-amber-700 dark:to-rose-900', children: _jsx("h1", { className: 'text-3xl', children: title || t('analytics') }) }), _jsxs("div", { className: 'p-4', children: [isLoading && _jsx("div", { className: 'text-muted-foreground', children: "Loading analytics\u2026" }), isError && !isLoading && (_jsx("div", { className: 'border-destructive/50 bg-destructive/10 text-destructive rounded border p-3 text-sm', children: error instanceof Error ? error.message : 'Unable to load analytics data' })), data ? _jsx("div", { className: 'text-muted-foreground text-sm', children: "Google Analytics connection OK." }) : null] })] }));
|
|
14
|
+
};
|
|
15
|
+
export default GoogleAnalyticsPage;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,6DAc3B"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { definePlugin } from 'nextjs-cms/plugins/server';
|
|
2
|
+
import { googleAnalyticsRouter } from './router.js';
|
|
3
|
+
export function createPlugin() {
|
|
4
|
+
return definePlugin({
|
|
5
|
+
title: 'Google Analytics',
|
|
6
|
+
name: 'plugin_google_analytics',
|
|
7
|
+
registryName: 'google-analytics',
|
|
8
|
+
router: googleAnalyticsRouter,
|
|
9
|
+
routes: [
|
|
10
|
+
{
|
|
11
|
+
path: '/google-analytics',
|
|
12
|
+
title: 'Google Analytics',
|
|
13
|
+
icon: 'chart',
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
});
|
|
17
|
+
}
|
package/dist/router.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const googleAnalyticsRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
2
|
+
ctx: {
|
|
3
|
+
headers: Headers;
|
|
4
|
+
db: import("drizzle-orm/mysql2").MySql2Database<typeof import("nextjs-cms/db/schema")> & {
|
|
5
|
+
$client: import("mysql2/promise").Pool;
|
|
6
|
+
};
|
|
7
|
+
session: import("nextjs-cms").Session | null;
|
|
8
|
+
};
|
|
9
|
+
meta: object;
|
|
10
|
+
errorShape: {
|
|
11
|
+
data: {
|
|
12
|
+
zodError: import("zod").ZodFlattenedError<unknown, string> | null;
|
|
13
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
14
|
+
httpStatus: number;
|
|
15
|
+
path?: string;
|
|
16
|
+
stack?: string;
|
|
17
|
+
};
|
|
18
|
+
message: string;
|
|
19
|
+
code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
|
|
20
|
+
};
|
|
21
|
+
transformer: true;
|
|
22
|
+
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
23
|
+
test: import("@trpc/server").TRPCQueryProcedure<{
|
|
24
|
+
input: void;
|
|
25
|
+
output: boolean;
|
|
26
|
+
meta: object;
|
|
27
|
+
}>;
|
|
28
|
+
}>>;
|
|
29
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;gBAKk3D,CAAC;iBAA2B,CAAC;;;;;;;;;;;;GAD/6D,CAAA"}
|
package/dist/router.js
ADDED
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":"AAOA,wBAA8B,qBAAqB,qDA6BlD"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { api, HydrateClient } from 'nextjs-cms/api/trpc/server';
|
|
3
|
+
import { GoogleAnalyticsPage } from './client/AnalyticsPage.js';
|
|
4
|
+
import { findPluginRouteByPath } from 'nextjs-cms/plugins/server';
|
|
5
|
+
import { resolveLocalizedString, resolveLocale } from 'nextjs-cms/translations';
|
|
6
|
+
import { getCMSConfig } from 'nextjs-cms/core';
|
|
7
|
+
import auth from 'nextjs-cms/auth';
|
|
8
|
+
export default async function GoogleAnalyticsServer() {
|
|
9
|
+
const helpers = api;
|
|
10
|
+
const prefetch = helpers.googleAnalytics?.test?.prefetch;
|
|
11
|
+
if (!prefetch) {
|
|
12
|
+
throw new Error('[google-analytics] Missing googleAnalytics.test prefetch helper.');
|
|
13
|
+
}
|
|
14
|
+
await prefetch();
|
|
15
|
+
// Resolve the plugin route title
|
|
16
|
+
const [route, session, config] = await Promise.all([
|
|
17
|
+
findPluginRouteByPath('/google-analytics'),
|
|
18
|
+
auth(),
|
|
19
|
+
getCMSConfig(),
|
|
20
|
+
]);
|
|
21
|
+
const { supportedLanguages, fallbackLanguage } = config.i18n;
|
|
22
|
+
const locale = resolveLocale(session?.user?.locale, supportedLanguages, fallbackLanguage);
|
|
23
|
+
const resolvedTitle = route ? resolveLocalizedString(route.title, locale, fallbackLanguage) : '';
|
|
24
|
+
return (_jsx(HydrateClient, { children: _jsx(GoogleAnalyticsPage, { title: resolvedTitle }) }));
|
|
25
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nextjscms/plugin-google-analytics",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./server": {
|
|
13
|
+
"types": "./dist/server.d.ts",
|
|
14
|
+
"default": "./dist/server.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist/**/*",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"private": false,
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@trpc/server": "^11.4.2"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": "19.2.3",
|
|
27
|
+
"react-dom": "19.2.3",
|
|
28
|
+
"nextjs-cms": "0.7.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/react": "^19.2.7",
|
|
32
|
+
"@types/react-dom": "^19.2.3",
|
|
33
|
+
"typescript": "^5.9.2"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc",
|
|
37
|
+
"dev": "tsc --watch",
|
|
38
|
+
"clean": "git clean -xdf .cache .turbo dist node_modules"
|
|
39
|
+
}
|
|
40
|
+
}
|