@bridge-ai-dev/ecom-chat 1.0.6 → 1.0.8
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 +15 -0
- package/bin/cli.js +10 -26
- package/dist/cjs/ChatComponent.d.ts.map +1 -1
- package/dist/cjs/ChatComponent.js +24 -11
- package/dist/cjs/ChatComponent.js.map +1 -1
- package/dist/cjs/types.d.ts +4 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/ChatComponent.js +24 -11
- package/dist/esm/ChatComponent.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -87,6 +87,18 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
87
87
|
/>
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
+
### Passing Auth Data Directly (No API Route Call)
|
|
91
|
+
If you already have access to the identity/cart tokens (e.g. in a Server Component), you can pass them directly:
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
<ChatComponent
|
|
95
|
+
tenantId="your-tenant-uuid"
|
|
96
|
+
identity="optional-identity-token"
|
|
97
|
+
cartContext="optional-cart-jwt"
|
|
98
|
+
// ... other props
|
|
99
|
+
/>
|
|
100
|
+
```
|
|
101
|
+
|
|
90
102
|
## API Reference
|
|
91
103
|
|
|
92
104
|
### ChatComponent Props
|
|
@@ -94,6 +106,8 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
94
106
|
| Prop | Type | Required | Default | Description |
|
|
95
107
|
|------|------|----------|---------|-------------|
|
|
96
108
|
| `tenantId` | `string` | ✅ | - | Your Bridge Chat tenant identifier |
|
|
109
|
+
| `identity` | `string` | ❌ | - | Identity token (skips API call if provided) |
|
|
110
|
+
| `cartContext` | `string` | ❌ | - | Cart context token (skips API call if provided) |
|
|
97
111
|
| `widgetScriptUrl` | `string` | ❌ | - | URL to the chat widget script (loads dynamically) |
|
|
98
112
|
| `accessToken` | `string` | ❌ | - | Optional access token for authenticated requests |
|
|
99
113
|
| `position` | `'bottom-right' \| 'bottom-left' \| 'top-right' \| 'top-left'` | ❌ | `'bottom-right'` | Widget position on screen |
|
|
@@ -146,6 +160,7 @@ When the component initializes, it calls `BridgeChat.init()` with:
|
|
|
146
160
|
```javascript
|
|
147
161
|
BridgeChat.init({
|
|
148
162
|
tenantId: 'your-tenant-uuid',
|
|
163
|
+
backendUrl: 'https://your-backend-api.com',
|
|
149
164
|
accessToken: 'optional-access-token',
|
|
150
165
|
cookies: {
|
|
151
166
|
cart_context: 'value-from-cookie'
|
package/bin/cli.js
CHANGED
|
@@ -21,32 +21,16 @@ const log = {
|
|
|
21
21
|
step: (msg) => console.log(`${colors.bold}🚀 ${msg}${colors.reset}`)
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
//
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* before initializing the chat widget.
|
|
35
|
-
*/
|
|
36
|
-
export const GET = async (request: NextRequest) => {
|
|
37
|
-
const cookies = request.cookies;
|
|
38
|
-
|
|
39
|
-
// Retrieve the secure cookies
|
|
40
|
-
// Note: cart-context is now retrieved from the URL query params in the client component
|
|
41
|
-
const identity = cookies.get(".AspNetCore.Identity.Application")?.value;
|
|
42
|
-
|
|
43
|
-
return NextResponse.json({
|
|
44
|
-
identity: identity || null,
|
|
45
|
-
// Optional: Include the raw cookie string if your backend needs it
|
|
46
|
-
raw: request.headers.get("cookie")
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
`;
|
|
24
|
+
// Read the API route content from the template file
|
|
25
|
+
const templatePath = path.join(__dirname, '..', 'templates', 'route.ts.template');
|
|
26
|
+
let apiRouteContent;
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
apiRouteContent = fs.readFileSync(templatePath, 'utf8');
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.error(`${colors.red}❌ Error reading template file: ${error.message}${colors.reset}`);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
50
34
|
|
|
51
35
|
function isNextJsProject(cwd) {
|
|
52
36
|
// Check for Next.js indicators
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatComponent.d.ts","sourceRoot":"","sources":["../../src/ChatComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,SAAS,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ChatComponent.d.ts","sourceRoot":"","sources":["../../src/ChatComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,SAAS,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4LtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -36,7 +36,7 @@ const react_1 = require("react");
|
|
|
36
36
|
*/
|
|
37
37
|
const ChatComponent = ({ tenantId, onAuthSuccess, onAuthError, bridgeAuthEndpoint = '/api/bridge-auth', containerId = 'bgc-chat-container',
|
|
38
38
|
// Widget configuration options
|
|
39
|
-
position = 'bottom-right', backgroundColor = '#6366f1', foregroundColor = '#ffffff', size = 'medium', borderWidth = 2, borderColor = '#4f46e5', autoPopup = false, widgetScriptUrl }) => {
|
|
39
|
+
position = 'bottom-right', backgroundColor = '#6366f1', foregroundColor = '#ffffff', size = 'medium', borderWidth = 2, borderColor = '#4f46e5', autoPopup = false, widgetScriptUrl, identity, cartContext }) => {
|
|
40
40
|
const [isInitialized, setIsInitialized] = (0, react_1.useState)(false);
|
|
41
41
|
const [error, setError] = (0, react_1.useState)(null);
|
|
42
42
|
const [scriptLoaded, setScriptLoaded] = (0, react_1.useState)(false);
|
|
@@ -75,17 +75,30 @@ position = 'bottom-right', backgroundColor = '#6366f1', foregroundColor = '#ffff
|
|
|
75
75
|
if (!scriptLoaded)
|
|
76
76
|
return;
|
|
77
77
|
try {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
let authData;
|
|
79
|
+
// 1. Determine Auth Data Source
|
|
80
|
+
if (identity || cartContext) {
|
|
81
|
+
// Direct props provided - bypass bridge route
|
|
82
|
+
console.log('[ecom-package] Using provided props for auth data');
|
|
83
|
+
authData = {
|
|
84
|
+
identity: identity || null,
|
|
85
|
+
cart_context: cartContext || null
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// 1. Call our local Next.js bridge route to get secure cookies
|
|
90
|
+
console.log('[ecom-package] Fetching bridge auth from:', bridgeAuthEndpoint);
|
|
91
|
+
const authRes = await fetch(bridgeAuthEndpoint, {
|
|
92
|
+
method: 'GET',
|
|
93
|
+
credentials: 'include', // Important: include cookies in the request
|
|
94
|
+
});
|
|
95
|
+
if (!authRes.ok) {
|
|
96
|
+
throw new Error(`Bridge auth failed: ${authRes.status} ${authRes.statusText}`);
|
|
97
|
+
}
|
|
98
|
+
authData = await authRes.json();
|
|
99
|
+
console.log('[ecom-package] Bridge auth response:', authData);
|
|
86
100
|
}
|
|
87
|
-
|
|
88
|
-
console.log('[ecom-package] Bridge auth response:', authData);
|
|
101
|
+
// 2. Wait for BridgeChat to be available (with timeout)
|
|
89
102
|
// 2. Wait for BridgeChat to be available (with timeout)
|
|
90
103
|
const waitForBridgeChat = () => {
|
|
91
104
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatComponent.js","sourceRoot":"","sources":["../../src/ChatComponent.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAAgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACI,MAAM,aAAa,GAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GAAG,kBAAkB,EACvC,WAAW,GAAG,oBAAoB;AAClC,+BAA+B;AAC/B,QAAQ,GAAG,cAAc,EACzB,eAAe,GAAG,SAAS,EAC3B,eAAe,GAAG,SAAS,EAC3B,IAAI,GAAG,QAAQ,EACf,WAAW,GAAG,CAAC,EACf,WAAW,GAAG,SAAS,EACvB,SAAS,GAAG,KAAK,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"ChatComponent.js","sourceRoot":"","sources":["../../src/ChatComponent.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAAgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACI,MAAM,aAAa,GAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GAAG,kBAAkB,EACvC,WAAW,GAAG,oBAAoB;AAClC,+BAA+B;AAC/B,QAAQ,GAAG,cAAc,EACzB,eAAe,GAAG,SAAS,EAC3B,eAAe,GAAG,SAAS,EAC3B,IAAI,GAAG,QAAQ,EACf,WAAW,GAAG,CAAC,EACf,WAAW,GAAG,SAAS,EACvB,SAAS,GAAG,KAAK,EACjB,eAAe,EACf,QAAQ,EACR,WAAW,EACd,EAAE,EAAE;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAExD,oDAAoD;IACpD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,6CAA6C;YAC7C,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;QACX,CAAC;QAED,iCAAiC;QACjC,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,eAAe,IAAI,CAAC,CAAC;QAClF,IAAI,cAAc,EAAE,CAAC;YACjB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;QACX,CAAC;QAED,8BAA8B;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,2CAA2C,eAAe,EAAE,CAAC,CAAC;YACpF,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,OAAO,GAAG,EAAE;YACR,+BAA+B;QACnC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QACpC,4BAA4B;QAC5B,IAAI,aAAa;YAAE,OAAO;QAC1B,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,IAAI,CAAC;YACD,IAAI,QAA4B,CAAC;YAEjC,gCAAgC;YAChC,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC1B,8CAA8C;gBAC9C,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;gBACjE,QAAQ,GAAG;oBACP,QAAQ,EAAE,QAAQ,IAAI,IAAI;oBAC1B,YAAY,EAAE,WAAW,IAAI,IAAI;iBACpC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,+DAA+D;gBAC/D,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,kBAAkB,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE;oBAC5C,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,SAAS,EAAE,4CAA4C;iBACvE,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnF,CAAC;gBAED,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YAED,wDAAwD;YAExD,wDAAwD;YACxD,MAAM,iBAAiB,GAAG,GAAkB,EAAE;gBAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACnC,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,qBAAqB;oBAE7C,MAAM,KAAK,GAAG,GAAG,EAAE;wBACf,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;4BACpB,OAAO,EAAE,CAAC;wBACd,CAAC;6BAAM,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;4BACjC,MAAM,CAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC;wBAC7F,CAAC;6BAAM,CAAC;4BACJ,QAAQ,EAAE,CAAC;4BACX,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBAC3B,CAAC;oBACL,CAAC,CAAC;oBAEF,KAAK,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,MAAM,iBAAiB,EAAE,CAAC;YAE1B,+DAA+D;YAC/D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpB,wFAAwF;gBACxF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9D,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBAEzE,0CAA0C;gBAC1C,MAAM,gBAAgB,GAAG,cAAc,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC;gBAEzE,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,gBAAgB,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEzH,MAAM,WAAW,GAAG;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE;wBACL,YAAY,EAAE,gBAAgB;qBACjC;oBACD,cAAc,EAAE,QAAQ,CAAC,QAAQ;oBACjC,SAAS,EAAE,WAAW;oBACtB,QAAQ,EAAE,QAAQ;oBAClB,eAAe,EAAE,eAAe;oBAChC,eAAe,EAAE,eAAe;oBAChC,IAAI,EAAE,IAAI;oBACV,WAAW,EAAE,WAAW;oBACxB,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,SAAS;iBACvB,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAE/F,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAEpC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACjG,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,EAAE;QACC,QAAQ;QACR,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,eAAe;QACf,eAAe;QACf,IAAI;QACJ,WAAW;QACX,WAAW;QACX,SAAS;QACT,aAAa;QACb,WAAW;KACd,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,QAAQ,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,yCAAyC;IACzC,8DAA8D;IAC9D,OAAO,CACH,gCACI,EAAE,EAAE,WAAW,oBACC,QAAQ,sBACN,aAAa,gBACnB,KAAK,EAAE,OAAO,EAC1B,KAAK,EAAE;QACH,8CAA8C;QAC9C,uCAAuC;SAC1C,GACH,CACL,CAAC;AACN,CAAC,CAAC;AA5LW,QAAA,aAAa,iBA4LxB;AAEF,kBAAe,qBAAa,CAAC"}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -39,6 +39,10 @@ export interface ChatComponentProps {
|
|
|
39
39
|
autoPopup?: boolean;
|
|
40
40
|
/** URL to the chat widget script (if not already loaded) */
|
|
41
41
|
widgetScriptUrl?: string;
|
|
42
|
+
/** Optional identity token to skip internal API call */
|
|
43
|
+
identity?: string;
|
|
44
|
+
/** Optional cart context token to skip internal API call */
|
|
45
|
+
cartContext?: string;
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* Response from the bridge-auth API route
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IAEjB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEvD,yDAAyD;IACzD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAErC,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,sCAAsC;IACtC,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ import { useEffect, useState, useCallback } from 'react';
|
|
|
33
33
|
*/
|
|
34
34
|
export const ChatComponent = ({ tenantId, onAuthSuccess, onAuthError, bridgeAuthEndpoint = '/api/bridge-auth', containerId = 'bgc-chat-container',
|
|
35
35
|
// Widget configuration options
|
|
36
|
-
position = 'bottom-right', backgroundColor = '#6366f1', foregroundColor = '#ffffff', size = 'medium', borderWidth = 2, borderColor = '#4f46e5', autoPopup = false, widgetScriptUrl }) => {
|
|
36
|
+
position = 'bottom-right', backgroundColor = '#6366f1', foregroundColor = '#ffffff', size = 'medium', borderWidth = 2, borderColor = '#4f46e5', autoPopup = false, widgetScriptUrl, identity, cartContext }) => {
|
|
37
37
|
const [isInitialized, setIsInitialized] = useState(false);
|
|
38
38
|
const [error, setError] = useState(null);
|
|
39
39
|
const [scriptLoaded, setScriptLoaded] = useState(false);
|
|
@@ -72,17 +72,30 @@ position = 'bottom-right', backgroundColor = '#6366f1', foregroundColor = '#ffff
|
|
|
72
72
|
if (!scriptLoaded)
|
|
73
73
|
return;
|
|
74
74
|
try {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
let authData;
|
|
76
|
+
// 1. Determine Auth Data Source
|
|
77
|
+
if (identity || cartContext) {
|
|
78
|
+
// Direct props provided - bypass bridge route
|
|
79
|
+
console.log('[ecom-package] Using provided props for auth data');
|
|
80
|
+
authData = {
|
|
81
|
+
identity: identity || null,
|
|
82
|
+
cart_context: cartContext || null
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// 1. Call our local Next.js bridge route to get secure cookies
|
|
87
|
+
console.log('[ecom-package] Fetching bridge auth from:', bridgeAuthEndpoint);
|
|
88
|
+
const authRes = await fetch(bridgeAuthEndpoint, {
|
|
89
|
+
method: 'GET',
|
|
90
|
+
credentials: 'include', // Important: include cookies in the request
|
|
91
|
+
});
|
|
92
|
+
if (!authRes.ok) {
|
|
93
|
+
throw new Error(`Bridge auth failed: ${authRes.status} ${authRes.statusText}`);
|
|
94
|
+
}
|
|
95
|
+
authData = await authRes.json();
|
|
96
|
+
console.log('[ecom-package] Bridge auth response:', authData);
|
|
83
97
|
}
|
|
84
|
-
|
|
85
|
-
console.log('[ecom-package] Bridge auth response:', authData);
|
|
98
|
+
// 2. Wait for BridgeChat to be available (with timeout)
|
|
86
99
|
// 2. Wait for BridgeChat to be available (with timeout)
|
|
87
100
|
const waitForBridgeChat = () => {
|
|
88
101
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatComponent.js","sourceRoot":"","sources":["../../src/ChatComponent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GAAG,kBAAkB,EACvC,WAAW,GAAG,oBAAoB;AAClC,+BAA+B;AAC/B,QAAQ,GAAG,cAAc,EACzB,eAAe,GAAG,SAAS,EAC3B,eAAe,GAAG,SAAS,EAC3B,IAAI,GAAG,QAAQ,EACf,WAAW,GAAG,CAAC,EACf,WAAW,GAAG,SAAS,EACvB,SAAS,GAAG,KAAK,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"ChatComponent.js","sourceRoot":"","sources":["../../src/ChatComponent.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bridge-ai-dev/ecom-chat",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Bridge E-commerce Chat widget integration for Next.js with Litium authentication",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -46,4 +46,4 @@
|
|
|
46
46
|
"type": "git",
|
|
47
47
|
"url": "https://github.com/bridge-ai/ecom-chat.git"
|
|
48
48
|
}
|
|
49
|
-
}
|
|
49
|
+
}
|