@shware/analytics 4.0.0 → 4.1.0
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/_virtual/_rolldown/runtime.cjs +2 -0
- package/dist/_virtual/_rolldown/runtime.mjs +24 -0
- package/dist/hooks/use-outbound-click-analytics.cjs +2 -2
- package/dist/hooks/use-outbound-click-analytics.cjs.map +1 -1
- package/dist/hooks/use-outbound-click-analytics.mjs +2 -2
- package/dist/hooks/use-outbound-click-analytics.mjs.map +1 -1
- package/dist/index.cjs +0 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/native/fingerprint.cjs +3 -3
- package/dist/native/fingerprint.cjs.map +1 -1
- package/dist/native/fingerprint.mjs +3 -3
- package/dist/native/fingerprint.mjs.map +1 -1
- package/dist/native/firebase.cjs.map +1 -1
- package/dist/native/firebase.mjs.map +1 -1
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.mjs +1 -1
- package/dist/native/setup.cjs +3 -5
- package/dist/native/setup.cjs.map +1 -1
- package/dist/native/setup.mjs +3 -5
- package/dist/native/setup.mjs.map +1 -1
- package/dist/next/index.cjs +1 -1
- package/dist/next/index.mjs +1 -1
- package/dist/node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.cjs +1725 -0
- package/dist/node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.cjs.map +1 -0
- package/dist/node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.mjs +1722 -0
- package/dist/node_modules/.pnpm/bowser@2.14.1/node_modules/bowser/es5.mjs.map +1 -0
- package/dist/react-router/index.cjs +2 -2
- package/dist/react-router/index.mjs +2 -2
- package/dist/schema/index.cjs +0 -14
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +1 -150
- package/dist/schema/index.d.cts.map +1 -1
- package/dist/schema/index.d.mts +1 -150
- package/dist/schema/index.d.mts.map +1 -1
- package/dist/schema/index.mjs +2 -15
- package/dist/schema/index.mjs.map +1 -1
- package/dist/server/linkedin-conversions-api.cjs +1 -1
- package/dist/server/linkedin-conversions-api.cjs.map +1 -1
- package/dist/server/linkedin-conversions-api.mjs +1 -1
- package/dist/server/linkedin-conversions-api.mjs.map +1 -1
- package/dist/server/meta-conversions-api.cjs +4 -4
- package/dist/server/meta-conversions-api.cjs.map +1 -1
- package/dist/server/meta-conversions-api.d.cts.map +1 -1
- package/dist/server/meta-conversions-api.d.mts.map +1 -1
- package/dist/server/meta-conversions-api.mjs +4 -4
- package/dist/server/meta-conversions-api.mjs.map +1 -1
- package/dist/server/openai-conversions-api.cjs +1 -1
- package/dist/server/openai-conversions-api.cjs.map +1 -1
- package/dist/server/openai-conversions-api.mjs +1 -1
- package/dist/server/openai-conversions-api.mjs.map +1 -1
- package/dist/server/reddit-conversions-api.cjs +3 -3
- package/dist/server/reddit-conversions-api.cjs.map +1 -1
- package/dist/server/reddit-conversions-api.mjs +3 -3
- package/dist/server/reddit-conversions-api.mjs.map +1 -1
- package/dist/setup/session.cjs.map +1 -1
- package/dist/setup/session.mjs.map +1 -1
- package/dist/tanstack/analytics.cjs +1 -1
- package/dist/tanstack/analytics.mjs +1 -1
- package/dist/third-parties/google-analytics.cjs.map +1 -1
- package/dist/third-parties/google-analytics.d.cts +4 -1
- package/dist/third-parties/google-analytics.d.cts.map +1 -1
- package/dist/third-parties/google-analytics.d.mts +4 -1
- package/dist/third-parties/google-analytics.d.mts.map +1 -1
- package/dist/third-parties/google-analytics.mjs.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.cjs.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.d.cts +4 -1
- package/dist/third-parties/linkedin-insight-tag.d.cts.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.d.mts +4 -1
- package/dist/third-parties/linkedin-insight-tag.d.mts.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.mjs.map +1 -1
- package/dist/third-parties/meta-pixel.cjs.map +1 -1
- package/dist/third-parties/meta-pixel.d.cts +4 -1
- package/dist/third-parties/meta-pixel.d.cts.map +1 -1
- package/dist/third-parties/meta-pixel.d.mts +4 -1
- package/dist/third-parties/meta-pixel.d.mts.map +1 -1
- package/dist/third-parties/meta-pixel.mjs.map +1 -1
- package/dist/third-parties/openai-pixel.cjs +2 -1
- package/dist/third-parties/openai-pixel.cjs.map +1 -1
- package/dist/third-parties/openai-pixel.d.cts +4 -1
- package/dist/third-parties/openai-pixel.d.cts.map +1 -1
- package/dist/third-parties/openai-pixel.d.mts +4 -1
- package/dist/third-parties/openai-pixel.d.mts.map +1 -1
- package/dist/third-parties/openai-pixel.mjs +2 -1
- package/dist/third-parties/openai-pixel.mjs.map +1 -1
- package/dist/third-parties/reddit-pixel.cjs.map +1 -1
- package/dist/third-parties/reddit-pixel.d.cts +4 -1
- package/dist/third-parties/reddit-pixel.d.cts.map +1 -1
- package/dist/third-parties/reddit-pixel.d.mts +4 -1
- package/dist/third-parties/reddit-pixel.d.mts.map +1 -1
- package/dist/third-parties/reddit-pixel.mjs.map +1 -1
- package/dist/track/index.cjs +1 -1
- package/dist/track/index.cjs.map +1 -1
- package/dist/track/index.d.cts.map +1 -1
- package/dist/track/index.d.mts.map +1 -1
- package/dist/track/index.mjs +1 -1
- package/dist/track/index.mjs.map +1 -1
- package/dist/track/oaiq.cjs.map +1 -1
- package/dist/track/oaiq.d.cts +1 -1
- package/dist/track/oaiq.d.cts.map +1 -1
- package/dist/track/oaiq.d.mts +1 -1
- package/dist/track/oaiq.d.mts.map +1 -1
- package/dist/track/oaiq.mjs.map +1 -1
- package/dist/track/rdt.cjs +3 -4
- package/dist/track/rdt.cjs.map +1 -1
- package/dist/track/rdt.mjs +3 -4
- package/dist/track/rdt.mjs.map +1 -1
- package/dist/track/types.d.cts +0 -4
- package/dist/track/types.d.cts.map +1 -1
- package/dist/track/types.d.mts +0 -4
- package/dist/track/types.d.mts.map +1 -1
- package/dist/web/index.cjs +4 -4
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.d.cts.map +1 -1
- package/dist/web/index.d.mts.map +1 -1
- package/dist/web/index.mjs +5 -3
- package/dist/web/index.mjs.map +1 -1
- package/package.json +16 -16
|
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
8
9
|
var __copyProps = (to, from, except, desc) => {
|
|
9
10
|
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
11
|
key = keys[i];
|
|
@@ -20,4 +21,5 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
20
21
|
enumerable: true
|
|
21
22
|
}) : target, mod));
|
|
22
23
|
//#endregion
|
|
24
|
+
exports.__commonJSMin = __commonJSMin;
|
|
23
25
|
exports.__toESM = __toESM;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
|
+
get: ((k) => from[k]).bind(null, key),
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
20
|
+
value: mod,
|
|
21
|
+
enumerable: true
|
|
22
|
+
}) : target, mod));
|
|
23
|
+
//#endregion
|
|
24
|
+
export { __commonJSMin, __toESM };
|
|
@@ -10,14 +10,14 @@ function useOutboundClickAnalytics() {
|
|
|
10
10
|
(0, react.useEffect)(() => {
|
|
11
11
|
const onClick = (event) => {
|
|
12
12
|
const anchor = event.target.closest("a");
|
|
13
|
-
if (!anchor
|
|
13
|
+
if (!anchor?.href) return;
|
|
14
14
|
try {
|
|
15
15
|
const url = new URL(anchor.href, window.location.origin);
|
|
16
16
|
if (url.hostname !== window.location.hostname) require_track_index.track("click", {
|
|
17
17
|
outbound: true,
|
|
18
18
|
link_id: anchor.id || "",
|
|
19
19
|
link_url: anchor.href,
|
|
20
|
-
link_text: anchor.textContent
|
|
20
|
+
link_text: anchor.textContent.trim() || "",
|
|
21
21
|
link_domain: url.hostname,
|
|
22
22
|
link_classes: anchor.className || ""
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-outbound-click-analytics.cjs","names":[],"sources":["../../src/hooks/use-outbound-click-analytics.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { track } from '../track/index';\n\n/**\n * Tracks outbound link clicks - when a user clicks a link that leads away\n * from the current domain to another website.\n */\nexport function useOutboundClickAnalytics() {\n useEffect(() => {\n const onClick = (event: MouseEvent) => {\n // Find the closest anchor element from the clicked target\n const target = event.target as HTMLElement;\n const anchor = target.closest('a');\n if (!anchor
|
|
1
|
+
{"version":3,"file":"use-outbound-click-analytics.cjs","names":[],"sources":["../../src/hooks/use-outbound-click-analytics.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { track } from '../track/index';\n\n/**\n * Tracks outbound link clicks - when a user clicks a link that leads away\n * from the current domain to another website.\n */\nexport function useOutboundClickAnalytics() {\n useEffect(() => {\n const onClick = (event: MouseEvent) => {\n // Find the closest anchor element from the clicked target\n const target = event.target as HTMLElement;\n const anchor = target.closest('a');\n if (!anchor?.href) return;\n\n try {\n const url = new URL(anchor.href, window.location.origin);\n\n // Check if it's an external link (different hostname)\n if (url.hostname !== window.location.hostname) {\n track('click', {\n outbound: true,\n link_id: anchor.id || '',\n link_url: anchor.href,\n link_text: anchor.textContent.trim() || '',\n link_domain: url.hostname,\n link_classes: anchor.className || '',\n });\n }\n } catch {\n // Invalid URL, ignore\n }\n };\n\n document.addEventListener('click', onClick, { passive: true, capture: true });\n return () => document.removeEventListener('click', onClick, { capture: true });\n }, []);\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,4BAA4B;CAC1C,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,MAAM,WAAW,UAAsB;GAGrC,MAAM,SADS,MAAM,OACC,QAAQ,GAAG;GACjC,IAAI,CAAC,QAAQ,MAAM;GAEnB,IAAI;IACF,MAAM,MAAM,IAAI,IAAI,OAAO,MAAM,OAAO,SAAS,MAAM;IAGvD,IAAI,IAAI,aAAa,OAAO,SAAS,UACnC,oBAAA,MAAM,SAAS;KACb,UAAU;KACV,SAAS,OAAO,MAAM;KACtB,UAAU,OAAO;KACjB,WAAW,OAAO,YAAY,KAAK,KAAK;KACxC,aAAa,IAAI;KACjB,cAAc,OAAO,aAAa;IACpC,CAAC;GAEL,QAAQ,CAER;EACF;EAEA,SAAS,iBAAiB,SAAS,SAAS;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC;EAC5E,aAAa,SAAS,oBAAoB,SAAS,SAAS,EAAE,SAAS,KAAK,CAAC;CAC/E,GAAG,CAAC,CAAC;AACP"}
|
|
@@ -9,14 +9,14 @@ function useOutboundClickAnalytics() {
|
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
const onClick = (event) => {
|
|
11
11
|
const anchor = event.target.closest("a");
|
|
12
|
-
if (!anchor
|
|
12
|
+
if (!anchor?.href) return;
|
|
13
13
|
try {
|
|
14
14
|
const url = new URL(anchor.href, window.location.origin);
|
|
15
15
|
if (url.hostname !== window.location.hostname) track("click", {
|
|
16
16
|
outbound: true,
|
|
17
17
|
link_id: anchor.id || "",
|
|
18
18
|
link_url: anchor.href,
|
|
19
|
-
link_text: anchor.textContent
|
|
19
|
+
link_text: anchor.textContent.trim() || "",
|
|
20
20
|
link_domain: url.hostname,
|
|
21
21
|
link_classes: anchor.className || ""
|
|
22
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-outbound-click-analytics.mjs","names":[],"sources":["../../src/hooks/use-outbound-click-analytics.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { track } from '../track/index';\n\n/**\n * Tracks outbound link clicks - when a user clicks a link that leads away\n * from the current domain to another website.\n */\nexport function useOutboundClickAnalytics() {\n useEffect(() => {\n const onClick = (event: MouseEvent) => {\n // Find the closest anchor element from the clicked target\n const target = event.target as HTMLElement;\n const anchor = target.closest('a');\n if (!anchor
|
|
1
|
+
{"version":3,"file":"use-outbound-click-analytics.mjs","names":[],"sources":["../../src/hooks/use-outbound-click-analytics.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { track } from '../track/index';\n\n/**\n * Tracks outbound link clicks - when a user clicks a link that leads away\n * from the current domain to another website.\n */\nexport function useOutboundClickAnalytics() {\n useEffect(() => {\n const onClick = (event: MouseEvent) => {\n // Find the closest anchor element from the clicked target\n const target = event.target as HTMLElement;\n const anchor = target.closest('a');\n if (!anchor?.href) return;\n\n try {\n const url = new URL(anchor.href, window.location.origin);\n\n // Check if it's an external link (different hostname)\n if (url.hostname !== window.location.hostname) {\n track('click', {\n outbound: true,\n link_id: anchor.id || '',\n link_url: anchor.href,\n link_text: anchor.textContent.trim() || '',\n link_domain: url.hostname,\n link_classes: anchor.className || '',\n });\n }\n } catch {\n // Invalid URL, ignore\n }\n };\n\n document.addEventListener('click', onClick, { passive: true, capture: true });\n return () => document.removeEventListener('click', onClick, { capture: true });\n }, []);\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,4BAA4B;CAC1C,gBAAgB;EACd,MAAM,WAAW,UAAsB;GAGrC,MAAM,SADS,MAAM,OACC,QAAQ,GAAG;GACjC,IAAI,CAAC,QAAQ,MAAM;GAEnB,IAAI;IACF,MAAM,MAAM,IAAI,IAAI,OAAO,MAAM,OAAO,SAAS,MAAM;IAGvD,IAAI,IAAI,aAAa,OAAO,SAAS,UACnC,MAAM,SAAS;KACb,UAAU;KACV,SAAS,OAAO,MAAM;KACtB,UAAU,OAAO;KACjB,WAAW,OAAO,YAAY,KAAK,KAAK;KACxC,aAAa,IAAI;KACjB,cAAc,OAAO,aAAa;IACpC,CAAC;GAEL,QAAQ,CAER;EACF;EAEA,SAAS,iBAAiB,SAAS,SAAS;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC;EAC5E,aAAa,SAAS,oBAAoB,SAAS,SAAS,EAAE,SAAS,KAAK,CAAC;CAC/E,GAAG,CAAC,CAAC;AACP"}
|
package/dist/index.cjs
CHANGED
|
@@ -13,7 +13,6 @@ exports.createFeedbackSchema = require_schema_index.createFeedbackSchema;
|
|
|
13
13
|
exports.createLink = require_link_index.createLink;
|
|
14
14
|
exports.createLinkSchema = require_schema_index.createLinkSchema;
|
|
15
15
|
exports.createTrackEventSchema = require_schema_index.createTrackEventSchema;
|
|
16
|
-
exports.createTrackEventSchemaV1 = require_schema_index.createTrackEventSchemaV1;
|
|
17
16
|
exports.createVisitorSchema = require_schema_index.createVisitorSchema;
|
|
18
17
|
exports.getLink = require_link_index.getLink;
|
|
19
18
|
exports.getVisitor = require_visitor_index.getVisitor;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ALL_ENVIRONMENTS, ALL_PLATFORMS, CreateFeedbackDTO, CreateLinkDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema,
|
|
1
|
+
import { ALL_ENVIRONMENTS, ALL_PLATFORMS, CreateFeedbackDTO, CreateLinkDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createVisitorSchema, updateVisitorSchema } from "./schema/index.cjs";
|
|
2
2
|
import { sendFeedback } from "./feedback/index.cjs";
|
|
3
3
|
import { AllowedPropertyValues, Environment, Platform, TrackProperties, TrackTags, UTMParams, UserProvidedData } from "./track/types.cjs";
|
|
4
4
|
import { useTrackImpression } from "./hooks/use-track-impression.cjs";
|
|
@@ -8,4 +8,4 @@ import { sendBeacon, track, trackAsync } from "./track/index.cjs";
|
|
|
8
8
|
import { getVisitor, setVisitor } from "./visitor/index.cjs";
|
|
9
9
|
import { Link, createLink, getLink } from "./link/index.cjs";
|
|
10
10
|
import { stripeMinorUnits } from "./utils/stripe.cjs";
|
|
11
|
-
export { ALL_ENVIRONMENTS, ALL_PLATFORMS, type AllowedPropertyValues, type CreateFeedbackDTO, type CreateLinkDTO, type Environment, type Link, type Platform, type TrackProperties, type TrackTags, type UTMParams, type UserProvidedData, type VisitorProperties, createFeedbackSchema, createLink, createLinkSchema, createTrackEventSchema,
|
|
11
|
+
export { ALL_ENVIRONMENTS, ALL_PLATFORMS, type AllowedPropertyValues, type CreateFeedbackDTO, type CreateLinkDTO, type Environment, type Link, type Platform, type TrackProperties, type TrackTags, type UTMParams, type UserProvidedData, type VisitorProperties, createFeedbackSchema, createLink, createLinkSchema, createTrackEventSchema, createVisitorSchema, getLink, getVisitor, sendBeacon, sendFeedback, setVisitor, setupAnalytics, stripeMinorUnits, track, trackAsync, updateVisitorSchema, useTrackImpression };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ALL_ENVIRONMENTS, ALL_PLATFORMS, CreateFeedbackDTO, CreateLinkDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema,
|
|
1
|
+
import { ALL_ENVIRONMENTS, ALL_PLATFORMS, CreateFeedbackDTO, CreateLinkDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createVisitorSchema, updateVisitorSchema } from "./schema/index.mjs";
|
|
2
2
|
import { sendFeedback } from "./feedback/index.mjs";
|
|
3
3
|
import { AllowedPropertyValues, Environment, Platform, TrackProperties, TrackTags, UTMParams, UserProvidedData } from "./track/types.mjs";
|
|
4
4
|
import { useTrackImpression } from "./hooks/use-track-impression.mjs";
|
|
@@ -8,4 +8,4 @@ import { sendBeacon, track, trackAsync } from "./track/index.mjs";
|
|
|
8
8
|
import { getVisitor, setVisitor } from "./visitor/index.mjs";
|
|
9
9
|
import { Link, createLink, getLink } from "./link/index.mjs";
|
|
10
10
|
import { stripeMinorUnits } from "./utils/stripe.mjs";
|
|
11
|
-
export { ALL_ENVIRONMENTS, ALL_PLATFORMS, type AllowedPropertyValues, type CreateFeedbackDTO, type CreateLinkDTO, type Environment, type Link, type Platform, type TrackProperties, type TrackTags, type UTMParams, type UserProvidedData, type VisitorProperties, createFeedbackSchema, createLink, createLinkSchema, createTrackEventSchema,
|
|
11
|
+
export { ALL_ENVIRONMENTS, ALL_PLATFORMS, type AllowedPropertyValues, type CreateFeedbackDTO, type CreateLinkDTO, type Environment, type Link, type Platform, type TrackProperties, type TrackTags, type UTMParams, type UserProvidedData, type VisitorProperties, createFeedbackSchema, createLink, createLinkSchema, createTrackEventSchema, createVisitorSchema, getLink, getVisitor, sendBeacon, sendFeedback, setVisitor, setupAnalytics, stripeMinorUnits, track, trackAsync, updateVisitorSchema, useTrackImpression };
|
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { getVisitor, setVisitor } from "./visitor/index.mjs";
|
|
|
3
3
|
import { sendBeacon, track, trackAsync } from "./track/index.mjs";
|
|
4
4
|
import { sendFeedback } from "./feedback/index.mjs";
|
|
5
5
|
import { createLink, getLink } from "./link/index.mjs";
|
|
6
|
-
import { ALL_ENVIRONMENTS, ALL_PLATFORMS, createFeedbackSchema, createLinkSchema, createTrackEventSchema,
|
|
6
|
+
import { ALL_ENVIRONMENTS, ALL_PLATFORMS, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createVisitorSchema, updateVisitorSchema } from "./schema/index.mjs";
|
|
7
7
|
import { stripeMinorUnits } from "./utils/stripe.mjs";
|
|
8
8
|
import { useTrackImpression } from "./hooks/use-track-impression.mjs";
|
|
9
|
-
export { ALL_ENVIRONMENTS, ALL_PLATFORMS, createFeedbackSchema, createLink, createLinkSchema, createTrackEventSchema,
|
|
9
|
+
export { ALL_ENVIRONMENTS, ALL_PLATFORMS, createFeedbackSchema, createLink, createLinkSchema, createTrackEventSchema, createVisitorSchema, getLink, getVisitor, sendBeacon, sendFeedback, setVisitor, setupAnalytics, stripeMinorUnits, track, trackAsync, updateVisitorSchema, useTrackImpression };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
let react_native = require("react-native");
|
|
3
2
|
let expo_application = require("expo-application");
|
|
4
3
|
let expo_clipboard = require("expo-clipboard");
|
|
5
4
|
let expo_device = require("expo-device");
|
|
6
5
|
let expo_localization = require("expo-localization");
|
|
6
|
+
let react_native = require("react-native");
|
|
7
7
|
//#region src/native/fingerprint.ts
|
|
8
8
|
/**
|
|
9
9
|
* reference: https://docs.swmansion.com/detour/docs/Architecture/matching
|
|
@@ -32,8 +32,8 @@ async function getProbabilisticFingerprint(shouldUseClipboard = true) {
|
|
|
32
32
|
screen_width,
|
|
33
33
|
screen_height,
|
|
34
34
|
screen_resolution: `${screen_width}x${screen_height}`,
|
|
35
|
-
language: (0, expo_localization.getLocales)()
|
|
36
|
-
time_zone: (0, expo_localization.getCalendars)()
|
|
35
|
+
language: (0, expo_localization.getLocales)().at(0)?.languageTag ?? null,
|
|
36
|
+
time_zone: (0, expo_localization.getCalendars)().at(0)?.timeZone ?? null,
|
|
37
37
|
install_referrer,
|
|
38
38
|
pasted_link: shouldUseClipboard ? await (0, expo_clipboard.getStringAsync)() : null,
|
|
39
39
|
timestamp: Date.now()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.cjs","names":["Platform","Dimensions","osName","osVersion","supportedCpuArchitectures","modelName","manufacturer","modelId","PixelRatio"],"sources":["../../src/native/fingerprint.ts"],"sourcesContent":["/**\n * reference: https://docs.swmansion.com/detour/docs/Architecture/matching\n *\n */\nimport { getInstallReferrerAsync } from 'expo-application';\nimport { getStringAsync } from 'expo-clipboard';\nimport {\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n supportedCpuArchitectures,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\n\n// used when install referrer on android is available\nexport type DeterministicFingerprint = {\n click_id: string | null;\n};\n\nexport type ProbabilisticFingerprint = {\n os: string | null;\n os_name: string | null;\n os_version: string | null;\n cpu_architecture: string | null;\n platform: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';\n device: string | null;\n device_vendor: string | null;\n device_model_id: string | null;\n device_pixel_ratio: number;\n screen_width: number;\n screen_height: number;\n screen_resolution: string;\n language: string | null;\n time_zone: string | null;\n install_referrer: string | null;\n pasted_link: string | null;\n timestamp: number; // 7 days validity\n};\n\nexport async function getDeterministicFingerprint(): Promise<DeterministicFingerprint> {\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n if (!install_referrer) return { click_id: null };\n const params = new URLSearchParams(install_referrer);\n return { click_id: params.get('click_id') ?? null };\n}\n\nexport async function getProbabilisticFingerprint(\n shouldUseClipboard = true\n): Promise<ProbabilisticFingerprint> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n\n return {\n os: osName && osVersion ? `${osName} ${osVersion}` : null,\n os_name: osName,\n os_version: osVersion,\n cpu_architecture: supportedCpuArchitectures?.at(0) ?? null,\n platform: Platform.OS,\n device: modelName,\n device_vendor: manufacturer,\n device_model_id: modelId,\n device_pixel_ratio: PixelRatio.get(),\n screen_width,\n screen_height,\n screen_resolution: `${screen_width}x${screen_height}`,\n language: getLocales()
|
|
1
|
+
{"version":3,"file":"fingerprint.cjs","names":["Platform","Dimensions","osName","osVersion","supportedCpuArchitectures","modelName","manufacturer","modelId","PixelRatio"],"sources":["../../src/native/fingerprint.ts"],"sourcesContent":["/**\n * reference: https://docs.swmansion.com/detour/docs/Architecture/matching\n *\n */\nimport { getInstallReferrerAsync } from 'expo-application';\nimport { getStringAsync } from 'expo-clipboard';\nimport {\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n supportedCpuArchitectures,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\n\n// used when install referrer on android is available\nexport type DeterministicFingerprint = {\n click_id: string | null;\n};\n\nexport type ProbabilisticFingerprint = {\n os: string | null;\n os_name: string | null;\n os_version: string | null;\n cpu_architecture: string | null;\n platform: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';\n device: string | null;\n device_vendor: string | null;\n device_model_id: string | null;\n device_pixel_ratio: number;\n screen_width: number;\n screen_height: number;\n screen_resolution: string;\n language: string | null;\n time_zone: string | null;\n install_referrer: string | null;\n pasted_link: string | null;\n timestamp: number; // 7 days validity\n};\n\nexport async function getDeterministicFingerprint(): Promise<DeterministicFingerprint> {\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n if (!install_referrer) return { click_id: null };\n const params = new URLSearchParams(install_referrer);\n return { click_id: params.get('click_id') ?? null };\n}\n\nexport async function getProbabilisticFingerprint(\n shouldUseClipboard = true\n): Promise<ProbabilisticFingerprint> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n\n return {\n os: osName && osVersion ? `${osName} ${osVersion}` : null,\n os_name: osName,\n os_version: osVersion,\n cpu_architecture: supportedCpuArchitectures?.at(0) ?? null,\n platform: Platform.OS,\n device: modelName,\n device_vendor: manufacturer,\n device_model_id: modelId,\n device_pixel_ratio: PixelRatio.get(),\n screen_width,\n screen_height,\n screen_resolution: `${screen_width}x${screen_height}`,\n language: getLocales().at(0)?.languageTag ?? null,\n time_zone: getCalendars().at(0)?.timeZone ?? null,\n install_referrer,\n pasted_link: shouldUseClipboard ? await getStringAsync() : null,\n timestamp: Date.now(),\n };\n}\n"],"mappings":";;;;;;;;;;;AA0CA,eAAsB,8BAAiE;CACrF,MAAM,mBAAmBA,aAAAA,SAAS,OAAO,YAAY,OAAA,GAAA,iBAAA,wBAAA,CAA8B,IAAI;CACvF,IAAI,CAAC,kBAAkB,OAAO,EAAE,UAAU,KAAK;CAE/C,OAAO,EAAE,UAAU,IADA,gBAAgB,gBACX,CAAC,CAAC,IAAI,UAAU,KAAK,KAAK;AACpD;AAEA,eAAsB,4BACpB,qBAAqB,MACc;CACnC,MAAM,SAASC,aAAAA,WAAW,IAAI,QAAQ;CACtC,MAAM,eAAe,KAAK,MAAM,OAAO,KAAK;CAC5C,MAAM,gBAAgB,KAAK,MAAM,OAAO,MAAM;CAC9C,MAAM,mBAAmBD,aAAAA,SAAS,OAAO,YAAY,OAAA,GAAA,iBAAA,wBAAA,CAA8B,IAAI;CAEvF,OAAO;EACL,IAAIE,YAAAA,UAAUC,YAAAA,YAAY,GAAGD,YAAAA,OAAO,GAAGC,YAAAA,cAAc;EACrD,SAASD,YAAAA;EACT,YAAYC,YAAAA;EACZ,kBAAkBC,YAAAA,2BAA2B,GAAG,CAAC,KAAK;EACtD,UAAUJ,aAAAA,SAAS;EACnB,QAAQK,YAAAA;EACR,eAAeC,YAAAA;EACf,iBAAiBC,YAAAA;EACjB,oBAAoBC,aAAAA,WAAW,IAAI;EACnC;EACA;EACA,mBAAmB,GAAG,aAAa,GAAG;EACtC,WAAA,GAAA,kBAAA,WAAA,CAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe;EAC7C,YAAA,GAAA,kBAAA,aAAA,CAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY;EAC7C;EACA,aAAa,qBAAqB,OAAA,GAAA,eAAA,eAAA,CAAqB,IAAI;EAC3D,WAAW,KAAK,IAAI;CACtB;AACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Dimensions, PixelRatio, Platform } from "react-native";
|
|
2
1
|
import { getInstallReferrerAsync } from "expo-application";
|
|
3
2
|
import { getStringAsync } from "expo-clipboard";
|
|
4
3
|
import { manufacturer, modelId, modelName, osName, osVersion, supportedCpuArchitectures } from "expo-device";
|
|
5
4
|
import { getCalendars, getLocales } from "expo-localization";
|
|
5
|
+
import { Dimensions, PixelRatio, Platform } from "react-native";
|
|
6
6
|
//#region src/native/fingerprint.ts
|
|
7
7
|
/**
|
|
8
8
|
* reference: https://docs.swmansion.com/detour/docs/Architecture/matching
|
|
@@ -31,8 +31,8 @@ async function getProbabilisticFingerprint(shouldUseClipboard = true) {
|
|
|
31
31
|
screen_width,
|
|
32
32
|
screen_height,
|
|
33
33
|
screen_resolution: `${screen_width}x${screen_height}`,
|
|
34
|
-
language: getLocales()
|
|
35
|
-
time_zone: getCalendars()
|
|
34
|
+
language: getLocales().at(0)?.languageTag ?? null,
|
|
35
|
+
time_zone: getCalendars().at(0)?.timeZone ?? null,
|
|
36
36
|
install_referrer,
|
|
37
37
|
pasted_link: shouldUseClipboard ? await getStringAsync() : null,
|
|
38
38
|
timestamp: Date.now()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.mjs","names":[],"sources":["../../src/native/fingerprint.ts"],"sourcesContent":["/**\n * reference: https://docs.swmansion.com/detour/docs/Architecture/matching\n *\n */\nimport { getInstallReferrerAsync } from 'expo-application';\nimport { getStringAsync } from 'expo-clipboard';\nimport {\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n supportedCpuArchitectures,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\n\n// used when install referrer on android is available\nexport type DeterministicFingerprint = {\n click_id: string | null;\n};\n\nexport type ProbabilisticFingerprint = {\n os: string | null;\n os_name: string | null;\n os_version: string | null;\n cpu_architecture: string | null;\n platform: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';\n device: string | null;\n device_vendor: string | null;\n device_model_id: string | null;\n device_pixel_ratio: number;\n screen_width: number;\n screen_height: number;\n screen_resolution: string;\n language: string | null;\n time_zone: string | null;\n install_referrer: string | null;\n pasted_link: string | null;\n timestamp: number; // 7 days validity\n};\n\nexport async function getDeterministicFingerprint(): Promise<DeterministicFingerprint> {\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n if (!install_referrer) return { click_id: null };\n const params = new URLSearchParams(install_referrer);\n return { click_id: params.get('click_id') ?? null };\n}\n\nexport async function getProbabilisticFingerprint(\n shouldUseClipboard = true\n): Promise<ProbabilisticFingerprint> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n\n return {\n os: osName && osVersion ? `${osName} ${osVersion}` : null,\n os_name: osName,\n os_version: osVersion,\n cpu_architecture: supportedCpuArchitectures?.at(0) ?? null,\n platform: Platform.OS,\n device: modelName,\n device_vendor: manufacturer,\n device_model_id: modelId,\n device_pixel_ratio: PixelRatio.get(),\n screen_width,\n screen_height,\n screen_resolution: `${screen_width}x${screen_height}`,\n language: getLocales()
|
|
1
|
+
{"version":3,"file":"fingerprint.mjs","names":[],"sources":["../../src/native/fingerprint.ts"],"sourcesContent":["/**\n * reference: https://docs.swmansion.com/detour/docs/Architecture/matching\n *\n */\nimport { getInstallReferrerAsync } from 'expo-application';\nimport { getStringAsync } from 'expo-clipboard';\nimport {\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n supportedCpuArchitectures,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\n\n// used when install referrer on android is available\nexport type DeterministicFingerprint = {\n click_id: string | null;\n};\n\nexport type ProbabilisticFingerprint = {\n os: string | null;\n os_name: string | null;\n os_version: string | null;\n cpu_architecture: string | null;\n platform: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';\n device: string | null;\n device_vendor: string | null;\n device_model_id: string | null;\n device_pixel_ratio: number;\n screen_width: number;\n screen_height: number;\n screen_resolution: string;\n language: string | null;\n time_zone: string | null;\n install_referrer: string | null;\n pasted_link: string | null;\n timestamp: number; // 7 days validity\n};\n\nexport async function getDeterministicFingerprint(): Promise<DeterministicFingerprint> {\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n if (!install_referrer) return { click_id: null };\n const params = new URLSearchParams(install_referrer);\n return { click_id: params.get('click_id') ?? null };\n}\n\nexport async function getProbabilisticFingerprint(\n shouldUseClipboard = true\n): Promise<ProbabilisticFingerprint> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : null;\n\n return {\n os: osName && osVersion ? `${osName} ${osVersion}` : null,\n os_name: osName,\n os_version: osVersion,\n cpu_architecture: supportedCpuArchitectures?.at(0) ?? null,\n platform: Platform.OS,\n device: modelName,\n device_vendor: manufacturer,\n device_model_id: modelId,\n device_pixel_ratio: PixelRatio.get(),\n screen_width,\n screen_height,\n screen_resolution: `${screen_width}x${screen_height}`,\n language: getLocales().at(0)?.languageTag ?? null,\n time_zone: getCalendars().at(0)?.timeZone ?? null,\n install_referrer,\n pasted_link: shouldUseClipboard ? await getStringAsync() : null,\n timestamp: Date.now(),\n };\n}\n"],"mappings":";;;;;;;;;;AA0CA,eAAsB,8BAAiE;CACrF,MAAM,mBAAmB,SAAS,OAAO,YAAY,MAAM,wBAAwB,IAAI;CACvF,IAAI,CAAC,kBAAkB,OAAO,EAAE,UAAU,KAAK;CAE/C,OAAO,EAAE,UAAU,IADA,gBAAgB,gBACX,CAAC,CAAC,IAAI,UAAU,KAAK,KAAK;AACpD;AAEA,eAAsB,4BACpB,qBAAqB,MACc;CACnC,MAAM,SAAS,WAAW,IAAI,QAAQ;CACtC,MAAM,eAAe,KAAK,MAAM,OAAO,KAAK;CAC5C,MAAM,gBAAgB,KAAK,MAAM,OAAO,MAAM;CAC9C,MAAM,mBAAmB,SAAS,OAAO,YAAY,MAAM,wBAAwB,IAAI;CAEvF,OAAO;EACL,IAAI,UAAU,YAAY,GAAG,OAAO,GAAG,cAAc;EACrD,SAAS;EACT,YAAY;EACZ,kBAAkB,2BAA2B,GAAG,CAAC,KAAK;EACtD,UAAU,SAAS;EACnB,QAAQ;EACR,eAAe;EACf,iBAAiB;EACjB,oBAAoB,WAAW,IAAI;EACnC;EACA;EACA,mBAAmB,GAAG,aAAa,GAAG;EACtC,UAAU,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe;EAC7C,WAAW,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY;EAC7C;EACA,aAAa,qBAAqB,MAAM,eAAe,IAAI;EAC3D,WAAW,KAAK,IAAI;CACtB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.cjs","names":[],"sources":["../../src/native/firebase.ts"],"sourcesContent":["import { getAnalytics, logEvent } from '@react-native-firebase/analytics';\nimport type { StandardEvents } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\nconst analytics = getAnalytics();\n\nexport async function sendFirebaseEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (name === 'screen_view') {\n await logEvent(analytics, 'screen_view', {\n firebase_screen: (properties as StandardEvents['screen_view'])?.screen_name,\n firebase_screen_class: (properties as StandardEvents['screen_view'])?.screen_class,\n });\n } else {\n await logEvent(analytics, name, properties);\n }\n}\n"],"mappings":";;;AAIA,MAAM,aAAA,GAAA,iCAAA,aAAA,CAAyB;AAE/B,eAAsB,kBACpB,MACA,YACA;CACA,IAAI,SAAS,eACX,OAAA,GAAA,iCAAA,SAAA,CAAe,WAAW,eAAe;EACvC,iBAAkB,
|
|
1
|
+
{"version":3,"file":"firebase.cjs","names":[],"sources":["../../src/native/firebase.ts"],"sourcesContent":["import { getAnalytics, logEvent } from '@react-native-firebase/analytics';\nimport type { StandardEvents } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\nconst analytics = getAnalytics();\n\nexport async function sendFirebaseEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (name === 'screen_view') {\n await logEvent(analytics, 'screen_view', {\n firebase_screen: (properties as StandardEvents['screen_view'] | undefined)?.screen_name,\n firebase_screen_class: (properties as StandardEvents['screen_view'] | undefined)\n ?.screen_class,\n });\n } else {\n await logEvent(analytics, name, properties);\n }\n}\n"],"mappings":";;;AAIA,MAAM,aAAA,GAAA,iCAAA,aAAA,CAAyB;AAE/B,eAAsB,kBACpB,MACA,YACA;CACA,IAAI,SAAS,eACX,OAAA,GAAA,iCAAA,SAAA,CAAe,WAAW,eAAe;EACvC,iBAAkB,YAA0D;EAC5E,uBAAwB,YACpB;CACN,CAAC;MAED,OAAA,GAAA,iCAAA,SAAA,CAAe,WAAW,MAAM,UAAU;AAE9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.mjs","names":[],"sources":["../../src/native/firebase.ts"],"sourcesContent":["import { getAnalytics, logEvent } from '@react-native-firebase/analytics';\nimport type { StandardEvents } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\nconst analytics = getAnalytics();\n\nexport async function sendFirebaseEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (name === 'screen_view') {\n await logEvent(analytics, 'screen_view', {\n firebase_screen: (properties as StandardEvents['screen_view'])?.screen_name,\n firebase_screen_class: (properties as StandardEvents['screen_view'])?.screen_class,\n });\n } else {\n await logEvent(analytics, name, properties);\n }\n}\n"],"mappings":";;AAIA,MAAM,YAAY,aAAa;AAE/B,eAAsB,kBACpB,MACA,YACA;CACA,IAAI,SAAS,eACX,MAAM,SAAS,WAAW,eAAe;EACvC,iBAAkB,
|
|
1
|
+
{"version":3,"file":"firebase.mjs","names":[],"sources":["../../src/native/firebase.ts"],"sourcesContent":["import { getAnalytics, logEvent } from '@react-native-firebase/analytics';\nimport type { StandardEvents } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\nconst analytics = getAnalytics();\n\nexport async function sendFirebaseEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (name === 'screen_view') {\n await logEvent(analytics, 'screen_view', {\n firebase_screen: (properties as StandardEvents['screen_view'] | undefined)?.screen_name,\n firebase_screen_class: (properties as StandardEvents['screen_view'] | undefined)\n ?.screen_class,\n });\n } else {\n await logEvent(analytics, name, properties);\n }\n}\n"],"mappings":";;AAIA,MAAM,YAAY,aAAa;AAE/B,eAAsB,kBACpB,MACA,YACA;CACA,IAAI,SAAS,eACX,MAAM,SAAS,WAAW,eAAe;EACvC,iBAAkB,YAA0D;EAC5E,uBAAwB,YACpB;CACN,CAAC;MAED,MAAM,SAAS,WAAW,MAAM,UAAU;AAE9C"}
|
package/dist/native/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_hooks_use_app_analytics = require("../hooks/use-app-analytics.cjs");
|
|
3
2
|
const require_native_fingerprint = require("./fingerprint.cjs");
|
|
4
3
|
const require_native_setup = require("./setup.cjs");
|
|
4
|
+
const require_hooks_use_app_analytics = require("../hooks/use-app-analytics.cjs");
|
|
5
5
|
exports.getDeterministicFingerprint = require_native_fingerprint.getDeterministicFingerprint;
|
|
6
6
|
exports.getDeviceId = require_native_setup.getDeviceId;
|
|
7
7
|
exports.getDeviceType = require_native_setup.getDeviceType;
|
package/dist/native/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useAppAnalytics } from "../hooks/use-app-analytics.mjs";
|
|
2
1
|
import { getDeterministicFingerprint, getProbabilisticFingerprint } from "./fingerprint.mjs";
|
|
3
2
|
import { getDeviceId, getDeviceType, getTags, storage } from "./setup.mjs";
|
|
3
|
+
import { useAppAnalytics } from "../hooks/use-app-analytics.mjs";
|
|
4
4
|
export { getDeterministicFingerprint, getDeviceId, getDeviceType, getProbabilisticFingerprint, getTags, storage, useAppAnalytics };
|
package/dist/native/setup.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_setup_index = require("../setup/index.cjs");
|
|
3
|
-
let react_native = require("react-native");
|
|
4
3
|
let expo_application = require("expo-application");
|
|
5
4
|
let expo_device = require("expo-device");
|
|
6
5
|
let expo_localization = require("expo-localization");
|
|
6
|
+
let react_native = require("react-native");
|
|
7
7
|
require("expo-sqlite/localStorage/install");
|
|
8
8
|
let expo_crypto = require("expo-crypto");
|
|
9
9
|
let expo_tracking_transparency = require("expo-tracking-transparency");
|
|
@@ -60,7 +60,6 @@ async function getTags() {
|
|
|
60
60
|
os: `${expo_device.osName} ${expo_device.osVersion}`,
|
|
61
61
|
os_name: expo_device.osName ?? void 0,
|
|
62
62
|
os_version: expo_device.osVersion ?? void 0,
|
|
63
|
-
platform: react_native.Platform.OS,
|
|
64
63
|
device: expo_device.modelName ?? void 0,
|
|
65
64
|
device_id: await getDeviceId(),
|
|
66
65
|
device_type: getDeviceType(),
|
|
@@ -71,9 +70,8 @@ async function getTags() {
|
|
|
71
70
|
screen_height,
|
|
72
71
|
screen_resolution: `${screen_width}x${screen_height}`,
|
|
73
72
|
release: require_setup_index.config.release,
|
|
74
|
-
language: (0, expo_localization.getLocales)()
|
|
75
|
-
time_zone: (0, expo_localization.getCalendars)()
|
|
76
|
-
environment: __DEV__ ? "development" : "production",
|
|
73
|
+
language: (0, expo_localization.getLocales)().at(0)?.languageTag ?? "en",
|
|
74
|
+
time_zone: (0, expo_localization.getCalendars)().at(0)?.timeZone ?? "UTC",
|
|
77
75
|
source: "app",
|
|
78
76
|
advertising_id: (0, expo_tracking_transparency.getAdvertisingId)() ?? void 0,
|
|
79
77
|
install_referrer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.cjs","names":["Platform","deviceType","DeviceType","Dimensions","URLSearchParams","osName","osVersion","modelName","manufacturer","modelId","PixelRatio","config"],"sources":["../../src/native/setup.ts"],"sourcesContent":["import 'expo-sqlite/localStorage/install';\nimport { getAndroidId, getInstallReferrerAsync, getIosIdForVendorAsync } from 'expo-application';\nimport { randomUUID } from 'expo-crypto';\nimport {\n DeviceType,\n deviceType,\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { getAdvertisingId } from 'expo-tracking-transparency';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\nimport { URLSearchParams } from 'react-native-url-polyfill';\nimport { type Storage, cache, config } from '../setup/index';\nimport type { TrackTags } from '../track/types';\n\nconst map = new Map<string, string>();\n\nexport const storage: Storage = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch {\n console.error('localStorage is not available');\n return map.get(key) ?? null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch {\n console.error('localStorage is not available');\n map.set(key, value);\n }\n },\n};\n\nexport async function getDeviceId(): Promise<string> {\n let deviceId: string | null = null;\n if (Platform.OS === 'ios') {\n deviceId = await getIosIdForVendorAsync();\n } else if (Platform.OS === 'android') {\n deviceId = getAndroidId();\n }\n if (!deviceId) {\n deviceId = localStorage.getItem('device_id');\n if (!deviceId) {\n deviceId = randomUUID();\n localStorage.setItem('device_id', deviceId);\n }\n }\n return deviceId;\n}\n\nexport function getDeviceType(): string | undefined {\n switch (deviceType) {\n case DeviceType.PHONE:\n return 'mobile';\n case DeviceType.TABLET:\n return 'tablet';\n case DeviceType.DESKTOP:\n return 'desktop';\n case DeviceType.TV:\n return 'smarttv';\n default:\n return undefined;\n }\n}\n\nexport async function getTags(): Promise<TrackTags> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : undefined;\n const params = new URLSearchParams(install_referrer);\n\n const tags: TrackTags = {\n os: `${osName} ${osVersion}`,\n os_name: osName ?? undefined,\n os_version: osVersion ?? undefined,\n
|
|
1
|
+
{"version":3,"file":"setup.cjs","names":["Platform","deviceType","DeviceType","Dimensions","URLSearchParams","osName","osVersion","modelName","manufacturer","modelId","PixelRatio","config"],"sources":["../../src/native/setup.ts"],"sourcesContent":["import 'expo-sqlite/localStorage/install';\nimport { getAndroidId, getInstallReferrerAsync, getIosIdForVendorAsync } from 'expo-application';\nimport { randomUUID } from 'expo-crypto';\nimport {\n DeviceType,\n deviceType,\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { getAdvertisingId } from 'expo-tracking-transparency';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\nimport { URLSearchParams } from 'react-native-url-polyfill';\nimport { type Storage, cache, config } from '../setup/index';\nimport type { TrackTags } from '../track/types';\n\nconst map = new Map<string, string>();\n\nexport const storage: Storage = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch {\n console.error('localStorage is not available');\n return map.get(key) ?? null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch {\n console.error('localStorage is not available');\n map.set(key, value);\n }\n },\n};\n\nexport async function getDeviceId(): Promise<string> {\n let deviceId: string | null = null;\n if (Platform.OS === 'ios') {\n deviceId = await getIosIdForVendorAsync();\n } else if (Platform.OS === 'android') {\n deviceId = getAndroidId();\n }\n if (!deviceId) {\n deviceId = localStorage.getItem('device_id');\n if (!deviceId) {\n deviceId = randomUUID();\n localStorage.setItem('device_id', deviceId);\n }\n }\n return deviceId;\n}\n\nexport function getDeviceType(): string | undefined {\n switch (deviceType) {\n case DeviceType.PHONE:\n return 'mobile';\n case DeviceType.TABLET:\n return 'tablet';\n case DeviceType.DESKTOP:\n return 'desktop';\n case DeviceType.TV:\n return 'smarttv';\n default:\n return undefined;\n }\n}\n\nexport async function getTags(): Promise<TrackTags> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : undefined;\n const params = new URLSearchParams(install_referrer);\n\n const tags: TrackTags = {\n os: `${osName} ${osVersion}`,\n os_name: osName ?? undefined,\n os_version: osVersion ?? undefined,\n device: modelName ?? undefined,\n device_id: await getDeviceId(),\n device_type: getDeviceType(),\n device_vendor: manufacturer ?? undefined,\n device_model_id: modelId ?? undefined,\n device_pixel_ratio: PixelRatio.get(),\n screen_width,\n screen_height,\n screen_resolution: `${screen_width}x${screen_height}`,\n release: config.release,\n language: getLocales().at(0)?.languageTag ?? 'en',\n time_zone: getCalendars().at(0)?.timeZone ?? 'UTC',\n source: 'app',\n // ads\n advertising_id: getAdvertisingId() ?? undefined,\n install_referrer,\n // utm params\n utm_source: params.get('utm_source') ?? undefined,\n utm_medium: params.get('utm_medium') ?? undefined,\n utm_campaign: params.get('utm_campaign') ?? undefined,\n utm_term: params.get('utm_term') ?? undefined,\n utm_content: params.get('utm_content') ?? undefined,\n utm_id: params.get('utm_id') ?? undefined,\n utm_source_platform: params.get('utm_source_platform') ?? undefined,\n utm_creative_format: params.get('utm_creative_format') ?? undefined,\n utm_marketing_tactic: params.get('utm_marketing_tactic') ?? undefined,\n };\n\n cache.tags = tags;\n return tags;\n}\n"],"mappings":";;;;;;;;;;;AAmBA,MAAM,sBAAM,IAAI,IAAoB;AAEpC,MAAa,UAAmB;CAC9B,UAAU,QAAQ;EAChB,IAAI;GACF,OAAO,aAAa,QAAQ,GAAG;EACjC,QAAQ;GACN,QAAQ,MAAM,+BAA+B;GAC7C,OAAO,IAAI,IAAI,GAAG,KAAK;EACzB;CACF;CACA,UAAU,KAAK,UAAU;EACvB,IAAI;GACF,aAAa,QAAQ,KAAK,KAAK;EACjC,QAAQ;GACN,QAAQ,MAAM,+BAA+B;GAC7C,IAAI,IAAI,KAAK,KAAK;EACpB;CACF;AACF;AAEA,eAAsB,cAA+B;CACnD,IAAI,WAA0B;CAC9B,IAAIA,aAAAA,SAAS,OAAO,OAClB,WAAW,OAAA,GAAA,iBAAA,uBAAA,CAA6B;MACnC,IAAIA,aAAAA,SAAS,OAAO,WACzB,YAAA,GAAA,iBAAA,aAAA,CAAwB;CAE1B,IAAI,CAAC,UAAU;EACb,WAAW,aAAa,QAAQ,WAAW;EAC3C,IAAI,CAAC,UAAU;GACb,YAAA,GAAA,YAAA,WAAA,CAAsB;GACtB,aAAa,QAAQ,aAAa,QAAQ;EAC5C;CACF;CACA,OAAO;AACT;AAEA,SAAgB,gBAAoC;CAClD,QAAQC,YAAAA,YAAR;EACE,KAAKC,YAAAA,WAAW,OACd,OAAO;EACT,KAAKA,YAAAA,WAAW,QACd,OAAO;EACT,KAAKA,YAAAA,WAAW,SACd,OAAO;EACT,KAAKA,YAAAA,WAAW,IACd,OAAO;EACT,SACE;CACJ;AACF;AAEA,eAAsB,UAA8B;CAClD,MAAM,SAASC,aAAAA,WAAW,IAAI,QAAQ;CACtC,MAAM,eAAe,KAAK,MAAM,OAAO,KAAK;CAC5C,MAAM,gBAAgB,KAAK,MAAM,OAAO,MAAM;CAE9C,MAAM,mBAAmBH,aAAAA,SAAS,OAAO,YAAY,OAAA,GAAA,iBAAA,wBAAA,CAA8B,IAAI,KAAA;CACvF,MAAM,SAAS,IAAII,0BAAAA,gBAAgB,gBAAgB;CAEnD,MAAM,OAAkB;EACtB,IAAI,GAAGC,YAAAA,OAAO,GAAGC,YAAAA;EACjB,SAASD,YAAAA,UAAU,KAAA;EACnB,YAAYC,YAAAA,aAAa,KAAA;EACzB,QAAQC,YAAAA,aAAa,KAAA;EACrB,WAAW,MAAM,YAAY;EAC7B,aAAa,cAAc;EAC3B,eAAeC,YAAAA,gBAAgB,KAAA;EAC/B,iBAAiBC,YAAAA,WAAW,KAAA;EAC5B,oBAAoBC,aAAAA,WAAW,IAAI;EACnC;EACA;EACA,mBAAmB,GAAG,aAAa,GAAG;EACtC,SAASC,oBAAAA,OAAO;EAChB,WAAA,GAAA,kBAAA,WAAA,CAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe;EAC7C,YAAA,GAAA,kBAAA,aAAA,CAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY;EAC7C,QAAQ;EAER,iBAAA,GAAA,2BAAA,iBAAA,CAAiC,KAAK,KAAA;EACtC;EAEA,YAAY,OAAO,IAAI,YAAY,KAAK,KAAA;EACxC,YAAY,OAAO,IAAI,YAAY,KAAK,KAAA;EACxC,cAAc,OAAO,IAAI,cAAc,KAAK,KAAA;EAC5C,UAAU,OAAO,IAAI,UAAU,KAAK,KAAA;EACpC,aAAa,OAAO,IAAI,aAAa,KAAK,KAAA;EAC1C,QAAQ,OAAO,IAAI,QAAQ,KAAK,KAAA;EAChC,qBAAqB,OAAO,IAAI,qBAAqB,KAAK,KAAA;EAC1D,qBAAqB,OAAO,IAAI,qBAAqB,KAAK,KAAA;EAC1D,sBAAsB,OAAO,IAAI,sBAAsB,KAAK,KAAA;CAC9D;CAEA,oBAAA,MAAM,OAAO;CACb,OAAO;AACT"}
|
package/dist/native/setup.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { cache, config } from "../setup/index.mjs";
|
|
2
|
-
import { Dimensions, PixelRatio, Platform } from "react-native";
|
|
3
2
|
import { getAndroidId, getInstallReferrerAsync, getIosIdForVendorAsync } from "expo-application";
|
|
4
3
|
import { DeviceType, deviceType, manufacturer, modelId, modelName, osName, osVersion } from "expo-device";
|
|
5
4
|
import { getCalendars, getLocales } from "expo-localization";
|
|
5
|
+
import { Dimensions, PixelRatio, Platform } from "react-native";
|
|
6
6
|
import "expo-sqlite/localStorage/install";
|
|
7
7
|
import { randomUUID } from "expo-crypto";
|
|
8
8
|
import { getAdvertisingId } from "expo-tracking-transparency";
|
|
@@ -59,7 +59,6 @@ async function getTags() {
|
|
|
59
59
|
os: `${osName} ${osVersion}`,
|
|
60
60
|
os_name: osName ?? void 0,
|
|
61
61
|
os_version: osVersion ?? void 0,
|
|
62
|
-
platform: Platform.OS,
|
|
63
62
|
device: modelName ?? void 0,
|
|
64
63
|
device_id: await getDeviceId(),
|
|
65
64
|
device_type: getDeviceType(),
|
|
@@ -70,9 +69,8 @@ async function getTags() {
|
|
|
70
69
|
screen_height,
|
|
71
70
|
screen_resolution: `${screen_width}x${screen_height}`,
|
|
72
71
|
release: config.release,
|
|
73
|
-
language: getLocales()
|
|
74
|
-
time_zone: getCalendars()
|
|
75
|
-
environment: __DEV__ ? "development" : "production",
|
|
72
|
+
language: getLocales().at(0)?.languageTag ?? "en",
|
|
73
|
+
time_zone: getCalendars().at(0)?.timeZone ?? "UTC",
|
|
76
74
|
source: "app",
|
|
77
75
|
advertising_id: getAdvertisingId() ?? void 0,
|
|
78
76
|
install_referrer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.mjs","names":[],"sources":["../../src/native/setup.ts"],"sourcesContent":["import 'expo-sqlite/localStorage/install';\nimport { getAndroidId, getInstallReferrerAsync, getIosIdForVendorAsync } from 'expo-application';\nimport { randomUUID } from 'expo-crypto';\nimport {\n DeviceType,\n deviceType,\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { getAdvertisingId } from 'expo-tracking-transparency';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\nimport { URLSearchParams } from 'react-native-url-polyfill';\nimport { type Storage, cache, config } from '../setup/index';\nimport type { TrackTags } from '../track/types';\n\nconst map = new Map<string, string>();\n\nexport const storage: Storage = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch {\n console.error('localStorage is not available');\n return map.get(key) ?? null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch {\n console.error('localStorage is not available');\n map.set(key, value);\n }\n },\n};\n\nexport async function getDeviceId(): Promise<string> {\n let deviceId: string | null = null;\n if (Platform.OS === 'ios') {\n deviceId = await getIosIdForVendorAsync();\n } else if (Platform.OS === 'android') {\n deviceId = getAndroidId();\n }\n if (!deviceId) {\n deviceId = localStorage.getItem('device_id');\n if (!deviceId) {\n deviceId = randomUUID();\n localStorage.setItem('device_id', deviceId);\n }\n }\n return deviceId;\n}\n\nexport function getDeviceType(): string | undefined {\n switch (deviceType) {\n case DeviceType.PHONE:\n return 'mobile';\n case DeviceType.TABLET:\n return 'tablet';\n case DeviceType.DESKTOP:\n return 'desktop';\n case DeviceType.TV:\n return 'smarttv';\n default:\n return undefined;\n }\n}\n\nexport async function getTags(): Promise<TrackTags> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : undefined;\n const params = new URLSearchParams(install_referrer);\n\n const tags: TrackTags = {\n os: `${osName} ${osVersion}`,\n os_name: osName ?? undefined,\n os_version: osVersion ?? undefined,\n
|
|
1
|
+
{"version":3,"file":"setup.mjs","names":[],"sources":["../../src/native/setup.ts"],"sourcesContent":["import 'expo-sqlite/localStorage/install';\nimport { getAndroidId, getInstallReferrerAsync, getIosIdForVendorAsync } from 'expo-application';\nimport { randomUUID } from 'expo-crypto';\nimport {\n DeviceType,\n deviceType,\n manufacturer,\n modelId,\n modelName,\n osName,\n osVersion,\n} from 'expo-device';\nimport { getCalendars, getLocales } from 'expo-localization';\nimport { getAdvertisingId } from 'expo-tracking-transparency';\nimport { Dimensions, PixelRatio, Platform } from 'react-native';\nimport { URLSearchParams } from 'react-native-url-polyfill';\nimport { type Storage, cache, config } from '../setup/index';\nimport type { TrackTags } from '../track/types';\n\nconst map = new Map<string, string>();\n\nexport const storage: Storage = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch {\n console.error('localStorage is not available');\n return map.get(key) ?? null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch {\n console.error('localStorage is not available');\n map.set(key, value);\n }\n },\n};\n\nexport async function getDeviceId(): Promise<string> {\n let deviceId: string | null = null;\n if (Platform.OS === 'ios') {\n deviceId = await getIosIdForVendorAsync();\n } else if (Platform.OS === 'android') {\n deviceId = getAndroidId();\n }\n if (!deviceId) {\n deviceId = localStorage.getItem('device_id');\n if (!deviceId) {\n deviceId = randomUUID();\n localStorage.setItem('device_id', deviceId);\n }\n }\n return deviceId;\n}\n\nexport function getDeviceType(): string | undefined {\n switch (deviceType) {\n case DeviceType.PHONE:\n return 'mobile';\n case DeviceType.TABLET:\n return 'tablet';\n case DeviceType.DESKTOP:\n return 'desktop';\n case DeviceType.TV:\n return 'smarttv';\n default:\n return undefined;\n }\n}\n\nexport async function getTags(): Promise<TrackTags> {\n const screen = Dimensions.get('screen');\n const screen_width = Math.floor(screen.width);\n const screen_height = Math.floor(screen.height);\n\n const install_referrer = Platform.OS === 'android' ? await getInstallReferrerAsync() : undefined;\n const params = new URLSearchParams(install_referrer);\n\n const tags: TrackTags = {\n os: `${osName} ${osVersion}`,\n os_name: osName ?? undefined,\n os_version: osVersion ?? undefined,\n device: modelName ?? undefined,\n device_id: await getDeviceId(),\n device_type: getDeviceType(),\n device_vendor: manufacturer ?? undefined,\n device_model_id: modelId ?? undefined,\n device_pixel_ratio: PixelRatio.get(),\n screen_width,\n screen_height,\n screen_resolution: `${screen_width}x${screen_height}`,\n release: config.release,\n language: getLocales().at(0)?.languageTag ?? 'en',\n time_zone: getCalendars().at(0)?.timeZone ?? 'UTC',\n source: 'app',\n // ads\n advertising_id: getAdvertisingId() ?? undefined,\n install_referrer,\n // utm params\n utm_source: params.get('utm_source') ?? undefined,\n utm_medium: params.get('utm_medium') ?? undefined,\n utm_campaign: params.get('utm_campaign') ?? undefined,\n utm_term: params.get('utm_term') ?? undefined,\n utm_content: params.get('utm_content') ?? undefined,\n utm_id: params.get('utm_id') ?? undefined,\n utm_source_platform: params.get('utm_source_platform') ?? undefined,\n utm_creative_format: params.get('utm_creative_format') ?? undefined,\n utm_marketing_tactic: params.get('utm_marketing_tactic') ?? undefined,\n };\n\n cache.tags = tags;\n return tags;\n}\n"],"mappings":";;;;;;;;;;AAmBA,MAAM,sBAAM,IAAI,IAAoB;AAEpC,MAAa,UAAmB;CAC9B,UAAU,QAAQ;EAChB,IAAI;GACF,OAAO,aAAa,QAAQ,GAAG;EACjC,QAAQ;GACN,QAAQ,MAAM,+BAA+B;GAC7C,OAAO,IAAI,IAAI,GAAG,KAAK;EACzB;CACF;CACA,UAAU,KAAK,UAAU;EACvB,IAAI;GACF,aAAa,QAAQ,KAAK,KAAK;EACjC,QAAQ;GACN,QAAQ,MAAM,+BAA+B;GAC7C,IAAI,IAAI,KAAK,KAAK;EACpB;CACF;AACF;AAEA,eAAsB,cAA+B;CACnD,IAAI,WAA0B;CAC9B,IAAI,SAAS,OAAO,OAClB,WAAW,MAAM,uBAAuB;MACnC,IAAI,SAAS,OAAO,WACzB,WAAW,aAAa;CAE1B,IAAI,CAAC,UAAU;EACb,WAAW,aAAa,QAAQ,WAAW;EAC3C,IAAI,CAAC,UAAU;GACb,WAAW,WAAW;GACtB,aAAa,QAAQ,aAAa,QAAQ;EAC5C;CACF;CACA,OAAO;AACT;AAEA,SAAgB,gBAAoC;CAClD,QAAQ,YAAR;EACE,KAAK,WAAW,OACd,OAAO;EACT,KAAK,WAAW,QACd,OAAO;EACT,KAAK,WAAW,SACd,OAAO;EACT,KAAK,WAAW,IACd,OAAO;EACT,SACE;CACJ;AACF;AAEA,eAAsB,UAA8B;CAClD,MAAM,SAAS,WAAW,IAAI,QAAQ;CACtC,MAAM,eAAe,KAAK,MAAM,OAAO,KAAK;CAC5C,MAAM,gBAAgB,KAAK,MAAM,OAAO,MAAM;CAE9C,MAAM,mBAAmB,SAAS,OAAO,YAAY,MAAM,wBAAwB,IAAI,KAAA;CACvF,MAAM,SAAS,IAAI,gBAAgB,gBAAgB;CAEnD,MAAM,OAAkB;EACtB,IAAI,GAAG,OAAO,GAAG;EACjB,SAAS,UAAU,KAAA;EACnB,YAAY,aAAa,KAAA;EACzB,QAAQ,aAAa,KAAA;EACrB,WAAW,MAAM,YAAY;EAC7B,aAAa,cAAc;EAC3B,eAAe,gBAAgB,KAAA;EAC/B,iBAAiB,WAAW,KAAA;EAC5B,oBAAoB,WAAW,IAAI;EACnC;EACA;EACA,mBAAmB,GAAG,aAAa,GAAG;EACtC,SAAS,OAAO;EAChB,UAAU,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe;EAC7C,WAAW,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY;EAC7C,QAAQ;EAER,gBAAgB,iBAAiB,KAAK,KAAA;EACtC;EAEA,YAAY,OAAO,IAAI,YAAY,KAAK,KAAA;EACxC,YAAY,OAAO,IAAI,YAAY,KAAK,KAAA;EACxC,cAAc,OAAO,IAAI,cAAc,KAAK,KAAA;EAC5C,UAAU,OAAO,IAAI,UAAU,KAAK,KAAA;EACpC,aAAa,OAAO,IAAI,aAAa,KAAK,KAAA;EAC1C,QAAQ,OAAO,IAAI,QAAQ,KAAK,KAAA;EAChC,qBAAqB,OAAO,IAAI,qBAAqB,KAAK,KAAA;EAC1D,qBAAqB,OAAO,IAAI,qBAAqB,KAAK,KAAA;EAC1D,sBAAsB,OAAO,IAAI,sBAAsB,KAAK,KAAA;CAC9D;CAEA,MAAM,OAAO;CACb,OAAO;AACT"}
|
package/dist/next/index.cjs
CHANGED
|
@@ -4,11 +4,11 @@ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
|
4
4
|
const require_track_index = require("../track/index.cjs");
|
|
5
5
|
const require_hooks_use_outbound_click_analytics = require("../hooks/use-outbound-click-analytics.cjs");
|
|
6
6
|
const require_hooks_use_web_analytics = require("../hooks/use-web-analytics.cjs");
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
7
|
let next_navigation_js = require("next/navigation.js");
|
|
9
8
|
let next_script_js = require("next/script.js");
|
|
10
9
|
next_script_js = require_runtime.__toESM(next_script_js, 1);
|
|
11
10
|
let next_web_vitals_js = require("next/web-vitals.js");
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
12
|
//#region src/next/index.tsx
|
|
13
13
|
function Analytics({ gaId, gaSrc, nonce, debugMode, metaPixelId, hotjarId, redditPixelId, linkedInPartnerId, facebookAppId, reportWebVitals = true }) {
|
|
14
14
|
require_hooks_use_web_analytics.useWebAnalytics((0, next_navigation_js.usePathname)());
|
package/dist/next/index.mjs
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { track } from "../track/index.mjs";
|
|
3
3
|
import { useOutboundClickAnalytics } from "../hooks/use-outbound-click-analytics.mjs";
|
|
4
4
|
import { useWebAnalytics } from "../hooks/use-web-analytics.mjs";
|
|
5
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
5
|
import { usePathname } from "next/navigation.js";
|
|
7
6
|
import Script from "next/script.js";
|
|
8
7
|
import { useReportWebVitals } from "next/web-vitals.js";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
//#region src/next/index.tsx
|
|
10
10
|
function Analytics({ gaId, gaSrc, nonce, debugMode, metaPixelId, hotjarId, redditPixelId, linkedInPartnerId, facebookAppId, reportWebVitals = true }) {
|
|
11
11
|
useWebAnalytics(usePathname());
|