@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.
- package/configs/esbuild/index.js +2 -1
- package/configs/esbuild/utils.js +49 -2
- package/dist/cjs/utils/deviceInformation.js +55 -95
- package/dist/cjs/utils/deviceInformation.js.map +1 -1
- package/dist/utils/deviceInformation.js +55 -95
- package/dist/utils/deviceInformation.js.map +1 -1
- package/package.json +2 -1
- package/utils.d.ts +4 -2
package/configs/esbuild/index.js
CHANGED
|
@@ -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: {
|
package/configs/esbuild/utils.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
172
|
-
while (1) switch (
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
|
|
188
|
+
permissions: {
|
|
189
|
+
microphone: micPerm,
|
|
190
|
+
camera: camPerm,
|
|
191
|
+
geolocation: geoPerm,
|
|
192
|
+
notifications: notifPerm,
|
|
193
|
+
media: mediaInfo
|
|
201
194
|
},
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
|
203
|
+
case 14:
|
|
244
204
|
case "end":
|
|
245
|
-
return
|
|
205
|
+
return _context3.stop();
|
|
246
206
|
}
|
|
247
|
-
},
|
|
207
|
+
}, _callee3);
|
|
248
208
|
}));
|
|
249
209
|
return function deviceInformation() {
|
|
250
|
-
return
|
|
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
|
|
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
|
|
170
|
-
while (1) switch (
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
186
|
+
permissions: {
|
|
187
|
+
microphone: micPerm,
|
|
188
|
+
camera: camPerm,
|
|
189
|
+
geolocation: geoPerm,
|
|
190
|
+
notifications: notifPerm,
|
|
191
|
+
media: mediaInfo
|
|
199
192
|
},
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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
|
|
201
|
+
case 14:
|
|
242
202
|
case "end":
|
|
243
|
-
return
|
|
203
|
+
return _context3.stop();
|
|
244
204
|
}
|
|
245
|
-
},
|
|
205
|
+
}, _callee3);
|
|
246
206
|
}));
|
|
247
207
|
return function deviceInformation() {
|
|
248
|
-
return
|
|
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.
|
|
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
|
-
|
|
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
|
*
|