@golocalinteractive/golocal-cloud-wrapper 1.0.65 → 1.0.67
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/README.md +87 -0
- package/dist/context/PermissionsContext.d.ts.map +1 -1
- package/dist/golocal-cloud-wrapper.cjs.js +166 -0
- package/dist/golocal-cloud-wrapper.es.js +3790 -12504
- package/dist/lib/auth/index.d.ts +0 -4
- package/dist/lib/auth/index.d.ts.map +1 -1
- package/dist/lib/auth/server.d.ts.map +1 -1
- package/dist/server.cjs.js +11 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.es.js +2771 -0
- package/dist/token-B1R9SeIE.cjs +1 -0
- package/dist/token-Cp2_aQtj.js +15 -0
- package/package.json +6 -1
- package/dist/golocal-cloud-wrapper.umd.js +0 -197
package/README.md
CHANGED
|
@@ -96,6 +96,93 @@ function App() {
|
|
|
96
96
|
}
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
+
### User Permissions
|
|
100
|
+
|
|
101
|
+
The package includes built-in permission management for GoLocal Interactive products.
|
|
102
|
+
|
|
103
|
+
**Important:** Server-side functions must be imported from `/server` path:
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// ❌ Wrong - This will cause errors in server components
|
|
107
|
+
import { getServerSidePermissions } from "@golocalinteractive/golocal-cloud-wrapper";
|
|
108
|
+
|
|
109
|
+
// ✅ Correct - Use /server path for server-side imports
|
|
110
|
+
import { getServerSidePermissions } from "@golocalinteractive/golocal-cloud-wrapper/server";
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### Client-Side Permissions (with PermissionsProvider)
|
|
114
|
+
|
|
115
|
+
First, create an API endpoint:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// app/api/auth/permissions/route.ts
|
|
119
|
+
import { NextResponse } from 'next/server';
|
|
120
|
+
import { getServerSidePermissions } from '@golocalinteractive/golocal-cloud-wrapper/server';
|
|
121
|
+
|
|
122
|
+
export async function GET() {
|
|
123
|
+
try {
|
|
124
|
+
const permissions = await getServerSidePermissions();
|
|
125
|
+
return NextResponse.json(permissions);
|
|
126
|
+
} catch (error) {
|
|
127
|
+
return NextResponse.json(
|
|
128
|
+
{ essentialInsights: false, web: false, priceMonster: false },
|
|
129
|
+
{ status: 500 }
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Then use in your components:
|
|
136
|
+
|
|
137
|
+
```jsx
|
|
138
|
+
import { PermissionsProvider, usePermissions } from "@golocalinteractive/golocal-cloud-wrapper";
|
|
139
|
+
|
|
140
|
+
function App() {
|
|
141
|
+
return (
|
|
142
|
+
<PermissionsProvider>
|
|
143
|
+
<YourApp />
|
|
144
|
+
</PermissionsProvider>
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function YourComponent() {
|
|
149
|
+
const { permissions, loading, error } = usePermissions();
|
|
150
|
+
|
|
151
|
+
if (loading) return <div>Loading...</div>;
|
|
152
|
+
|
|
153
|
+
return (
|
|
154
|
+
<div>
|
|
155
|
+
{permissions.essentialInsights && <EssentialInsightsContent />}
|
|
156
|
+
{permissions.web && <WebContent />}
|
|
157
|
+
{permissions.priceMonster && <PriceMonsterContent />}
|
|
158
|
+
</div>
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### Server-Side Permissions
|
|
164
|
+
|
|
165
|
+
For server components:
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
// app/layout.tsx (Server Component)
|
|
169
|
+
import { getServerSidePermissions } from '@golocalinteractive/golocal-cloud-wrapper/server';
|
|
170
|
+
|
|
171
|
+
export default async function RootLayout({ children }) {
|
|
172
|
+
const permissions = await getServerSidePermissions();
|
|
173
|
+
|
|
174
|
+
return (
|
|
175
|
+
<html>
|
|
176
|
+
<body>
|
|
177
|
+
<ClientProviders initialPermissions={permissions}>
|
|
178
|
+
{children}
|
|
179
|
+
</ClientProviders>
|
|
180
|
+
</body>
|
|
181
|
+
</html>
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
99
186
|
### Active Route Tracking
|
|
100
187
|
|
|
101
188
|
The package includes a `useActiveRoute` hook for tracking the current route and highlighting active navigation links:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsContext.d.ts","sourceRoot":"","sources":["../../src/context/PermissionsContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,UAAU,uBAAuB;IAC/B,WAAW,EAAE,aAAa,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAMD,eAAO,MAAM,cAAc,+BAM1B,CAAC;AAEF,UAAU,wBAAwB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,aAAa,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,wBAAkD,EAClD,kBAAkB,GACnB,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"PermissionsContext.d.ts","sourceRoot":"","sources":["../../src/context/PermissionsContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,UAAU,uBAAuB;IAC/B,WAAW,EAAE,aAAa,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAMD,eAAO,MAAM,cAAc,+BAM1B,CAAC;AAEF,UAAU,wBAAwB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,aAAa,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,wBAAkD,EAClD,kBAAkB,GACnB,EAAE,wBAAwB,2CA+C1B"}
|