@capibox/bridge-nextjs-client 0.0.12 → 0.0.13

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/index.mjs CHANGED
@@ -19,198 +19,225 @@ var __async = (__this, __arguments, generator) => {
19
19
  });
20
20
  };
21
21
 
22
- // src/browser/mail/send-to-recipient.ts
23
- import { endpoint } from "@capibox/bridge-interface";
24
-
25
- // src/browser/_utils/browser-fetch-utils.ts
26
- var fetchJsonPostOptions = (data) => {
27
- return {
28
- method: "POST",
29
- body: JSON.stringify(data),
30
- headers: {
31
- "Content-Type": "application/json"
32
- }
33
- };
34
- };
22
+ // src/lib/api.ts
23
+ import createFetchClient from "openapi-fetch";
24
+ var endpoint = "/api-proxy";
25
+ var $apiClient = createFetchClient({
26
+ baseUrl: endpoint,
27
+ headers: {
28
+ authorization: "Frontend"
29
+ }
30
+ });
35
31
 
36
32
  // src/browser/mail/send-to-recipient.ts
37
33
  var sendToRecipient = (data) => __async(null, null, function* () {
38
- const res = yield fetch(
39
- endpoint.ENDPOINT_MAIL_SEND_TO_RECIPIENT,
40
- fetchJsonPostOptions(data)
34
+ const res = yield $apiClient.POST(
35
+ "/mail/send-to-recipient",
36
+ {
37
+ params: {
38
+ header: {
39
+ authorization: "Frontend"
40
+ }
41
+ },
42
+ body: data
43
+ }
41
44
  );
42
- return yield res.json();
45
+ if (!res.data) {
46
+ throw new Error(res.error);
47
+ }
48
+ return res.data;
43
49
  });
44
50
 
45
51
  // src/browser/mail/send-to-support.ts
46
- import { endpoint as endpoint2 } from "@capibox/bridge-interface";
47
52
  var sendToSupport = (data) => __async(null, null, function* () {
48
- const res = yield fetch(
49
- endpoint2.ENDPOINT_MAIL_SEND_TO_SUPPORT,
50
- fetchJsonPostOptions(data)
53
+ const res = yield $apiClient.POST(
54
+ "/mail/send-to-support",
55
+ {
56
+ params: {
57
+ header: {
58
+ authorization: "Frontend"
59
+ }
60
+ },
61
+ body: data
62
+ }
51
63
  );
52
- return yield res.json();
64
+ if (!res.data) {
65
+ throw new Error(res.error);
66
+ }
67
+ return res.data;
53
68
  });
54
69
 
55
70
  // src/browser/session/append.ts
56
- import { endpoint as endpoint3 } from "@capibox/bridge-interface";
57
- var append = (data) => __async(null, null, function* () {
58
- const res = yield fetch(
59
- endpoint3.ENDPOINT_SESSION_APPEND,
60
- fetchJsonPostOptions(data)
61
- );
62
- return yield res.json();
71
+ var append = () => __async(null, null, function* () {
63
72
  });
64
73
 
65
74
  // src/server/middleware.ts
66
- import { NextResponse } from "next/server";
67
- import { endpoint as endpoint5 } from "@capibox/bridge-interface";
75
+ import { NextResponse, userAgent } from "next/server";
68
76
 
69
- // src/server/_utils/server-fetch-utils.ts
70
- import { endpoint as endpoint4 } from "@capibox/bridge-interface";
71
- var serverProxyPostRequest = (req) => __async(null, null, function* () {
72
- const res = yield fetch(
73
- req.nextUrl.pathname.replace(
74
- endpoint4.MAIN_ENDPOINT,
75
- "https://api.capibox.com"
76
- ),
77
- {
78
- method: "POST",
79
- body: JSON.stringify(yield req.json()),
80
- headers: serverProxyHeaders()
81
- }
82
- );
83
- return yield res.json();
84
- });
85
- var serverProxyHeaders = () => {
86
- return {
87
- "Content-Type": "application/json",
88
- "Authorization": `${process.env.CAPIBOX_ENV}`.toLowerCase() === "prod" ? `${process.env.CAPIBOX_API_KEY}` : "dev"
77
+ // src/server/_utils/is.ts
78
+ var regexes = {
79
+ ipv4: /^(?:(?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/,
80
+ ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i
81
+ };
82
+ function not(func) {
83
+ return function() {
84
+ return !func.apply(null, Array.prototype.slice.call(arguments));
89
85
  };
86
+ }
87
+ function existy(value) {
88
+ return value != null;
89
+ }
90
+ function ip(value) {
91
+ return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);
92
+ }
93
+ function object(value) {
94
+ return Object(value) === value;
95
+ }
96
+ function string(value) {
97
+ return Object.prototype.toString.call(value) === "[object String]";
98
+ }
99
+ var is = {
100
+ existy,
101
+ ip,
102
+ object,
103
+ string,
104
+ not: {
105
+ existy: not(existy),
106
+ ip: not(ip),
107
+ object: not(object),
108
+ string: not(string)
109
+ }
90
110
  };
111
+ var is_default = is;
91
112
 
92
- // src/server/middleware.ts
93
- var middleware = (req) => __async(null, null, function* () {
94
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_MAIL_SEND_TO_RECIPIENT) {
95
- return NextResponse.json(yield serverProxyPostRequest(req));
96
- }
97
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_MAIL_SEND_TO_SUPPORT) {
98
- return NextResponse.json(yield serverProxyPostRequest(req));
99
- }
100
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_SESSION_CREATE) {
101
- return NextResponse.json(yield serverProxyPostRequest(req));
113
+ // src/server/_utils/client-ip.ts
114
+ function getClientIpFromXForwardedFor(value) {
115
+ if (!is_default.existy(value)) {
116
+ return null;
102
117
  }
103
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_SESSION_APPEND) {
104
- const jsonData = yield req.json();
105
- const proxyBody = {
106
- email: jsonData.email,
107
- language: jsonData.language,
108
- currency: jsonData.currency
109
- };
110
- const res = yield fetch(
111
- req.nextUrl.pathname.replace(
112
- endpoint5.MAIN_ENDPOINT,
113
- "https://api.capibox.com"
114
- ).replace("/append", `/${jsonData.uuid}`),
115
- {
116
- method: "PUT",
117
- body: JSON.stringify(proxyBody),
118
- headers: serverProxyHeaders()
118
+ const forwardedIps = value.split(",").map(function(e) {
119
+ const ip2 = e.trim();
120
+ if (ip2.includes(":")) {
121
+ const splitted = ip2.split(":");
122
+ if (splitted.length === 2) {
123
+ return splitted[0];
119
124
  }
120
- );
121
- return yield res.json();
125
+ }
126
+ return ip2;
127
+ });
128
+ for (let i = 0; i < forwardedIps.length; i++) {
129
+ if (is_default.ip(forwardedIps[i])) {
130
+ return forwardedIps[i];
131
+ }
122
132
  }
123
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_CRM_AUTH_SIGN_IN) {
124
- const res = yield fetch(
125
- "https://auth.crm.apidata.app/api/sign-in",
126
- {
127
- method: "POST",
128
- body: JSON.stringify(yield req.json()),
129
- headers: serverProxyHeaders()
130
- }
131
- );
132
- const resJson = yield res.json();
133
- const result = NextResponse.json(resJson);
134
- if (!!resJson.action && !!resJson.token && resJson.action === "logged-in") {
135
- result.cookies.set({
136
- name: "token",
137
- value: resJson.token,
138
- maxAge: 60 * 60 * 24 * 30,
139
- httpOnly: true
140
- });
133
+ return null;
134
+ }
135
+ function getClientIp(req) {
136
+ if (req.headers) {
137
+ if (is_default.ip(req.headers["x-client-ip"])) {
138
+ return req.headers["x-client-ip"];
139
+ }
140
+ const xForwardedFor = getClientIpFromXForwardedFor(req.headers["x-forwarded-for"]);
141
+ if (is_default.ip(req.headers["cf-connecting-ip"])) {
142
+ return req.headers["cf-connecting-ip"];
143
+ }
144
+ if (is_default.ip(req.headers["fastly-client-ip"])) {
145
+ return req.headers["fastly-client-ip"];
146
+ }
147
+ if (is_default.ip(req.headers["true-client-ip"])) {
148
+ return req.headers["true-client-ip"];
149
+ }
150
+ if (is_default.ip(req.headers["x-real-ip"])) {
151
+ return req.headers["x-real-ip"];
152
+ }
153
+ if (is_default.ip(req.headers["x-cluster-client-ip"])) {
154
+ return req.headers["x-cluster-client-ip"];
155
+ }
156
+ if (is_default.ip(req.headers["x-forwarded"])) {
157
+ return req.headers["x-forwarded"];
158
+ }
159
+ if (is_default.ip(req.headers["forwarded-for"])) {
160
+ return req.headers["forwarded-for"];
161
+ }
162
+ if (is_default.ip(xForwardedFor)) {
163
+ return xForwardedFor;
164
+ }
165
+ if (is_default.ip(req.headers.forwarded)) {
166
+ return req.headers.forwarded;
167
+ }
168
+ if (is_default.ip(req.headers["x-appengine-user-ip"])) {
169
+ return req.headers["x-appengine-user-ip"];
141
170
  }
142
- return result;
143
171
  }
144
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_CRM_AUTH_VERIFY) {
145
- const tokenCookie = req.cookies.get("token");
146
- if (!tokenCookie || !tokenCookie.value) {
147
- return NextResponse.json({ success: 0 });
172
+ if (is_default.existy(req.connection) && !!req.connection) {
173
+ if (is_default.ip(req.connection.remoteAddress)) {
174
+ return req.connection.remoteAddress;
148
175
  }
149
- const payload = {
150
- data: {
151
- token: tokenCookie.value
152
- }
153
- };
154
- const res = yield fetch(
155
- "https://auth.crm.apidata.app/api/check",
156
- {
157
- method: "POST",
158
- body: JSON.stringify(payload),
159
- headers: serverProxyHeaders()
160
- }
161
- );
162
- const resJson = yield res.json();
163
- const result = NextResponse.json(resJson);
164
- if (!("id" in resJson && resJson.id > 0)) {
165
- result.cookies.delete("token");
176
+ if (is_default.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is_default.ip(req.connection.socket.remoteAddress)) {
177
+ return req.connection.socket.remoteAddress;
166
178
  }
167
- return result;
168
179
  }
169
- if (req.nextUrl.pathname === endpoint5.ENDPOINT_CRM_AUTH_SIGN_OUT) {
170
- const res = NextResponse.json({ success: 1 });
171
- res.cookies.delete("token");
172
- return res;
180
+ if (is_default.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is_default.ip(req.socket.remoteAddress)) {
181
+ return req.socket.remoteAddress;
182
+ }
183
+ if (is_default.existy(req.info) && !!req.info && !!req.info.remoteAddress && is_default.ip(req.info.remoteAddress)) {
184
+ return req.info.remoteAddress;
185
+ }
186
+ if (is_default.existy(req.requestContext) && !!req.requestContext && is_default.existy(req.requestContext.identity) && !!req.requestContext.identity && !!req.requestContext.identity.sourceIp && is_default.ip(req.requestContext.identity.sourceIp)) {
187
+ return req.requestContext.identity.sourceIp;
188
+ }
189
+ if (req.headers) {
190
+ if (is_default.ip(req.headers["Cf-Pseudo-IPv4"])) {
191
+ return req.headers["Cf-Pseudo-IPv4"];
192
+ }
193
+ }
194
+ return "127.0.0.2";
195
+ }
196
+
197
+ // src/server/middleware.ts
198
+ var middleware = (req) => __async(null, null, function* () {
199
+ if (req.nextUrl.pathname.startsWith("/api-proxy")) {
200
+ let urlClone = req.nextUrl.clone();
201
+ const targetUrl = new URL(`${process.env.BACKEND_URL}`);
202
+ const requestHeaders = new Headers(req.headers);
203
+ requestHeaders.set("host", targetUrl.hostname);
204
+ requestHeaders.set("authorization", `${process.env.CAPIBOX_API_KEY}`);
205
+ if (req.nextUrl.pathname.includes("/realtime/")) {
206
+ const ip2 = getClientIp({ headers: Object.fromEntries(req.headers) });
207
+ const { device, browser: browser2, os } = userAgent(req);
208
+ requestHeaders.set("x-client-ip", ip2);
209
+ requestHeaders.set("x-os", `${os.name} / ${os.version}`);
210
+ requestHeaders.set("x-browser", `${browser2.name} / ${browser2.version}`);
211
+ requestHeaders.set("x-device", device.type ? device.type : "-");
212
+ const anUuidV3Cookie = req.cookies.get("an_uuid_v3");
213
+ if (anUuidV3Cookie) {
214
+ requestHeaders.set("x-realtime", anUuidV3Cookie == null ? void 0 : anUuidV3Cookie.value);
215
+ }
216
+ }
217
+ urlClone.protocol = targetUrl.protocol;
218
+ urlClone.hostname = targetUrl.hostname;
219
+ urlClone.port = targetUrl.port;
220
+ urlClone.pathname = urlClone.pathname.replace(/^\/api-proxy/, "");
221
+ return NextResponse.rewrite(urlClone, {
222
+ headers: requestHeaders
223
+ });
173
224
  }
174
225
  });
175
226
 
176
227
  // src/browser/session/create.ts
177
- import { endpoint as endpoint6 } from "@capibox/bridge-interface";
178
- var create = (data) => __async(null, null, function* () {
179
- const res = yield fetch(
180
- endpoint6.ENDPOINT_SESSION_CREATE,
181
- fetchJsonPostOptions(data)
182
- );
183
- return yield res.json();
228
+ var create = () => __async(null, null, function* () {
184
229
  });
185
230
 
186
231
  // src/browser/crm-auth/sign-in.ts
187
- import { endpoint as endpoint7 } from "@capibox/bridge-interface";
188
- var signIn = (data) => __async(null, null, function* () {
189
- const res = yield fetch(
190
- endpoint7.ENDPOINT_CRM_AUTH_SIGN_IN,
191
- fetchJsonPostOptions(data)
192
- );
193
- return yield res.json();
232
+ var signIn = () => __async(null, null, function* () {
194
233
  });
195
234
 
196
235
  // src/browser/crm-auth/sign-out.ts
197
- import { endpoint as endpoint8 } from "@capibox/bridge-interface";
198
236
  var signOut = () => __async(null, null, function* () {
199
- const res = yield fetch(
200
- endpoint8.ENDPOINT_CRM_AUTH_SIGN_OUT,
201
- fetchJsonPostOptions({})
202
- );
203
- return yield res.json();
204
237
  });
205
238
 
206
239
  // src/browser/crm-auth/veirfy.ts
207
- import { endpoint as endpoint9 } from "@capibox/bridge-interface";
208
240
  var verify = () => __async(null, null, function* () {
209
- const res = yield fetch(
210
- endpoint9.ENDPOINT_CRM_AUTH_VERIFY,
211
- fetchJsonPostOptions({})
212
- );
213
- return yield res.json();
214
241
  });
215
242
 
216
243
  // src/browser/hooks/useParamsLandingPage.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser/mail/send-to-recipient.ts","../src/browser/_utils/browser-fetch-utils.ts","../src/browser/mail/send-to-support.ts","../src/browser/session/append.ts","../src/server/middleware.ts","../src/server/_utils/server-fetch-utils.ts","../src/browser/session/create.ts","../src/browser/crm-auth/sign-in.ts","../src/browser/crm-auth/sign-out.ts","../src/browser/crm-auth/veirfy.ts","../src/browser/hooks/useParamsLandingPage.ts","../src/index.ts"],"sourcesContent":["import {dto, endpoint} from '@capibox/bridge-interface'\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const sendToRecipient = async (data: dto.SendMailRecipientDtoType): Promise<dto.SendMailResponseDtoType> => {\n const res = await fetch(\n endpoint.ENDPOINT_MAIL_SEND_TO_RECIPIENT,\n fetchJsonPostOptions(data)\n )\n return await res.json();\n}","export const fetchJsonPostOptions = (data: any) => {\n return {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n}","import {dto, endpoint} from '@capibox/bridge-interface'\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const sendToSupport = async (data: dto.SendMailSupportDtoType): Promise<dto.SendMailResponseDtoType> => {\n const res = await fetch(\n endpoint.ENDPOINT_MAIL_SEND_TO_SUPPORT,\n fetchJsonPostOptions(data)\n )\n return await res.json();\n}","import {dto, endpoint} from \"@capibox/bridge-interface\";\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const append = async (data: dto.AppendSessionDtoType): Promise<dto.SessionResponseDtoType> => {\n const res = await fetch(\n endpoint.ENDPOINT_SESSION_APPEND,\n fetchJsonPostOptions(data)\n )\n return await res.json();\n}","import {NextRequest, NextResponse} from \"next/server\";\nimport {dto, endpoint} from \"@capibox/bridge-interface\";\nimport {serverProxyHeaders, serverProxyPostRequest} from \"./_utils/server-fetch-utils\";\n\nexport const middleware = async (req: NextRequest) => {\n // mail\n if (req.nextUrl.pathname === endpoint.ENDPOINT_MAIL_SEND_TO_RECIPIENT) {\n return NextResponse.json(await serverProxyPostRequest(req));\n }\n if (req.nextUrl.pathname === endpoint.ENDPOINT_MAIL_SEND_TO_SUPPORT) {\n return NextResponse.json(await serverProxyPostRequest(req));\n }\n\n // session\n if (req.nextUrl.pathname === endpoint.ENDPOINT_SESSION_CREATE) {\n return NextResponse.json(await serverProxyPostRequest(req));\n }\n if (req.nextUrl.pathname === endpoint.ENDPOINT_SESSION_APPEND) {\n const jsonData: dto.AppendSessionBrowserPublicDtoType = await req.json();\n const proxyBody: dto.AppendSessionDtoType = {\n email: jsonData.email,\n language: jsonData.language,\n currency: jsonData.currency,\n };\n\n const res = await fetch(\n req.nextUrl.pathname.replace(\n endpoint.MAIN_ENDPOINT,\n 'https://api.capibox.com'\n ).replace('/append', `/${jsonData.uuid}`),\n {\n method: 'PUT',\n body: JSON.stringify(proxyBody),\n headers: serverProxyHeaders(),\n }\n )\n return await res.json();\n }\n\n // crm auth\n if (req.nextUrl.pathname === endpoint.ENDPOINT_CRM_AUTH_SIGN_IN) {\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/sign-in',\n {\n method: 'POST',\n body: JSON.stringify(await req.json()),\n headers: serverProxyHeaders(),\n }\n )\n const resJson: dto.SignInCrmResponseDtoType = await res.json();\n\n const result = NextResponse.json(resJson);\n if (!!resJson.action && !!resJson.token && resJson.action === 'logged-in') {\n result.cookies.set({\n name: \"token\",\n value: resJson.token,\n maxAge: 60 * 60 * 24 * 30,\n httpOnly: true,\n });\n }\n return result;\n }\n if (req.nextUrl.pathname === endpoint.ENDPOINT_CRM_AUTH_VERIFY) {\n const tokenCookie = req.cookies.get('token')\n if (!tokenCookie || !tokenCookie.value) {\n return NextResponse.json({success: 0})\n }\n\n const payload: dto.VerifyCrmUserDtoType = {\n data: {\n token: tokenCookie.value,\n }\n }\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/check',\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: serverProxyHeaders(),\n }\n )\n const resJson: dto.VerifyCrmResponseDtoType = await res.json();\n\n const result = NextResponse.json(resJson);\n if (!('id' in resJson && resJson.id > 0)) {\n result.cookies.delete(\"token\");\n }\n return result;\n }\n if (req.nextUrl.pathname === endpoint.ENDPOINT_CRM_AUTH_SIGN_OUT) {\n const res = NextResponse.json({success: 1});\n res.cookies.delete(\"token\");\n return res;\n }\n}","import {NextRequest} from \"next/server\";\nimport {endpoint} from \"@capibox/bridge-interface\";\n\nexport const serverProxyPostRequest = async (req: NextRequest) => {\n const res = await fetch(\n req.nextUrl.pathname.replace(\n endpoint.MAIN_ENDPOINT,\n 'https://api.capibox.com'\n ),\n {\n method: 'POST',\n body: JSON.stringify(await req.json()),\n headers: serverProxyHeaders(),\n }\n )\n return await res.json();\n}\n\nexport const serverProxyHeaders = () => {\n return {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_ENV}`.toLowerCase() === 'prod' ? `${process.env.CAPIBOX_API_KEY}` : 'dev'\n }\n}","import {dto, endpoint} from \"@capibox/bridge-interface\";\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const create = async (data: dto.CreateSessionBrowserPublicDtoType): Promise<dto.SessionResponseDtoType> => {\n const res = await fetch(\n endpoint.ENDPOINT_SESSION_CREATE,\n fetchJsonPostOptions(data)\n )\n return await res.json();\n}","import {dto, endpoint} from \"@capibox/bridge-interface\";\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const signIn = async (data: dto.SignInCrmUserDtoType): Promise<dto.SignInCrmResponseDtoType> => {\n const res = await fetch(\n endpoint.ENDPOINT_CRM_AUTH_SIGN_IN,\n fetchJsonPostOptions(data)\n )\n return await res.json();\n}","import {dto, endpoint} from \"@capibox/bridge-interface\";\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const signOut = async (): Promise<{ success: 1 }> => {\n const res = await fetch(\n endpoint.ENDPOINT_CRM_AUTH_SIGN_OUT,\n fetchJsonPostOptions({})\n )\n return await res.json();\n}","import {dto, endpoint} from \"@capibox/bridge-interface\";\nimport {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const verify = async (): Promise<dto.VerifyCrmResponseDtoType> => {\n const res = await fetch(\n endpoint.ENDPOINT_CRM_AUTH_VERIFY,\n fetchJsonPostOptions({})\n )\n return await res.json();\n}","import {useParams} from 'next/navigation'\n\nexport type ParamsLandingPage = {\n landing?: string\n checkout?: string\n}\nexport type ParamsLandingPageResponse = {\n landing: string\n checkout: string\n angle: string\n version: string\n path: {\n root: string\n rootPretty: string\n }\n}\n\nexport const useParamsLandingPage = (): ParamsLandingPageResponse => {\n const params = useParams<ParamsLandingPage>();\n\n const angle = (params.landing ?? 'main').toLowerCase()\n const version = (params.checkout ?? 'a').toLowerCase()\n\n return {\n landing: angle,\n checkout: version,\n angle,\n version,\n path: {\n root: `/${angle}/${version}`,\n rootPretty: angle === 'main' && version === 'a' ? '' : `/${angle}/${version}`\n }\n }\n}","import {sendToRecipient} from \"./browser/mail/send-to-recipient\";\nimport {sendToSupport} from \"./browser/mail/send-to-support\";\nimport { append } from \"./browser/session/append\";\nimport {middleware} from \"./server/middleware\";\nimport {create} from \"./browser/session/create\";\nimport {signIn} from \"./browser/crm-auth/sign-in\";\nimport {signOut} from \"./browser/crm-auth/sign-out\";\nimport {verify} from \"./browser/crm-auth/veirfy\";\nimport {useParamsLandingPage} from \"./browser/hooks/useParamsLandingPage\";\n\nconst browser = {\n mail: {\n sendToRecipient,\n sendToSupport,\n },\n session: {\n append,\n create,\n },\n crmAuth: {\n signIn,\n signOut,\n verify,\n },\n hooks: {\n useParamsLandingPage\n }\n}\n\nconst server = {\n middleware\n}\n\nexport {\n browser,\n server\n}\n// v.0.0.12"],"mappings":"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","names":["endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint","endpoint"]}
1
+ {"version":3,"sources":["../src/lib/api.ts","../src/browser/mail/send-to-recipient.ts","../src/browser/mail/send-to-support.ts","../src/browser/session/append.ts","../src/server/middleware.ts","../src/server/_utils/is.ts","../src/server/_utils/client-ip.ts","../src/browser/session/create.ts","../src/browser/crm-auth/sign-in.ts","../src/browser/crm-auth/sign-out.ts","../src/browser/crm-auth/veirfy.ts","../src/browser/hooks/useParamsLandingPage.ts","../src/index.ts"],"sourcesContent":["import createFetchClient from \"openapi-fetch\";\nimport createClient from \"openapi-react-query\";\nimport type {paths} from \"./api.def\";\n\nconst endpoint = '/api-proxy';\n\nexport const $apiClient = createFetchClient<paths>({\n baseUrl: endpoint,\n headers: {\n authorization: \"Frontend\"\n },\n});","import {components} from '../../lib/api.def'\nimport {$apiClient} from \"../../lib/api\";\n\nexport const sendToRecipient = async (data: components['schemas']['SendMailToRecipientDto']): Promise<components['schemas']['SendMailResponseDto']> => {\n const res = await $apiClient.POST(\n '/mail/send-to-recipient',\n {\n params: {\n header: {\n authorization: \"Frontend\"\n }\n },\n body: data,\n }\n )\n if (!res.data) {\n throw new Error(res.error)\n }\n return res.data;\n}","import {components} from '../../lib/api.def'\nimport {$apiClient} from \"../../lib/api\";\n\nexport const sendToSupport = async (data: components['schemas']['SendMailToSupportDto']): Promise<components['schemas']['SendMailResponseDto']> => {\n const res = await $apiClient.POST(\n '/mail/send-to-support',\n {\n params: {\n header: {\n authorization: \"Frontend\"\n }\n },\n body: data,\n }\n )\n if (!res.data) {\n throw new Error(res.error)\n }\n return res.data;\n}","import {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const append = async (): Promise<void> => {\n // const res = await fetch(\n // endpoint.ENDPOINT_SESSION_APPEND,\n // fetchJsonPostOptions(data)\n // )\n // return await res.json();\n}","import {NextRequest, NextResponse, userAgent} from \"next/server\";\nimport {getClientIp} from \"./_utils/client-ip\";\n\nexport const middleware = async (req: NextRequest) => {\n if (req.nextUrl.pathname.startsWith('/api-proxy')) {\n let urlClone = req.nextUrl.clone();\n\n const targetUrl = new URL(`${process.env.BACKEND_URL}`)\n const requestHeaders = new Headers(req.headers)\n requestHeaders.set('host', targetUrl.hostname)\n requestHeaders.set('authorization', `${process.env.CAPIBOX_API_KEY}`)\n\n if (req.nextUrl.pathname.includes('/realtime/')) {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {device, browser, os} = userAgent(req)\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-os', `${os.name} / ${os.version}`)\n requestHeaders.set('x-browser', `${browser.name} / ${browser.version}`)\n requestHeaders.set('x-device', device.type ? device.type : '-')\n const anUuidV3Cookie = req.cookies.get('an_uuid_v3');\n if (anUuidV3Cookie) {\n requestHeaders.set('x-realtime', anUuidV3Cookie?.value)\n }\n }\n\n urlClone.protocol = targetUrl.protocol\n urlClone.hostname = targetUrl.hostname\n urlClone.port = targetUrl.port\n urlClone.pathname = urlClone.pathname.replace(/^\\/api-proxy/, '');\n\n return NextResponse.rewrite(urlClone, {\n headers: requestHeaders,\n })\n }\n\n // // mail\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_MAIL_SEND_TO_RECIPIENT) {\n // return NextResponse.json(await serverProxyPostRequest(req));\n // }\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_MAIL_SEND_TO_SUPPORT) {\n // return NextResponse.json(await serverProxyPostRequest(req));\n // }\n //\n // // session\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_SESSION_CREATE) {\n // return NextResponse.json(await serverProxyPostRequest(req));\n // }\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_SESSION_APPEND) {\n // const jsonData: dto.AppendSessionBrowserPublicDtoType = await req.json();\n // const proxyBody: dto.AppendSessionDtoType = {\n // email: jsonData.email,\n // language: jsonData.language,\n // currency: jsonData.currency,\n // };\n //\n // const res = await fetch(\n // req.nextUrl.pathname.replace(\n // endpoint.MAIN_ENDPOINT,\n // 'https://api.capibox.com'\n // ).replace('/append', `/${jsonData.uuid}`),\n // {\n // method: 'PUT',\n // body: JSON.stringify(proxyBody),\n // headers: serverProxyHeaders(),\n // }\n // )\n // return await res.json();\n // }\n //\n // // crm auth\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_CRM_AUTH_SIGN_IN) {\n // const res = await fetch(\n // 'https://auth.crm.apidata.app/api/sign-in',\n // {\n // method: 'POST',\n // body: JSON.stringify(await req.json()),\n // headers: serverProxyHeaders(),\n // }\n // )\n // const resJson: dto.SignInCrmResponseDtoType = await res.json();\n //\n // const result = NextResponse.json(resJson);\n // if (!!resJson.action && !!resJson.token && resJson.action === 'logged-in') {\n // result.cookies.set({\n // name: \"token\",\n // value: resJson.token,\n // maxAge: 60 * 60 * 24 * 30,\n // httpOnly: true,\n // });\n // }\n // return result;\n // }\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_CRM_AUTH_VERIFY) {\n // const tokenCookie = req.cookies.get('token')\n // if (!tokenCookie || !tokenCookie.value) {\n // return NextResponse.json({success: 0})\n // }\n //\n // const payload: dto.VerifyCrmUserDtoType = {\n // data: {\n // token: tokenCookie.value,\n // }\n // }\n // const res = await fetch(\n // 'https://auth.crm.apidata.app/api/check',\n // {\n // method: 'POST',\n // body: JSON.stringify(payload),\n // headers: serverProxyHeaders(),\n // }\n // )\n // const resJson: dto.VerifyCrmResponseDtoType = await res.json();\n //\n // const result = NextResponse.json(resJson);\n // if (!('id' in resJson && resJson.id > 0)) {\n // result.cookies.delete(\"token\");\n // }\n // return result;\n // }\n // if (req.nextUrl.pathname === endpoint.ENDPOINT_CRM_AUTH_SIGN_OUT) {\n // const res = NextResponse.json({success: 1});\n // res.cookies.delete(\"token\");\n // return res;\n // }\n}","\"use strict\";\n\nconst regexes = {\n ipv4: /^(?:(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$/,\n ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i\n};\n\nfunction not(func: any) {\n return function () {\n return !func.apply(null, Array.prototype.slice.call(arguments));\n };\n}\n\nfunction existy(value: any) {\n return value != null;\n}\n\nfunction ip(value: any) {\n return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);\n}\n\nfunction object(value: any) {\n return Object(value) === value;\n}\n\nfunction string(value: any) {\n return Object.prototype.toString.call(value) === '[object String]';\n}\n\nconst is = {\n existy: existy,\n ip: ip,\n object: object,\n string: string,\n not: {\n existy: not(existy),\n ip: not(ip),\n object: not(object),\n string: not(string)\n }\n};\nexport default is;\n","import is from \"./is\";\n\nfunction getClientIpFromXForwardedFor(value: any) {\n if (!is.existy(value)) {\n return null;\n }\n\n const forwardedIps = value.split(',').map(function (e: string) {\n const ip = e.trim();\n\n if (ip.includes(':')) {\n const splitted = ip.split(':');\n if (splitted.length === 2) {\n return splitted[0];\n }\n }\n return ip;\n });\n\n for (let i = 0; i < forwardedIps.length; i++) {\n if (is.ip(forwardedIps[i])) {\n return forwardedIps[i];\n }\n }\n\n return null;\n}\n\nexport function getClientIp(req: {\n headers?: {\n [key: string]: string\n },\n connection?: {\n remoteAddress?: string,\n socket?: {\n remoteAddress?: string,\n },\n },\n socket?: {\n remoteAddress?: string,\n },\n info?: {\n remoteAddress?: string,\n },\n requestContext?: {\n identity?: {\n sourceIp?: string,\n }\n },\n}) {\n if (req.headers) {\n if (is.ip(req.headers['x-client-ip'])) {\n return req.headers['x-client-ip'];\n }\n\n const xForwardedFor = getClientIpFromXForwardedFor(req.headers['x-forwarded-for']);\n\n if (is.ip(req.headers['cf-connecting-ip'])) {\n return req.headers['cf-connecting-ip'];\n }\n\n if (is.ip(req.headers['fastly-client-ip'])) {\n return req.headers['fastly-client-ip'];\n }\n\n if (is.ip(req.headers['true-client-ip'])) {\n return req.headers['true-client-ip'];\n }\n\n if (is.ip(req.headers['x-real-ip'])) {\n return req.headers['x-real-ip'];\n }\n\n if (is.ip(req.headers['x-cluster-client-ip'])) {\n return req.headers['x-cluster-client-ip'];\n }\n\n if (is.ip(req.headers['x-forwarded'])) {\n return req.headers['x-forwarded'];\n }\n\n if (is.ip(req.headers['forwarded-for'])) {\n return req.headers['forwarded-for'];\n }\n\n if (is.ip(xForwardedFor)) {\n return xForwardedFor;\n }\n\n if (is.ip(req.headers.forwarded)) {\n return req.headers.forwarded;\n }\n\n if (is.ip(req.headers['x-appengine-user-ip'])) {\n return req.headers['x-appengine-user-ip'];\n }\n }\n\n if (is.existy(req.connection) && !!req.connection) {\n if (is.ip(req.connection.remoteAddress)) {\n return req.connection.remoteAddress;\n }\n\n if (is.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is.ip(req.connection.socket.remoteAddress)) {\n return req.connection.socket.remoteAddress;\n }\n }\n\n if (is.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is.ip(req.socket.remoteAddress)) {\n return req.socket.remoteAddress;\n }\n\n if (is.existy(req.info) && !!req.info && !!req.info.remoteAddress && is.ip(req.info.remoteAddress)) {\n return req.info.remoteAddress;\n }\n\n if (is.existy(req.requestContext) && !!req.requestContext && is.existy(req.requestContext.identity) && !!req.requestContext.identity && !!req.requestContext.identity.sourceIp && is.ip(req.requestContext.identity.sourceIp)) {\n return req.requestContext.identity.sourceIp;\n }\n\n if (req.headers) {\n if (is.ip(req.headers['Cf-Pseudo-IPv4'])) {\n return req.headers['Cf-Pseudo-IPv4'];\n }\n }\n\n return \"127.0.0.2\";\n}\n\n","// import {dto, endpoint} from \"@capibox/bridge-interface\";\n// import {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n\nexport const create = async (): Promise<void> => {\n // const res = await fetch(\n // endpoint.ENDPOINT_SESSION_CREATE,\n // fetchJsonPostOptions(data)\n // )\n // return await res.json();\n}","// import {dto, endpoint} from \"@capibox/bridge-interface\";\n// import {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n//\n// export const signIn = async (data: dto.SignInCrmUserDtoType): Promise<dto.SignInCrmResponseDtoType> => {\n// const res = await fetch(\n// endpoint.ENDPOINT_CRM_AUTH_SIGN_IN,\n// fetchJsonPostOptions(data)\n// )\n// return await res.json();\n// }\nexport const signIn = async (): Promise<void> => {}","// import {dto, endpoint} from \"@capibox/bridge-interface\";\n// import {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n//\n// export const signOut = async (): Promise<{ success: 1 }> => {\n// const res = await fetch(\n// endpoint.ENDPOINT_CRM_AUTH_SIGN_OUT,\n// fetchJsonPostOptions({})\n// )\n// return await res.json();\n// }\n\nexport const signOut = async (): Promise<void> => {}","// import {dto, endpoint} from \"@capibox/bridge-interface\";\n// import {fetchJsonPostOptions} from \"../_utils/browser-fetch-utils\";\n//\n// export const verify = async (): Promise<dto.VerifyCrmResponseDtoType> => {\n// const res = await fetch(\n// endpoint.ENDPOINT_CRM_AUTH_VERIFY,\n// fetchJsonPostOptions({})\n// )\n// return await res.json();\n// }\n\nexport const verify = async (): Promise<void> => {}","import {useParams} from 'next/navigation'\n\nexport type ParamsLandingPage = {\n landing?: string\n checkout?: string\n}\nexport type ParamsLandingPageResponse = {\n landing: string\n checkout: string\n angle: string\n version: string\n path: {\n root: string\n rootPretty: string\n }\n}\n\nexport const useParamsLandingPage = (): ParamsLandingPageResponse => {\n const params = useParams<ParamsLandingPage>();\n\n const angle = (params.landing ?? 'main').toLowerCase()\n const version = (params.checkout ?? 'a').toLowerCase()\n\n return {\n landing: angle,\n checkout: version,\n angle,\n version,\n path: {\n root: `/${angle}/${version}`,\n rootPretty: angle === 'main' && version === 'a' ? '' : `/${angle}/${version}`\n }\n }\n}","import {sendToRecipient} from \"./browser/mail/send-to-recipient\";\nimport {sendToSupport} from \"./browser/mail/send-to-support\";\nimport {append} from \"./browser/session/append\";\nimport {middleware} from \"./server/middleware\";\nimport {create} from \"./browser/session/create\";\nimport {signIn} from \"./browser/crm-auth/sign-in\";\nimport {signOut} from \"./browser/crm-auth/sign-out\";\nimport {verify} from \"./browser/crm-auth/veirfy\";\nimport {useParamsLandingPage} from \"./browser/hooks/useParamsLandingPage\";\n\nconst browser = {\n mail: {\n sendToRecipient,\n sendToSupport,\n },\n session: {\n append,\n create,\n },\n crmAuth: {\n signIn,\n signOut,\n verify,\n },\n hooks: {\n useParamsLandingPage\n }\n}\n\nconst server = {\n middleware\n}\n\nexport {\n browser,\n server\n}\n// v.0.0.12"],"mappings":"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","names":["ip","ip","browser"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capibox/bridge-nextjs-client",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -16,14 +16,16 @@
16
16
  "author": "",
17
17
  "license": "ISC",
18
18
  "devDependencies": {
19
+ "openapi-typescript": "^7.8.0",
19
20
  "ts-node": "^10.9.2",
20
21
  "tsup": "^8.0.2",
21
- "typescript": "^5.4.2"
22
+ "typescript": "^5.8.3"
22
23
  },
23
24
  "dependencies": {
24
- "@capibox/bridge-interface": "^0.0.38",
25
25
  "@nestjs/swagger": "^11.2.0",
26
26
  "class-validator": "^0.14.2",
27
+ "openapi-fetch": "^0.14.0",
28
+ "openapi-react-query": "^0.5.0",
27
29
  "zod": "^3.24.1"
28
30
  },
29
31
  "peerDependencies": {