@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 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,2CA0C1B"}
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"}