@capibox/bridge-nextjs-client 0.0.11 → 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.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var __async = (__this, __arguments, generator) => {
20
30
  return new Promise((resolve, reject) => {
@@ -45,200 +55,246 @@ __export(index_exports, {
45
55
  });
46
56
  module.exports = __toCommonJS(index_exports);
47
57
 
48
- // src/browser/mail/send-to-recipient.ts
49
- var import_bridge_interface = require("@capibox/bridge-interface");
50
-
51
- // src/browser/_utils/browser-fetch-utils.ts
52
- var fetchJsonPostOptions = (data) => {
53
- return {
54
- method: "POST",
55
- body: JSON.stringify(data),
56
- headers: {
57
- "Content-Type": "application/json"
58
- }
59
- };
60
- };
58
+ // src/lib/api.ts
59
+ var import_openapi_fetch = __toESM(require("openapi-fetch"));
60
+ var endpoint = "/api-proxy";
61
+ var $apiClient = (0, import_openapi_fetch.default)({
62
+ baseUrl: endpoint,
63
+ headers: {
64
+ authorization: "Frontend"
65
+ }
66
+ });
61
67
 
62
68
  // src/browser/mail/send-to-recipient.ts
63
69
  var sendToRecipient = (data) => __async(null, null, function* () {
64
- const res = yield fetch(
65
- import_bridge_interface.endpoint.ENDPOINT_MAIL_SEND_TO_RECIPIENT,
66
- fetchJsonPostOptions(data)
70
+ const res = yield $apiClient.POST(
71
+ "/mail/send-to-recipient",
72
+ {
73
+ params: {
74
+ header: {
75
+ authorization: "Frontend"
76
+ }
77
+ },
78
+ body: data
79
+ }
67
80
  );
68
- return yield res.json();
81
+ if (!res.data) {
82
+ throw new Error(res.error);
83
+ }
84
+ return res.data;
69
85
  });
70
86
 
71
87
  // src/browser/mail/send-to-support.ts
72
- var import_bridge_interface2 = require("@capibox/bridge-interface");
73
88
  var sendToSupport = (data) => __async(null, null, function* () {
74
- const res = yield fetch(
75
- import_bridge_interface2.endpoint.ENDPOINT_MAIL_SEND_TO_SUPPORT,
76
- fetchJsonPostOptions(data)
89
+ const res = yield $apiClient.POST(
90
+ "/mail/send-to-support",
91
+ {
92
+ params: {
93
+ header: {
94
+ authorization: "Frontend"
95
+ }
96
+ },
97
+ body: data
98
+ }
77
99
  );
78
- return yield res.json();
100
+ if (!res.data) {
101
+ throw new Error(res.error);
102
+ }
103
+ return res.data;
79
104
  });
80
105
 
81
106
  // src/browser/session/append.ts
82
- var import_bridge_interface3 = require("@capibox/bridge-interface");
83
- var append = (data) => __async(null, null, function* () {
84
- const res = yield fetch(
85
- import_bridge_interface3.endpoint.ENDPOINT_SESSION_APPEND,
86
- fetchJsonPostOptions(data)
87
- );
88
- return yield res.json();
107
+ var append = () => __async(null, null, function* () {
89
108
  });
90
109
 
91
110
  // src/server/middleware.ts
92
111
  var import_server = require("next/server");
93
- var import_bridge_interface5 = require("@capibox/bridge-interface");
94
112
 
95
- // src/server/_utils/server-fetch-utils.ts
96
- var import_bridge_interface4 = require("@capibox/bridge-interface");
97
- var serverProxyPostRequest = (req) => __async(null, null, function* () {
98
- const res = yield fetch(
99
- req.nextUrl.pathname.replace(
100
- import_bridge_interface4.endpoint.MAIN_ENDPOINT,
101
- "https://api.capibox.com"
102
- ),
103
- {
104
- method: "POST",
105
- body: JSON.stringify(yield req.json()),
106
- headers: serverProxyHeaders()
107
- }
108
- );
109
- return yield res.json();
110
- });
111
- var serverProxyHeaders = () => {
112
- return {
113
- "Content-Type": "application/json",
114
- "Authorization": `${process.env.CAPIBOX_ENV}`.toLowerCase() === "prod" ? `${process.env.CAPIBOX_API_KEY}` : "dev"
113
+ // src/server/_utils/is.ts
114
+ var regexes = {
115
+ 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])$/,
116
+ 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
117
+ };
118
+ function not(func) {
119
+ return function() {
120
+ return !func.apply(null, Array.prototype.slice.call(arguments));
115
121
  };
122
+ }
123
+ function existy(value) {
124
+ return value != null;
125
+ }
126
+ function ip(value) {
127
+ return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);
128
+ }
129
+ function object(value) {
130
+ return Object(value) === value;
131
+ }
132
+ function string(value) {
133
+ return Object.prototype.toString.call(value) === "[object String]";
134
+ }
135
+ var is = {
136
+ existy,
137
+ ip,
138
+ object,
139
+ string,
140
+ not: {
141
+ existy: not(existy),
142
+ ip: not(ip),
143
+ object: not(object),
144
+ string: not(string)
145
+ }
116
146
  };
147
+ var is_default = is;
117
148
 
118
- // src/server/middleware.ts
119
- var middleware = (req) => __async(null, null, function* () {
120
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_MAIL_SEND_TO_RECIPIENT) {
121
- return import_server.NextResponse.json(yield serverProxyPostRequest(req));
149
+ // src/server/_utils/client-ip.ts
150
+ function getClientIpFromXForwardedFor(value) {
151
+ if (!is_default.existy(value)) {
152
+ return null;
122
153
  }
123
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_MAIL_SEND_TO_SUPPORT) {
124
- return import_server.NextResponse.json(yield serverProxyPostRequest(req));
125
- }
126
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_SESSION_CREATE) {
127
- return import_server.NextResponse.json(yield serverProxyPostRequest(req));
128
- }
129
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_SESSION_APPEND) {
130
- const jsonData = yield req.json();
131
- const proxyBody = {
132
- email: jsonData.email,
133
- language: jsonData.language,
134
- currency: jsonData.currency
135
- };
136
- const res = yield fetch(
137
- req.nextUrl.pathname.replace(
138
- import_bridge_interface5.endpoint.MAIN_ENDPOINT,
139
- "https://api.capibox.com"
140
- ).replace("/append", `/${jsonData.uuid}`),
141
- {
142
- method: "PUT",
143
- body: JSON.stringify(proxyBody),
144
- headers: serverProxyHeaders()
154
+ const forwardedIps = value.split(",").map(function(e) {
155
+ const ip2 = e.trim();
156
+ if (ip2.includes(":")) {
157
+ const splitted = ip2.split(":");
158
+ if (splitted.length === 2) {
159
+ return splitted[0];
145
160
  }
146
- );
147
- return yield res.json();
161
+ }
162
+ return ip2;
163
+ });
164
+ for (let i = 0; i < forwardedIps.length; i++) {
165
+ if (is_default.ip(forwardedIps[i])) {
166
+ return forwardedIps[i];
167
+ }
148
168
  }
149
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_CRM_AUTH_SIGN_IN) {
150
- const res = yield fetch(
151
- "https://auth.crm.apidata.app/api/sign-in",
152
- {
153
- method: "POST",
154
- body: JSON.stringify(yield req.json()),
155
- headers: serverProxyHeaders()
156
- }
157
- );
158
- const resJson = yield res.json();
159
- const result = import_server.NextResponse.json(resJson);
160
- if (!!resJson.action && !!resJson.token && resJson.action === "logged-in") {
161
- result.cookies.set({
162
- name: "token",
163
- value: resJson.token,
164
- maxAge: 60 * 60 * 24 * 30,
165
- httpOnly: true
166
- });
169
+ return null;
170
+ }
171
+ function getClientIp(req) {
172
+ if (req.headers) {
173
+ if (is_default.ip(req.headers["x-client-ip"])) {
174
+ return req.headers["x-client-ip"];
175
+ }
176
+ const xForwardedFor = getClientIpFromXForwardedFor(req.headers["x-forwarded-for"]);
177
+ if (is_default.ip(req.headers["cf-connecting-ip"])) {
178
+ return req.headers["cf-connecting-ip"];
179
+ }
180
+ if (is_default.ip(req.headers["fastly-client-ip"])) {
181
+ return req.headers["fastly-client-ip"];
182
+ }
183
+ if (is_default.ip(req.headers["true-client-ip"])) {
184
+ return req.headers["true-client-ip"];
185
+ }
186
+ if (is_default.ip(req.headers["x-real-ip"])) {
187
+ return req.headers["x-real-ip"];
188
+ }
189
+ if (is_default.ip(req.headers["x-cluster-client-ip"])) {
190
+ return req.headers["x-cluster-client-ip"];
191
+ }
192
+ if (is_default.ip(req.headers["x-forwarded"])) {
193
+ return req.headers["x-forwarded"];
194
+ }
195
+ if (is_default.ip(req.headers["forwarded-for"])) {
196
+ return req.headers["forwarded-for"];
197
+ }
198
+ if (is_default.ip(xForwardedFor)) {
199
+ return xForwardedFor;
200
+ }
201
+ if (is_default.ip(req.headers.forwarded)) {
202
+ return req.headers.forwarded;
203
+ }
204
+ if (is_default.ip(req.headers["x-appengine-user-ip"])) {
205
+ return req.headers["x-appengine-user-ip"];
167
206
  }
168
- return result;
169
207
  }
170
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_CRM_AUTH_VERIFY) {
171
- const tokenCookie = req.cookies.get("token");
172
- if (!tokenCookie || !tokenCookie.value) {
173
- return import_server.NextResponse.json({ success: 0 });
208
+ if (is_default.existy(req.connection) && !!req.connection) {
209
+ if (is_default.ip(req.connection.remoteAddress)) {
210
+ return req.connection.remoteAddress;
174
211
  }
175
- const payload = {
176
- data: {
177
- token: tokenCookie.value
178
- }
179
- };
180
- const res = yield fetch(
181
- "https://auth.crm.apidata.app/api/check",
182
- {
183
- method: "POST",
184
- body: JSON.stringify(payload),
185
- headers: serverProxyHeaders()
186
- }
187
- );
188
- const resJson = yield res.json();
189
- const result = import_server.NextResponse.json(resJson);
190
- if (!("id" in resJson && resJson.id > 0)) {
191
- result.cookies.delete("token");
212
+ if (is_default.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is_default.ip(req.connection.socket.remoteAddress)) {
213
+ return req.connection.socket.remoteAddress;
214
+ }
215
+ }
216
+ if (is_default.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is_default.ip(req.socket.remoteAddress)) {
217
+ return req.socket.remoteAddress;
218
+ }
219
+ if (is_default.existy(req.info) && !!req.info && !!req.info.remoteAddress && is_default.ip(req.info.remoteAddress)) {
220
+ return req.info.remoteAddress;
221
+ }
222
+ 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)) {
223
+ return req.requestContext.identity.sourceIp;
224
+ }
225
+ if (req.headers) {
226
+ if (is_default.ip(req.headers["Cf-Pseudo-IPv4"])) {
227
+ return req.headers["Cf-Pseudo-IPv4"];
192
228
  }
193
- return result;
194
229
  }
195
- if (req.nextUrl.pathname === import_bridge_interface5.endpoint.ENDPOINT_CRM_AUTH_SIGN_OUT) {
196
- const res = import_server.NextResponse.json({ success: 1 });
197
- res.cookies.delete("token");
198
- return res;
230
+ return "127.0.0.2";
231
+ }
232
+
233
+ // src/server/middleware.ts
234
+ var middleware = (req) => __async(null, null, function* () {
235
+ if (req.nextUrl.pathname.startsWith("/api-proxy")) {
236
+ let urlClone = req.nextUrl.clone();
237
+ const targetUrl = new URL(`${process.env.BACKEND_URL}`);
238
+ const requestHeaders = new Headers(req.headers);
239
+ requestHeaders.set("host", targetUrl.hostname);
240
+ requestHeaders.set("authorization", `${process.env.CAPIBOX_API_KEY}`);
241
+ if (req.nextUrl.pathname.includes("/realtime/")) {
242
+ const ip2 = getClientIp({ headers: Object.fromEntries(req.headers) });
243
+ const { device, browser: browser2, os } = (0, import_server.userAgent)(req);
244
+ requestHeaders.set("x-client-ip", ip2);
245
+ requestHeaders.set("x-os", `${os.name} / ${os.version}`);
246
+ requestHeaders.set("x-browser", `${browser2.name} / ${browser2.version}`);
247
+ requestHeaders.set("x-device", device.type ? device.type : "-");
248
+ const anUuidV3Cookie = req.cookies.get("an_uuid_v3");
249
+ if (anUuidV3Cookie) {
250
+ requestHeaders.set("x-realtime", anUuidV3Cookie == null ? void 0 : anUuidV3Cookie.value);
251
+ }
252
+ }
253
+ urlClone.protocol = targetUrl.protocol;
254
+ urlClone.hostname = targetUrl.hostname;
255
+ urlClone.port = targetUrl.port;
256
+ urlClone.pathname = urlClone.pathname.replace(/^\/api-proxy/, "");
257
+ return import_server.NextResponse.rewrite(urlClone, {
258
+ headers: requestHeaders
259
+ });
199
260
  }
200
261
  });
201
262
 
202
263
  // src/browser/session/create.ts
203
- var import_bridge_interface6 = require("@capibox/bridge-interface");
204
- var create = (data) => __async(null, null, function* () {
205
- const res = yield fetch(
206
- import_bridge_interface6.endpoint.ENDPOINT_SESSION_CREATE,
207
- fetchJsonPostOptions(data)
208
- );
209
- return yield res.json();
264
+ var create = () => __async(null, null, function* () {
210
265
  });
211
266
 
212
267
  // src/browser/crm-auth/sign-in.ts
213
- var import_bridge_interface7 = require("@capibox/bridge-interface");
214
- var signIn = (data) => __async(null, null, function* () {
215
- const res = yield fetch(
216
- import_bridge_interface7.endpoint.ENDPOINT_CRM_AUTH_SIGN_IN,
217
- fetchJsonPostOptions(data)
218
- );
219
- return yield res.json();
268
+ var signIn = () => __async(null, null, function* () {
220
269
  });
221
270
 
222
271
  // src/browser/crm-auth/sign-out.ts
223
- var import_bridge_interface8 = require("@capibox/bridge-interface");
224
272
  var signOut = () => __async(null, null, function* () {
225
- const res = yield fetch(
226
- import_bridge_interface8.endpoint.ENDPOINT_CRM_AUTH_SIGN_OUT,
227
- fetchJsonPostOptions({})
228
- );
229
- return yield res.json();
230
273
  });
231
274
 
232
275
  // src/browser/crm-auth/veirfy.ts
233
- var import_bridge_interface9 = require("@capibox/bridge-interface");
234
276
  var verify = () => __async(null, null, function* () {
235
- const res = yield fetch(
236
- import_bridge_interface9.endpoint.ENDPOINT_CRM_AUTH_VERIFY,
237
- fetchJsonPostOptions({})
238
- );
239
- return yield res.json();
240
277
  });
241
278
 
279
+ // src/browser/hooks/useParamsLandingPage.ts
280
+ var import_navigation = require("next/navigation");
281
+ var useParamsLandingPage = () => {
282
+ var _a, _b;
283
+ const params = (0, import_navigation.useParams)();
284
+ const angle = ((_a = params.landing) != null ? _a : "main").toLowerCase();
285
+ const version = ((_b = params.checkout) != null ? _b : "a").toLowerCase();
286
+ return {
287
+ landing: angle,
288
+ checkout: version,
289
+ angle,
290
+ version,
291
+ path: {
292
+ root: `/${angle}/${version}`,
293
+ rootPretty: angle === "main" && version === "a" ? "" : `/${angle}/${version}`
294
+ }
295
+ };
296
+ };
297
+
242
298
  // src/index.ts
243
299
  var browser = {
244
300
  mail: {
@@ -253,6 +309,9 @@ var browser = {
253
309
  signIn,
254
310
  signOut,
255
311
  verify
312
+ },
313
+ hooks: {
314
+ useParamsLandingPage
256
315
  }
257
316
  };
258
317
  var server = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../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"],"sourcesContent":["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\";\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}\n\nconst server = {\n middleware\n}\n\nexport {\n browser,\n server\n}\n// v.0.0.11","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}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,8BAA4B;;;ACArB,IAAM,uBAAuB,CAAC,SAAc;AAC/C,SAAO;AAAA,IACH,QAAQ;AAAA,IACR,MAAM,KAAK,UAAU,IAAI;AAAA,IACzB,SAAS;AAAA,MACL,gBAAgB;AAAA,IACpB;AAAA,EACJ;AACJ;;;ADLO,IAAM,kBAAkB,CAAO,SAA6E;AAC/G,QAAM,MAAM,MAAM;AAAA,IACd,iCAAS;AAAA,IACT,qBAAqB,IAAI;AAAA,EAC7B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;AETA,IAAAA,2BAA4B;AAGrB,IAAM,gBAAgB,CAAO,SAA2E;AAC3G,QAAM,MAAM,MAAM;AAAA,IACd,kCAAS;AAAA,IACT,qBAAqB,IAAI;AAAA,EAC7B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;ACTA,IAAAC,2BAA4B;AAGrB,IAAM,SAAS,CAAO,SAAwE;AACjG,QAAM,MAAM,MAAM;AAAA,IACd,kCAAS;AAAA,IACT,qBAAqB,IAAI;AAAA,EAC7B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;ACTA,oBAAwC;AACxC,IAAAC,2BAA4B;;;ACA5B,IAAAC,2BAAuB;AAEhB,IAAM,yBAAyB,CAAO,QAAqB;AAC9D,QAAM,MAAM,MAAM;AAAA,IACd,IAAI,QAAQ,SAAS;AAAA,MACjB,kCAAS;AAAA,MACT;AAAA,IACJ;AAAA,IACA;AAAA,MACI,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM,IAAI,KAAK,CAAC;AAAA,MACrC,SAAS,mBAAmB;AAAA,IAChC;AAAA,EACJ;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;AAEO,IAAM,qBAAqB,MAAM;AACpC,SAAO;AAAA,IACH,gBAAgB;AAAA,IAChB,iBAAiB,GAAG,QAAQ,IAAI,WAAW,GAAG,YAAY,MAAM,SAAS,GAAG,QAAQ,IAAI,eAAe,KAAK;AAAA,EAChH;AACJ;;;ADnBO,IAAM,aAAa,CAAO,QAAqB;AAElD,MAAI,IAAI,QAAQ,aAAa,kCAAS,iCAAiC;AACnE,WAAO,2BAAa,KAAK,MAAM,uBAAuB,GAAG,CAAC;AAAA,EAC9D;AACA,MAAI,IAAI,QAAQ,aAAa,kCAAS,+BAA+B;AACjE,WAAO,2BAAa,KAAK,MAAM,uBAAuB,GAAG,CAAC;AAAA,EAC9D;AAGA,MAAI,IAAI,QAAQ,aAAa,kCAAS,yBAAyB;AAC3D,WAAO,2BAAa,KAAK,MAAM,uBAAuB,GAAG,CAAC;AAAA,EAC9D;AACA,MAAI,IAAI,QAAQ,aAAa,kCAAS,yBAAyB;AAC3D,UAAM,WAAkD,MAAM,IAAI,KAAK;AACvE,UAAM,YAAsC;AAAA,MACxC,OAAO,SAAS;AAAA,MAChB,UAAU,SAAS;AAAA,MACnB,UAAU,SAAS;AAAA,IACvB;AAEA,UAAM,MAAM,MAAM;AAAA,MACd,IAAI,QAAQ,SAAS;AAAA,QACjB,kCAAS;AAAA,QACT;AAAA,MACJ,EAAE,QAAQ,WAAW,IAAI,SAAS,IAAI,EAAE;AAAA,MACxC;AAAA,QACI,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,SAAS;AAAA,QAC9B,SAAS,mBAAmB;AAAA,MAChC;AAAA,IACJ;AACA,WAAO,MAAM,IAAI,KAAK;AAAA,EAC1B;AAGA,MAAI,IAAI,QAAQ,aAAa,kCAAS,2BAA2B;AAC7D,UAAM,MAAM,MAAM;AAAA,MACd;AAAA,MACA;AAAA,QACI,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,MAAM,IAAI,KAAK,CAAC;AAAA,QACrC,SAAS,mBAAmB;AAAA,MAChC;AAAA,IACJ;AACA,UAAM,UAAwC,MAAM,IAAI,KAAK;AAE7D,UAAM,SAAS,2BAAa,KAAK,OAAO;AACxC,QAAI,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,QAAQ,SAAS,QAAQ,WAAW,aAAa;AACvE,aAAO,QAAQ,IAAI;AAAA,QACf,MAAM;AAAA,QACN,OAAO,QAAQ;AAAA,QACf,QAAQ,KAAK,KAAK,KAAK;AAAA,QACvB,UAAU;AAAA,MACd,CAAC;AAAA,IACL;AACA,WAAO;AAAA,EACX;AACA,MAAI,IAAI,QAAQ,aAAa,kCAAS,0BAA0B;AAC5D,UAAM,cAAc,IAAI,QAAQ,IAAI,OAAO;AAC3C,QAAI,CAAC,eAAe,CAAC,YAAY,OAAO;AACpC,aAAO,2BAAa,KAAK,EAAC,SAAS,EAAC,CAAC;AAAA,IACzC;AAEA,UAAM,UAAoC;AAAA,MACtC,MAAM;AAAA,QACF,OAAO,YAAY;AAAA,MACvB;AAAA,IACJ;AACA,UAAM,MAAM,MAAM;AAAA,MACd;AAAA,MACA;AAAA,QACI,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,OAAO;AAAA,QAC5B,SAAS,mBAAmB;AAAA,MAChC;AAAA,IACJ;AACA,UAAM,UAAwC,MAAM,IAAI,KAAK;AAE7D,UAAM,SAAS,2BAAa,KAAK,OAAO;AACxC,QAAI,EAAE,QAAQ,WAAW,QAAQ,KAAK,IAAI;AACtC,aAAO,QAAQ,OAAO,OAAO;AAAA,IACjC;AACA,WAAO;AAAA,EACX;AACA,MAAI,IAAI,QAAQ,aAAa,kCAAS,4BAA4B;AAC9D,UAAM,MAAM,2BAAa,KAAK,EAAC,SAAS,EAAC,CAAC;AAC1C,QAAI,QAAQ,OAAO,OAAO;AAC1B,WAAO;AAAA,EACX;AACJ;;;AE9FA,IAAAC,2BAA4B;AAGrB,IAAM,SAAS,CAAO,SAAqF;AAC9G,QAAM,MAAM,MAAM;AAAA,IACd,kCAAS;AAAA,IACT,qBAAqB,IAAI;AAAA,EAC7B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;ACTA,IAAAC,2BAA4B;AAGrB,IAAM,SAAS,CAAO,SAA0E;AACnG,QAAM,MAAM,MAAM;AAAA,IACd,kCAAS;AAAA,IACT,qBAAqB,IAAI;AAAA,EAC7B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;ACTA,IAAAC,2BAA4B;AAGrB,IAAM,UAAU,MAAqC;AACxD,QAAM,MAAM,MAAM;AAAA,IACd,kCAAS;AAAA,IACT,qBAAqB,CAAC,CAAC;AAAA,EAC3B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;ACTA,IAAAC,2BAA4B;AAGrB,IAAM,SAAS,MAAmD;AACrE,QAAM,MAAM,MAAM;AAAA,IACd,kCAAS;AAAA,IACT,qBAAqB,CAAC,CAAC;AAAA,EAC3B;AACA,SAAO,MAAM,IAAI,KAAK;AAC1B;;;AVAA,IAAM,UAAU;AAAA,EACZ,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,IAAM,SAAS;AAAA,EACX;AACJ;","names":["import_bridge_interface","import_bridge_interface","import_bridge_interface","import_bridge_interface","import_bridge_interface","import_bridge_interface","import_bridge_interface","import_bridge_interface"]}
1
+ {"version":3,"sources":["../src/index.ts","../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"],"sourcesContent":["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","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}"],"mappings":"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","names":["createFetchClient","ip","ip","browser"]}