@bigbinary/neeto-commons-frontend 4.13.75 → 4.13.77

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.
@@ -24,6 +24,7 @@ const postCssConfig = require("../../../../../postcss.config.js");
24
24
  const commonResolve = require("../webpack/resolve.js");
25
25
 
26
26
  const isProduction = process.env.NODE_ENV === "production";
27
+ const enableMetafile = process.argv.includes("--analyze");
27
28
  const isWatchMode = process.argv.includes("--watch");
28
29
  const assetHost =
29
30
  process.env.ASSET_HOST &&
@@ -39,6 +40,7 @@ const config = {
39
40
  publicPath: `${assetHost ?? ""}/assets`,
40
41
  bundle: true,
41
42
  splitting: true,
43
+ metafile: enableMetafile,
42
44
  outdir: path.join(process.cwd(), "app/assets/builds"),
43
45
  minify: isProduction,
44
46
  sourcemap: isWatchMode ? true : "external",
@@ -68,7 +70,6 @@ const config = {
68
70
  conditions: ["style"],
69
71
  logLevel: isWatchMode ? "info" : "error",
70
72
  format: "esm",
71
- metafile: true,
72
73
  platform: "browser",
73
74
  mainFields: ["browser", "module", "main"],
74
75
  loader: {
@@ -1,5 +1,7 @@
1
1
  const esbuild = require("esbuild");
2
2
  const path = require("path");
3
+ const fs = require("fs");
4
+ const { execSync, spawn } = require("child_process");
3
5
 
4
6
  // colors for console output
5
7
  const consoleColors = {
@@ -19,16 +21,61 @@ const createDefinitions = process => {
19
21
 
20
22
  const entryPoint = file => path.join(process.cwd(), file);
21
23
 
24
+ const writeMetafile = (metafile, outdir) => {
25
+ const metaFilePath = path.join(outdir, "meta.json");
26
+ fs.writeFileSync(metaFilePath, JSON.stringify(metafile, null, 2));
27
+ return metaFilePath;
28
+ };
29
+
30
+ const generateBundleReport = async (metaFilePath, outdir) => {
31
+ try {
32
+ console.info(
33
+ `${consoleColors.info}[bundle-analyzer]${consoleColors.reset} Generating bundle report...`
34
+ );
35
+
36
+ const htmlFilePath = path.join(outdir, "bundle-report.html");
37
+ execSync(
38
+ `npx esbuild-visualizer --metadata ${metaFilePath} --filename ${htmlFilePath}`,
39
+ { stdio: "inherit" }
40
+ );
41
+
42
+ console.info(
43
+ `${consoleColors.success}[bundle-analyzer]${consoleColors.reset} Bundle report generated at ${htmlFilePath}`
44
+ );
45
+
46
+ const command = process.platform === "win32" ? "start" : "open";
47
+ spawn(command, [htmlFilePath], { detached: true, stdio: "ignore" });
48
+ console.info(
49
+ `${consoleColors.success}[bundle-analyzer]${consoleColors.reset} Bundle report opened in browser`
50
+ );
51
+
52
+ return htmlFilePath;
53
+ } catch (error) {
54
+ console.error(
55
+ `${consoleColors.error}[bundle-analyzer]${consoleColors.reset} Failed to generate bundle report: ${error.message}`
56
+ );
57
+ throw error;
58
+ }
59
+ };
60
+
22
61
  const build = async config => {
23
62
  try {
24
63
  console.info(
25
64
  `${consoleColors.info}[esbuild]${consoleColors.reset} Building...`
26
65
  );
27
- await esbuild.build(config);
66
+
67
+ const result = await esbuild.build(config);
68
+
69
+ if (result.metafile) {
70
+ const metaFilePath = writeMetafile(result.metafile, config.outdir);
71
+ await generateBundleReport(metaFilePath, config.outdir);
72
+ }
73
+
28
74
  console.info(
29
75
  `${consoleColors.success}[esbuild]${consoleColors.reset} Build successful`
30
76
  );
31
- } catch {
77
+ } catch (error) {
78
+ console.error(`Build error: ${error.message}`);
32
79
  const errorMessage = `${consoleColors.error}[esbuild]${consoleColors.reset} Build failed`;
33
80
  throw new Error(errorMessage);
34
81
  }
@@ -129,125 +129,85 @@ var getMediaPresence = /*#__PURE__*/function () {
129
129
  return _ref2.apply(this, arguments);
130
130
  };
131
131
  }();
132
- var IpInfo = /*#__PURE__*/function () {
133
- var _ref3 = index._asyncToGenerator(/*#__PURE__*/index._regeneratorRuntime.mark(function _callee3() {
134
- var url, response;
135
- return index._regeneratorRuntime.wrap(function _callee3$(_context3) {
136
- while (1) switch (_context3.prev = _context3.next) {
137
- case 0:
138
- url = "https://neeto-ip-lookup-web-production.neetodeployapp.com/location";
139
- _context3.prev = 1;
140
- _context3.next = 4;
141
- return fetch(url, {
142
- headers: {
143
- "X-ACCESS-TOKEN": globalProps.ipLookupAccessToken
144
- }
145
- });
146
- case 4:
147
- response = _context3.sent;
148
- _context3.next = 7;
149
- return response.json();
150
- case 7:
151
- return _context3.abrupt("return", _context3.sent);
152
- case 10:
153
- _context3.prev = 10;
154
- _context3.t0 = _context3["catch"](1);
155
- return _context3.abrupt("return", null);
156
- case 13:
157
- case "end":
158
- return _context3.stop();
159
- }
160
- }, _callee3, null, [[1, 10]]);
161
- }));
162
- return function IpInfo() {
163
- return _ref3.apply(this, arguments);
164
- };
165
- }();
166
132
 
167
133
  // ---------- Main Function ----------
168
134
  var deviceInformation = /*#__PURE__*/function () {
169
- var _ref4 = index._asyncToGenerator(/*#__PURE__*/index._regeneratorRuntime.mark(function _callee4() {
135
+ var _ref3 = index._asyncToGenerator(/*#__PURE__*/index._regeneratorRuntime.mark(function _callee3() {
170
136
  var _parseOS, os, osVersion, browser, category, connection, _yield$Promise$all, _yield$Promise$all2, micPerm, camPerm, geoPerm, notifPerm, mediaInfo;
171
- return index._regeneratorRuntime.wrap(function _callee4$(_context4) {
172
- while (1) switch (_context4.prev = _context4.next) {
137
+ return index._regeneratorRuntime.wrap(function _callee3$(_context3) {
138
+ while (1) switch (_context3.prev = _context3.next) {
173
139
  case 0:
174
140
  _parseOS = parseOS(), os = _parseOS.os, osVersion = _parseOS.osVersion;
175
141
  browser = parseBrowser();
176
142
  category = getDeviceCategory(); // @ts-ignore
177
143
  connection = navigator.connection || null;
178
- _context4.next = 6;
144
+ _context3.next = 6;
179
145
  return Promise.all([getPermission("microphone"), getPermission("camera"), getPermission("geolocation"), getPermission("notifications"), getMediaPresence()]);
180
146
  case 6:
181
- _yield$Promise$all = _context4.sent;
147
+ _yield$Promise$all = _context3.sent;
182
148
  _yield$Promise$all2 = slicedToArray._slicedToArray(_yield$Promise$all, 5);
183
149
  micPerm = _yield$Promise$all2[0];
184
150
  camPerm = _yield$Promise$all2[1];
185
151
  geoPerm = _yield$Promise$all2[2];
186
152
  notifPerm = _yield$Promise$all2[3];
187
153
  mediaInfo = _yield$Promise$all2[4];
188
- _context4.t0 = {
189
- type: category,
190
- os: os,
191
- osVersion: osVersion,
192
- screen: {
193
- width: screen.width,
194
- height: screen.height,
195
- pixelRatio: window.devicePixelRatio || 1,
196
- colorDepth: screen.colorDepth
154
+ return _context3.abrupt("return", {
155
+ device: {
156
+ type: category,
157
+ os: os,
158
+ osVersion: osVersion,
159
+ screen: {
160
+ width: screen.width,
161
+ height: screen.height,
162
+ pixelRatio: window.devicePixelRatio || 1,
163
+ colorDepth: screen.colorDepth
164
+ },
165
+ viewport: {
166
+ width: window.innerWidth,
167
+ height: window.innerHeight
168
+ },
169
+ memoryGB: typeof navigator.deviceMemory === "number" ? navigator.deviceMemory : null
170
+ },
171
+ browser: {
172
+ name: browser.name,
173
+ version: browser.version,
174
+ userAgent: navigator.userAgent,
175
+ javaScriptEnabled: true,
176
+ cookiesEnabled: cookiesEnabled(),
177
+ websockets: "WebSocket" in window,
178
+ webgl: hasWebGL(),
179
+ doNotTrack: navigator.doNotTrack || null,
180
+ mimeTypes: navigator.mimeTypes ? ramda.pluck("type", Array.from(navigator.mimeTypes)) : [],
181
+ network: connection ? {
182
+ effectiveType: connection.effectiveType,
183
+ downlink: connection.downlink,
184
+ rtt: connection.rtt,
185
+ saveData: connection.saveData
186
+ } : null
197
187
  },
198
- viewport: {
199
- width: window.innerWidth,
200
- height: window.innerHeight
188
+ permissions: {
189
+ microphone: micPerm,
190
+ camera: camPerm,
191
+ geolocation: geoPerm,
192
+ notifications: notifPerm,
193
+ media: mediaInfo
201
194
  },
202
- memoryGB: typeof navigator.deviceMemory === "number" ? navigator.deviceMemory : null
203
- };
204
- _context4.t1 = {
205
- name: browser.name,
206
- version: browser.version,
207
- userAgent: navigator.userAgent,
208
- javaScriptEnabled: true,
209
- cookiesEnabled: cookiesEnabled(),
210
- websockets: "WebSocket" in window,
211
- webgl: hasWebGL(),
212
- doNotTrack: navigator.doNotTrack || null,
213
- mimeTypes: navigator.mimeTypes ? ramda.pluck("type", Array.from(navigator.mimeTypes)) : [],
214
- network: connection ? {
215
- effectiveType: connection.effectiveType,
216
- downlink: connection.downlink,
217
- rtt: connection.rtt,
218
- saveData: connection.saveData
219
- } : null
220
- };
221
- _context4.t2 = {
222
- microphone: micPerm,
223
- camera: camPerm,
224
- geolocation: geoPerm,
225
- notifications: notifPerm,
226
- media: mediaInfo
227
- };
228
- _context4.t3 = {
229
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone || null,
230
- referrer: document.referrer || ""
231
- };
232
- _context4.next = 19;
233
- return IpInfo();
234
- case 19:
235
- _context4.t4 = _context4.sent;
236
- return _context4.abrupt("return", {
237
- device: _context4.t0,
238
- browser: _context4.t1,
239
- permissions: _context4.t2,
240
- meta: _context4.t3,
241
- serverDerived: _context4.t4
195
+ meta: {
196
+ time: {
197
+ zone: Intl.DateTimeFormat().resolvedOptions().timeZone,
198
+ offset: new Date().getTimezoneOffset().toString()
199
+ },
200
+ referrer: document.referrer || ""
201
+ }
242
202
  });
243
- case 21:
203
+ case 14:
244
204
  case "end":
245
- return _context4.stop();
205
+ return _context3.stop();
246
206
  }
247
- }, _callee4);
207
+ }, _callee3);
248
208
  }));
249
209
  return function deviceInformation() {
250
- return _ref4.apply(this, arguments);
210
+ return _ref3.apply(this, arguments);
251
211
  };
252
212
  }();
253
213
 
@@ -1 +1 @@
1
- {"version":3,"file":"deviceInformation.js","sources":["../../../src/utils/deviceInformation.js"],"sourcesContent":["import { pluck } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nconst getUAParser = () => new UAParser(navigator.userAgent);\n\nconst parseBrowser = () => {\n const parser = getUAParser();\n const browser = parser.getBrowser();\n\n return {\n name: browser.name || \"Unknown\",\n version: browser.version || \"\",\n };\n};\n\nconst parseOS = () => {\n const parser = getUAParser();\n const os = parser.getOS();\n\n return { os: os.name || \"Unknown\", osVersion: os.version || \"\" };\n};\n\nconst getDeviceCategory = () => {\n const parser = getUAParser();\n const { type } = parser.getDevice();\n\n return type || \"desktop\";\n};\n\nconst hasWebGL = () => {\n try {\n const c = document.createElement(\"canvas\");\n\n return !!(\n window.WebGLRenderingContext &&\n (c.getContext(\"webgl\") || c.getContext(\"experimental-webgl\"))\n );\n } catch {\n return false;\n }\n};\n\nconst cookiesEnabled = () => {\n try {\n document.cookie = \"ctest=1; SameSite=Lax\";\n const ok = document.cookie.includes(\"ctest=1\");\n document.cookie = \"ctest=; Max-Age=0; SameSite=Lax\";\n\n return ok;\n } catch {\n return false;\n }\n};\n\nconst getPermission = async name => {\n if (!navigator.permissions) return \"unsupported\";\n try {\n const s = await navigator.permissions.query({ name });\n\n return s.state; // 'granted' | 'denied' | 'prompt'\n } catch {\n return \"unsupported\";\n }\n};\n\nconst getMediaPresence = async () => {\n if (!navigator.mediaDevices?.enumerateDevices) {\n return { hasMic: null, hasCamera: null };\n }\n try {\n const list = await navigator.mediaDevices.enumerateDevices();\n\n return {\n hasMic: list.some(d => d.kind === \"audioinput\"),\n hasCamera: list.some(d => d.kind === \"videoinput\"),\n };\n } catch {\n return { hasMic: null, hasCamera: null };\n }\n};\n\nconst IpInfo = async () => {\n const url =\n \"https://neeto-ip-lookup-web-production.neetodeployapp.com/location\";\n try {\n const response = await fetch(url, {\n headers: { \"X-ACCESS-TOKEN\": globalProps.ipLookupAccessToken },\n });\n\n return await response.json();\n } catch {\n return null;\n }\n};\n\n// ---------- Main Function ----------\nexport const deviceInformation = async () => {\n const { os, osVersion } = parseOS();\n const browser = parseBrowser();\n const category = getDeviceCategory();\n // @ts-ignore\n const connection = navigator.connection || null;\n\n const [micPerm, camPerm, geoPerm, notifPerm, mediaInfo] = await Promise.all([\n getPermission(\"microphone\"),\n getPermission(\"camera\"),\n getPermission(\"geolocation\"),\n getPermission(\"notifications\"),\n getMediaPresence(),\n ]);\n\n return {\n device: {\n type: category,\n os,\n osVersion,\n screen: {\n width: screen.width,\n height: screen.height,\n pixelRatio: window.devicePixelRatio || 1,\n colorDepth: screen.colorDepth,\n },\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n memoryGB:\n typeof navigator.deviceMemory === \"number\"\n ? navigator.deviceMemory\n : null,\n },\n browser: {\n name: browser.name,\n version: browser.version,\n userAgent: navigator.userAgent,\n javaScriptEnabled: true,\n cookiesEnabled: cookiesEnabled(),\n websockets: \"WebSocket\" in window,\n webgl: hasWebGL(),\n doNotTrack: navigator.doNotTrack || null,\n mimeTypes: navigator.mimeTypes\n ? pluck(\"type\", Array.from(navigator.mimeTypes))\n : [],\n network: connection\n ? {\n effectiveType: connection.effectiveType,\n downlink: connection.downlink,\n rtt: connection.rtt,\n saveData: connection.saveData,\n }\n : null,\n },\n permissions: {\n microphone: micPerm,\n camera: camPerm,\n geolocation: geoPerm,\n notifications: notifPerm,\n media: mediaInfo,\n },\n meta: {\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone || null,\n referrer: document.referrer || \"\",\n },\n serverDerived: await IpInfo(),\n };\n};\n"],"names":["getUAParser","UAParser","navigator","userAgent","parseBrowser","parser","browser","getBrowser","name","version","parseOS","os","getOS","osVersion","getDeviceCategory","_parser$getDevice","getDevice","type","hasWebGL","c","document","createElement","window","WebGLRenderingContext","getContext","_unused","cookiesEnabled","cookie","ok","includes","_unused2","getPermission","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","s","wrap","_callee$","_context","prev","next","permissions","abrupt","query","sent","state","t0","stop","_x","apply","arguments","getMediaPresence","_ref2","_callee2","_navigator$mediaDevic","list","_callee2$","_context2","mediaDevices","enumerateDevices","hasMic","hasCamera","some","d","kind","IpInfo","_ref3","_callee3","url","response","_callee3$","_context3","fetch","headers","globalProps","ipLookupAccessToken","json","deviceInformation","_ref4","_callee4","_parseOS","category","connection","_yield$Promise$all","_yield$Promise$all2","micPerm","camPerm","geoPerm","notifPerm","mediaInfo","_callee4$","_context4","Promise","all","_slicedToArray","screen","width","height","pixelRatio","devicePixelRatio","colorDepth","viewport","innerWidth","innerHeight","memoryGB","deviceMemory","t1","javaScriptEnabled","websockets","webgl","doNotTrack","mimeTypes","pluck","Array","from","network","effectiveType","downlink","rtt","saveData","t2","microphone","camera","geolocation","notifications","media","t3","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","referrer","t4","device","meta","serverDerived"],"mappings":"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"}
1
+ {"version":3,"file":"deviceInformation.js","sources":["../../../src/utils/deviceInformation.js"],"sourcesContent":["import { pluck } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nconst getUAParser = () => new UAParser(navigator.userAgent);\n\nconst parseBrowser = () => {\n const parser = getUAParser();\n const browser = parser.getBrowser();\n\n return {\n name: browser.name || \"Unknown\",\n version: browser.version || \"\",\n };\n};\n\nconst parseOS = () => {\n const parser = getUAParser();\n const os = parser.getOS();\n\n return { os: os.name || \"Unknown\", osVersion: os.version || \"\" };\n};\n\nconst getDeviceCategory = () => {\n const parser = getUAParser();\n const { type } = parser.getDevice();\n\n return type || \"desktop\";\n};\n\nconst hasWebGL = () => {\n try {\n const c = document.createElement(\"canvas\");\n\n return !!(\n window.WebGLRenderingContext &&\n (c.getContext(\"webgl\") || c.getContext(\"experimental-webgl\"))\n );\n } catch {\n return false;\n }\n};\n\nconst cookiesEnabled = () => {\n try {\n document.cookie = \"ctest=1; SameSite=Lax\";\n const ok = document.cookie.includes(\"ctest=1\");\n document.cookie = \"ctest=; Max-Age=0; SameSite=Lax\";\n\n return ok;\n } catch {\n return false;\n }\n};\n\nconst getPermission = async name => {\n if (!navigator.permissions) return \"unsupported\";\n try {\n const s = await navigator.permissions.query({ name });\n\n return s.state; // 'granted' | 'denied' | 'prompt'\n } catch {\n return \"unsupported\";\n }\n};\n\nconst getMediaPresence = async () => {\n if (!navigator.mediaDevices?.enumerateDevices) {\n return { hasMic: null, hasCamera: null };\n }\n try {\n const list = await navigator.mediaDevices.enumerateDevices();\n\n return {\n hasMic: list.some(d => d.kind === \"audioinput\"),\n hasCamera: list.some(d => d.kind === \"videoinput\"),\n };\n } catch {\n return { hasMic: null, hasCamera: null };\n }\n};\n\n// ---------- Main Function ----------\nexport const deviceInformation = async () => {\n const { os, osVersion } = parseOS();\n const browser = parseBrowser();\n const category = getDeviceCategory();\n // @ts-ignore\n const connection = navigator.connection || null;\n\n const [micPerm, camPerm, geoPerm, notifPerm, mediaInfo] = await Promise.all([\n getPermission(\"microphone\"),\n getPermission(\"camera\"),\n getPermission(\"geolocation\"),\n getPermission(\"notifications\"),\n getMediaPresence(),\n ]);\n\n return {\n device: {\n type: category,\n os,\n osVersion,\n screen: {\n width: screen.width,\n height: screen.height,\n pixelRatio: window.devicePixelRatio || 1,\n colorDepth: screen.colorDepth,\n },\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n memoryGB:\n typeof navigator.deviceMemory === \"number\"\n ? navigator.deviceMemory\n : null,\n },\n browser: {\n name: browser.name,\n version: browser.version,\n userAgent: navigator.userAgent,\n javaScriptEnabled: true,\n cookiesEnabled: cookiesEnabled(),\n websockets: \"WebSocket\" in window,\n webgl: hasWebGL(),\n doNotTrack: navigator.doNotTrack || null,\n mimeTypes: navigator.mimeTypes\n ? pluck(\"type\", Array.from(navigator.mimeTypes))\n : [],\n network: connection\n ? {\n effectiveType: connection.effectiveType,\n downlink: connection.downlink,\n rtt: connection.rtt,\n saveData: connection.saveData,\n }\n : null,\n },\n permissions: {\n microphone: micPerm,\n camera: camPerm,\n geolocation: geoPerm,\n notifications: notifPerm,\n media: mediaInfo,\n },\n meta: {\n time: {\n zone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n offset: new Date().getTimezoneOffset().toString(),\n },\n referrer: document.referrer || \"\",\n },\n };\n};\n"],"names":["getUAParser","UAParser","navigator","userAgent","parseBrowser","parser","browser","getBrowser","name","version","parseOS","os","getOS","osVersion","getDeviceCategory","_parser$getDevice","getDevice","type","hasWebGL","c","document","createElement","window","WebGLRenderingContext","getContext","_unused","cookiesEnabled","cookie","ok","includes","_unused2","getPermission","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","s","wrap","_callee$","_context","prev","next","permissions","abrupt","query","sent","state","t0","stop","_x","apply","arguments","getMediaPresence","_ref2","_callee2","_navigator$mediaDevic","list","_callee2$","_context2","mediaDevices","enumerateDevices","hasMic","hasCamera","some","d","kind","deviceInformation","_ref3","_callee3","_parseOS","category","connection","_yield$Promise$all","_yield$Promise$all2","micPerm","camPerm","geoPerm","notifPerm","mediaInfo","_callee3$","_context3","Promise","all","_slicedToArray","device","screen","width","height","pixelRatio","devicePixelRatio","colorDepth","viewport","innerWidth","innerHeight","memoryGB","deviceMemory","javaScriptEnabled","websockets","webgl","doNotTrack","mimeTypes","pluck","Array","from","network","effectiveType","downlink","rtt","saveData","microphone","camera","geolocation","notifications","media","meta","time","zone","Intl","DateTimeFormat","resolvedOptions","timeZone","offset","Date","getTimezoneOffset","toString","referrer"],"mappings":"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"}
@@ -127,125 +127,85 @@ var getMediaPresence = /*#__PURE__*/function () {
127
127
  return _ref2.apply(this, arguments);
128
128
  };
129
129
  }();
130
- var IpInfo = /*#__PURE__*/function () {
131
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
132
- var url, response;
133
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
134
- while (1) switch (_context3.prev = _context3.next) {
135
- case 0:
136
- url = "https://neeto-ip-lookup-web-production.neetodeployapp.com/location";
137
- _context3.prev = 1;
138
- _context3.next = 4;
139
- return fetch(url, {
140
- headers: {
141
- "X-ACCESS-TOKEN": globalProps.ipLookupAccessToken
142
- }
143
- });
144
- case 4:
145
- response = _context3.sent;
146
- _context3.next = 7;
147
- return response.json();
148
- case 7:
149
- return _context3.abrupt("return", _context3.sent);
150
- case 10:
151
- _context3.prev = 10;
152
- _context3.t0 = _context3["catch"](1);
153
- return _context3.abrupt("return", null);
154
- case 13:
155
- case "end":
156
- return _context3.stop();
157
- }
158
- }, _callee3, null, [[1, 10]]);
159
- }));
160
- return function IpInfo() {
161
- return _ref3.apply(this, arguments);
162
- };
163
- }();
164
130
 
165
131
  // ---------- Main Function ----------
166
132
  var deviceInformation = /*#__PURE__*/function () {
167
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
133
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
168
134
  var _parseOS, os, osVersion, browser, category, connection, _yield$Promise$all, _yield$Promise$all2, micPerm, camPerm, geoPerm, notifPerm, mediaInfo;
169
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
170
- while (1) switch (_context4.prev = _context4.next) {
135
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
136
+ while (1) switch (_context3.prev = _context3.next) {
171
137
  case 0:
172
138
  _parseOS = parseOS(), os = _parseOS.os, osVersion = _parseOS.osVersion;
173
139
  browser = parseBrowser();
174
140
  category = getDeviceCategory(); // @ts-ignore
175
141
  connection = navigator.connection || null;
176
- _context4.next = 6;
142
+ _context3.next = 6;
177
143
  return Promise.all([getPermission("microphone"), getPermission("camera"), getPermission("geolocation"), getPermission("notifications"), getMediaPresence()]);
178
144
  case 6:
179
- _yield$Promise$all = _context4.sent;
145
+ _yield$Promise$all = _context3.sent;
180
146
  _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 5);
181
147
  micPerm = _yield$Promise$all2[0];
182
148
  camPerm = _yield$Promise$all2[1];
183
149
  geoPerm = _yield$Promise$all2[2];
184
150
  notifPerm = _yield$Promise$all2[3];
185
151
  mediaInfo = _yield$Promise$all2[4];
186
- _context4.t0 = {
187
- type: category,
188
- os: os,
189
- osVersion: osVersion,
190
- screen: {
191
- width: screen.width,
192
- height: screen.height,
193
- pixelRatio: window.devicePixelRatio || 1,
194
- colorDepth: screen.colorDepth
152
+ return _context3.abrupt("return", {
153
+ device: {
154
+ type: category,
155
+ os: os,
156
+ osVersion: osVersion,
157
+ screen: {
158
+ width: screen.width,
159
+ height: screen.height,
160
+ pixelRatio: window.devicePixelRatio || 1,
161
+ colorDepth: screen.colorDepth
162
+ },
163
+ viewport: {
164
+ width: window.innerWidth,
165
+ height: window.innerHeight
166
+ },
167
+ memoryGB: typeof navigator.deviceMemory === "number" ? navigator.deviceMemory : null
168
+ },
169
+ browser: {
170
+ name: browser.name,
171
+ version: browser.version,
172
+ userAgent: navigator.userAgent,
173
+ javaScriptEnabled: true,
174
+ cookiesEnabled: cookiesEnabled(),
175
+ websockets: "WebSocket" in window,
176
+ webgl: hasWebGL(),
177
+ doNotTrack: navigator.doNotTrack || null,
178
+ mimeTypes: navigator.mimeTypes ? pluck("type", Array.from(navigator.mimeTypes)) : [],
179
+ network: connection ? {
180
+ effectiveType: connection.effectiveType,
181
+ downlink: connection.downlink,
182
+ rtt: connection.rtt,
183
+ saveData: connection.saveData
184
+ } : null
195
185
  },
196
- viewport: {
197
- width: window.innerWidth,
198
- height: window.innerHeight
186
+ permissions: {
187
+ microphone: micPerm,
188
+ camera: camPerm,
189
+ geolocation: geoPerm,
190
+ notifications: notifPerm,
191
+ media: mediaInfo
199
192
  },
200
- memoryGB: typeof navigator.deviceMemory === "number" ? navigator.deviceMemory : null
201
- };
202
- _context4.t1 = {
203
- name: browser.name,
204
- version: browser.version,
205
- userAgent: navigator.userAgent,
206
- javaScriptEnabled: true,
207
- cookiesEnabled: cookiesEnabled(),
208
- websockets: "WebSocket" in window,
209
- webgl: hasWebGL(),
210
- doNotTrack: navigator.doNotTrack || null,
211
- mimeTypes: navigator.mimeTypes ? pluck("type", Array.from(navigator.mimeTypes)) : [],
212
- network: connection ? {
213
- effectiveType: connection.effectiveType,
214
- downlink: connection.downlink,
215
- rtt: connection.rtt,
216
- saveData: connection.saveData
217
- } : null
218
- };
219
- _context4.t2 = {
220
- microphone: micPerm,
221
- camera: camPerm,
222
- geolocation: geoPerm,
223
- notifications: notifPerm,
224
- media: mediaInfo
225
- };
226
- _context4.t3 = {
227
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone || null,
228
- referrer: document.referrer || ""
229
- };
230
- _context4.next = 19;
231
- return IpInfo();
232
- case 19:
233
- _context4.t4 = _context4.sent;
234
- return _context4.abrupt("return", {
235
- device: _context4.t0,
236
- browser: _context4.t1,
237
- permissions: _context4.t2,
238
- meta: _context4.t3,
239
- serverDerived: _context4.t4
193
+ meta: {
194
+ time: {
195
+ zone: Intl.DateTimeFormat().resolvedOptions().timeZone,
196
+ offset: new Date().getTimezoneOffset().toString()
197
+ },
198
+ referrer: document.referrer || ""
199
+ }
240
200
  });
241
- case 21:
201
+ case 14:
242
202
  case "end":
243
- return _context4.stop();
203
+ return _context3.stop();
244
204
  }
245
- }, _callee4);
205
+ }, _callee3);
246
206
  }));
247
207
  return function deviceInformation() {
248
- return _ref4.apply(this, arguments);
208
+ return _ref3.apply(this, arguments);
249
209
  };
250
210
  }();
251
211
 
@@ -1 +1 @@
1
- {"version":3,"file":"deviceInformation.js","sources":["../../src/utils/deviceInformation.js"],"sourcesContent":["import { pluck } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nconst getUAParser = () => new UAParser(navigator.userAgent);\n\nconst parseBrowser = () => {\n const parser = getUAParser();\n const browser = parser.getBrowser();\n\n return {\n name: browser.name || \"Unknown\",\n version: browser.version || \"\",\n };\n};\n\nconst parseOS = () => {\n const parser = getUAParser();\n const os = parser.getOS();\n\n return { os: os.name || \"Unknown\", osVersion: os.version || \"\" };\n};\n\nconst getDeviceCategory = () => {\n const parser = getUAParser();\n const { type } = parser.getDevice();\n\n return type || \"desktop\";\n};\n\nconst hasWebGL = () => {\n try {\n const c = document.createElement(\"canvas\");\n\n return !!(\n window.WebGLRenderingContext &&\n (c.getContext(\"webgl\") || c.getContext(\"experimental-webgl\"))\n );\n } catch {\n return false;\n }\n};\n\nconst cookiesEnabled = () => {\n try {\n document.cookie = \"ctest=1; SameSite=Lax\";\n const ok = document.cookie.includes(\"ctest=1\");\n document.cookie = \"ctest=; Max-Age=0; SameSite=Lax\";\n\n return ok;\n } catch {\n return false;\n }\n};\n\nconst getPermission = async name => {\n if (!navigator.permissions) return \"unsupported\";\n try {\n const s = await navigator.permissions.query({ name });\n\n return s.state; // 'granted' | 'denied' | 'prompt'\n } catch {\n return \"unsupported\";\n }\n};\n\nconst getMediaPresence = async () => {\n if (!navigator.mediaDevices?.enumerateDevices) {\n return { hasMic: null, hasCamera: null };\n }\n try {\n const list = await navigator.mediaDevices.enumerateDevices();\n\n return {\n hasMic: list.some(d => d.kind === \"audioinput\"),\n hasCamera: list.some(d => d.kind === \"videoinput\"),\n };\n } catch {\n return { hasMic: null, hasCamera: null };\n }\n};\n\nconst IpInfo = async () => {\n const url =\n \"https://neeto-ip-lookup-web-production.neetodeployapp.com/location\";\n try {\n const response = await fetch(url, {\n headers: { \"X-ACCESS-TOKEN\": globalProps.ipLookupAccessToken },\n });\n\n return await response.json();\n } catch {\n return null;\n }\n};\n\n// ---------- Main Function ----------\nexport const deviceInformation = async () => {\n const { os, osVersion } = parseOS();\n const browser = parseBrowser();\n const category = getDeviceCategory();\n // @ts-ignore\n const connection = navigator.connection || null;\n\n const [micPerm, camPerm, geoPerm, notifPerm, mediaInfo] = await Promise.all([\n getPermission(\"microphone\"),\n getPermission(\"camera\"),\n getPermission(\"geolocation\"),\n getPermission(\"notifications\"),\n getMediaPresence(),\n ]);\n\n return {\n device: {\n type: category,\n os,\n osVersion,\n screen: {\n width: screen.width,\n height: screen.height,\n pixelRatio: window.devicePixelRatio || 1,\n colorDepth: screen.colorDepth,\n },\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n memoryGB:\n typeof navigator.deviceMemory === \"number\"\n ? navigator.deviceMemory\n : null,\n },\n browser: {\n name: browser.name,\n version: browser.version,\n userAgent: navigator.userAgent,\n javaScriptEnabled: true,\n cookiesEnabled: cookiesEnabled(),\n websockets: \"WebSocket\" in window,\n webgl: hasWebGL(),\n doNotTrack: navigator.doNotTrack || null,\n mimeTypes: navigator.mimeTypes\n ? pluck(\"type\", Array.from(navigator.mimeTypes))\n : [],\n network: connection\n ? {\n effectiveType: connection.effectiveType,\n downlink: connection.downlink,\n rtt: connection.rtt,\n saveData: connection.saveData,\n }\n : null,\n },\n permissions: {\n microphone: micPerm,\n camera: camPerm,\n geolocation: geoPerm,\n notifications: notifPerm,\n media: mediaInfo,\n },\n meta: {\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone || null,\n referrer: document.referrer || \"\",\n },\n serverDerived: await IpInfo(),\n };\n};\n"],"names":["getUAParser","UAParser","navigator","userAgent","parseBrowser","parser","browser","getBrowser","name","version","parseOS","os","getOS","osVersion","getDeviceCategory","_parser$getDevice","getDevice","type","hasWebGL","c","document","createElement","window","WebGLRenderingContext","getContext","_unused","cookiesEnabled","cookie","ok","includes","_unused2","getPermission","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","s","wrap","_callee$","_context","prev","next","permissions","abrupt","query","sent","state","t0","stop","_x","apply","arguments","getMediaPresence","_ref2","_callee2","_navigator$mediaDevic","list","_callee2$","_context2","mediaDevices","enumerateDevices","hasMic","hasCamera","some","d","kind","IpInfo","_ref3","_callee3","url","response","_callee3$","_context3","fetch","headers","globalProps","ipLookupAccessToken","json","deviceInformation","_ref4","_callee4","_parseOS","category","connection","_yield$Promise$all","_yield$Promise$all2","micPerm","camPerm","geoPerm","notifPerm","mediaInfo","_callee4$","_context4","Promise","all","_slicedToArray","screen","width","height","pixelRatio","devicePixelRatio","colorDepth","viewport","innerWidth","innerHeight","memoryGB","deviceMemory","t1","javaScriptEnabled","websockets","webgl","doNotTrack","mimeTypes","pluck","Array","from","network","effectiveType","downlink","rtt","saveData","t2","microphone","camera","geolocation","notifications","media","t3","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","referrer","t4","device","meta","serverDerived"],"mappings":"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"}
1
+ {"version":3,"file":"deviceInformation.js","sources":["../../src/utils/deviceInformation.js"],"sourcesContent":["import { pluck } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nconst getUAParser = () => new UAParser(navigator.userAgent);\n\nconst parseBrowser = () => {\n const parser = getUAParser();\n const browser = parser.getBrowser();\n\n return {\n name: browser.name || \"Unknown\",\n version: browser.version || \"\",\n };\n};\n\nconst parseOS = () => {\n const parser = getUAParser();\n const os = parser.getOS();\n\n return { os: os.name || \"Unknown\", osVersion: os.version || \"\" };\n};\n\nconst getDeviceCategory = () => {\n const parser = getUAParser();\n const { type } = parser.getDevice();\n\n return type || \"desktop\";\n};\n\nconst hasWebGL = () => {\n try {\n const c = document.createElement(\"canvas\");\n\n return !!(\n window.WebGLRenderingContext &&\n (c.getContext(\"webgl\") || c.getContext(\"experimental-webgl\"))\n );\n } catch {\n return false;\n }\n};\n\nconst cookiesEnabled = () => {\n try {\n document.cookie = \"ctest=1; SameSite=Lax\";\n const ok = document.cookie.includes(\"ctest=1\");\n document.cookie = \"ctest=; Max-Age=0; SameSite=Lax\";\n\n return ok;\n } catch {\n return false;\n }\n};\n\nconst getPermission = async name => {\n if (!navigator.permissions) return \"unsupported\";\n try {\n const s = await navigator.permissions.query({ name });\n\n return s.state; // 'granted' | 'denied' | 'prompt'\n } catch {\n return \"unsupported\";\n }\n};\n\nconst getMediaPresence = async () => {\n if (!navigator.mediaDevices?.enumerateDevices) {\n return { hasMic: null, hasCamera: null };\n }\n try {\n const list = await navigator.mediaDevices.enumerateDevices();\n\n return {\n hasMic: list.some(d => d.kind === \"audioinput\"),\n hasCamera: list.some(d => d.kind === \"videoinput\"),\n };\n } catch {\n return { hasMic: null, hasCamera: null };\n }\n};\n\n// ---------- Main Function ----------\nexport const deviceInformation = async () => {\n const { os, osVersion } = parseOS();\n const browser = parseBrowser();\n const category = getDeviceCategory();\n // @ts-ignore\n const connection = navigator.connection || null;\n\n const [micPerm, camPerm, geoPerm, notifPerm, mediaInfo] = await Promise.all([\n getPermission(\"microphone\"),\n getPermission(\"camera\"),\n getPermission(\"geolocation\"),\n getPermission(\"notifications\"),\n getMediaPresence(),\n ]);\n\n return {\n device: {\n type: category,\n os,\n osVersion,\n screen: {\n width: screen.width,\n height: screen.height,\n pixelRatio: window.devicePixelRatio || 1,\n colorDepth: screen.colorDepth,\n },\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n memoryGB:\n typeof navigator.deviceMemory === \"number\"\n ? navigator.deviceMemory\n : null,\n },\n browser: {\n name: browser.name,\n version: browser.version,\n userAgent: navigator.userAgent,\n javaScriptEnabled: true,\n cookiesEnabled: cookiesEnabled(),\n websockets: \"WebSocket\" in window,\n webgl: hasWebGL(),\n doNotTrack: navigator.doNotTrack || null,\n mimeTypes: navigator.mimeTypes\n ? pluck(\"type\", Array.from(navigator.mimeTypes))\n : [],\n network: connection\n ? {\n effectiveType: connection.effectiveType,\n downlink: connection.downlink,\n rtt: connection.rtt,\n saveData: connection.saveData,\n }\n : null,\n },\n permissions: {\n microphone: micPerm,\n camera: camPerm,\n geolocation: geoPerm,\n notifications: notifPerm,\n media: mediaInfo,\n },\n meta: {\n time: {\n zone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n offset: new Date().getTimezoneOffset().toString(),\n },\n referrer: document.referrer || \"\",\n },\n };\n};\n"],"names":["getUAParser","UAParser","navigator","userAgent","parseBrowser","parser","browser","getBrowser","name","version","parseOS","os","getOS","osVersion","getDeviceCategory","_parser$getDevice","getDevice","type","hasWebGL","c","document","createElement","window","WebGLRenderingContext","getContext","_unused","cookiesEnabled","cookie","ok","includes","_unused2","getPermission","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","s","wrap","_callee$","_context","prev","next","permissions","abrupt","query","sent","state","t0","stop","_x","apply","arguments","getMediaPresence","_ref2","_callee2","_navigator$mediaDevic","list","_callee2$","_context2","mediaDevices","enumerateDevices","hasMic","hasCamera","some","d","kind","deviceInformation","_ref3","_callee3","_parseOS","category","connection","_yield$Promise$all","_yield$Promise$all2","micPerm","camPerm","geoPerm","notifPerm","mediaInfo","_callee3$","_context3","Promise","all","_slicedToArray","device","screen","width","height","pixelRatio","devicePixelRatio","colorDepth","viewport","innerWidth","innerHeight","memoryGB","deviceMemory","javaScriptEnabled","websockets","webgl","doNotTrack","mimeTypes","pluck","Array","from","network","effectiveType","downlink","rtt","saveData","microphone","camera","geolocation","notifications","media","meta","time","zone","Intl","DateTimeFormat","resolvedOptions","timeZone","offset","Date","getTimezoneOffset","toString","referrer"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "4.13.75",
3
+ "version": "4.13.77",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -150,6 +150,7 @@
150
150
  "esbuild-plugins-node-modules-polyfill": "^1.6.8",
151
151
  "esbuild-rails": "^1.0.7",
152
152
  "esbuild-sass-plugin": "^3.3.1",
153
+ "esbuild-visualizer": "^0.4.0",
153
154
  "eslint": "^9.25.1",
154
155
  "eslint-config-prettier": "^10.1.2",
155
156
  "eslint-plugin-import": "^2.31.0",
package/utils.d.ts CHANGED
@@ -730,7 +730,10 @@ export interface PermissionsInfo {
730
730
  };
731
731
  }
732
732
  export interface MetaInfo {
733
- timezone: string | null;
733
+ time: {
734
+ zone: string;
735
+ offset: string;
736
+ };
734
737
  referrer: string;
735
738
  appType: string;
736
739
  }
@@ -739,7 +742,6 @@ export interface DeviceInformationResult {
739
742
  browser: BrowserInfo;
740
743
  permissions: PermissionsInfo;
741
744
  meta: MetaInfo;
742
- serverDerived: any;
743
745
  }
744
746
  /**
745
747
  *