@vercel/analytics 0.1.7-beta.1 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +11 -66
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.js +10 -64
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +11 -66
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.ts +1 -5
- package/dist/react/index.js +10 -64
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -20,8 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/generic.ts
|
|
21
21
|
var generic_exports = {};
|
|
22
22
|
__export(generic_exports, {
|
|
23
|
-
inject: () => inject
|
|
24
|
-
track: () => track
|
|
23
|
+
inject: () => inject
|
|
25
24
|
});
|
|
26
25
|
module.exports = __toCommonJS(generic_exports);
|
|
27
26
|
|
|
@@ -38,49 +37,16 @@ var initQueue = () => {
|
|
|
38
37
|
function isBrowser() {
|
|
39
38
|
return typeof window !== "undefined";
|
|
40
39
|
}
|
|
41
|
-
function
|
|
40
|
+
function isDevelopment() {
|
|
42
41
|
if (typeof process === "undefined")
|
|
43
|
-
return
|
|
44
|
-
|
|
45
|
-
return "development";
|
|
46
|
-
return "production";
|
|
42
|
+
return false;
|
|
43
|
+
return process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test";
|
|
47
44
|
}
|
|
48
|
-
function
|
|
45
|
+
function getMode(mode = "auto") {
|
|
49
46
|
if (mode === "auto") {
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
window.vam = mode;
|
|
53
|
-
}
|
|
54
|
-
function getMode() {
|
|
55
|
-
return window.vam || "production";
|
|
56
|
-
}
|
|
57
|
-
function isProduction() {
|
|
58
|
-
return getMode() === "production";
|
|
59
|
-
}
|
|
60
|
-
function isDevelopment() {
|
|
61
|
-
return getMode() === "development";
|
|
62
|
-
}
|
|
63
|
-
var removeKey = (key, { [key]: _, ...rest }) => rest;
|
|
64
|
-
function parseProperties(properties, options) {
|
|
65
|
-
let props = properties;
|
|
66
|
-
const errorProperties = [];
|
|
67
|
-
for (const [key, value] of Object.entries(properties)) {
|
|
68
|
-
if (typeof value === "object" && value !== null) {
|
|
69
|
-
if (options.strip) {
|
|
70
|
-
props = removeKey(key, props);
|
|
71
|
-
} else {
|
|
72
|
-
errorProperties.push(key);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (errorProperties.length > 0 && !options.strip) {
|
|
77
|
-
throw Error(
|
|
78
|
-
`The following properties are not valid: ${errorProperties.join(
|
|
79
|
-
", "
|
|
80
|
-
)}. Only strings, numbers, booleans, and null are allowed.`
|
|
81
|
-
);
|
|
47
|
+
return isDevelopment() ? "development" : "production";
|
|
82
48
|
}
|
|
83
|
-
return
|
|
49
|
+
return mode;
|
|
84
50
|
}
|
|
85
51
|
|
|
86
52
|
// src/generic.ts
|
|
@@ -90,45 +56,24 @@ var inject = (props = {
|
|
|
90
56
|
var _a;
|
|
91
57
|
if (!isBrowser())
|
|
92
58
|
return;
|
|
93
|
-
|
|
59
|
+
const mode = getMode(props.mode);
|
|
94
60
|
initQueue();
|
|
95
61
|
if (props.beforeSend) {
|
|
96
62
|
(_a = window.va) == null ? void 0 : _a.call(window, "beforeSend", props.beforeSend);
|
|
97
63
|
}
|
|
98
|
-
const src =
|
|
64
|
+
const src = mode === "development" ? "https://cdn.vercel-insights.com/v1/script.debug.js" : "/_vercel/insights/script.js";
|
|
99
65
|
if (document.head.querySelector(`script[src*="${src}"]`))
|
|
100
66
|
return;
|
|
101
67
|
const script = document.createElement("script");
|
|
102
68
|
script.src = src;
|
|
103
69
|
script.defer = true;
|
|
104
|
-
if (
|
|
70
|
+
if (mode === "development" && props.debug === false) {
|
|
105
71
|
script.setAttribute("data-debug", "false");
|
|
106
72
|
}
|
|
107
73
|
document.head.appendChild(script);
|
|
108
74
|
};
|
|
109
|
-
var track = (name, properties) => {
|
|
110
|
-
var _a, _b;
|
|
111
|
-
if (!properties) {
|
|
112
|
-
(_a = window.va) == null ? void 0 : _a.call(window, "track", { name });
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
try {
|
|
116
|
-
const props = parseProperties(properties, {
|
|
117
|
-
strip: isProduction()
|
|
118
|
-
});
|
|
119
|
-
(_b = window.va) == null ? void 0 : _b.call(window, "track", {
|
|
120
|
-
name,
|
|
121
|
-
data: props
|
|
122
|
-
});
|
|
123
|
-
} catch (err) {
|
|
124
|
-
if (err instanceof Error && isDevelopment()) {
|
|
125
|
-
console.error(err);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
75
|
// Annotate the CommonJS export names for ESM import in node:
|
|
130
76
|
0 && (module.exports = {
|
|
131
|
-
inject
|
|
132
|
-
track
|
|
77
|
+
inject
|
|
133
78
|
});
|
|
134
79
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generic.ts","../src/queue.ts","../src/utils.ts"],"sourcesContent":["import { initQueue } from './queue';\nimport type {
|
|
1
|
+
{"version":3,"sources":["../src/generic.ts","../src/queue.ts","../src/utils.ts"],"sourcesContent":["import { initQueue } from './queue';\nimport type { AnalyticsProps } from './types';\nimport { isBrowser, getMode } from './utils';\n\nexport const inject = (\n props: AnalyticsProps = {\n debug: true,\n },\n): void => {\n if (!isBrowser()) return;\n\n const mode = getMode(props.mode);\n\n initQueue();\n\n if (props.beforeSend) {\n window.va?.('beforeSend', props.beforeSend);\n }\n\n const src =\n mode === 'development'\n ? 'https://cdn.vercel-insights.com/v1/script.debug.js'\n : '/_vercel/insights/script.js';\n\n if (document.head.querySelector(`script[src*=\"${src}\"]`)) return;\n\n const script = document.createElement('script');\n script.src = src;\n script.defer = true;\n\n if (mode === 'development' && props.debug === false) {\n script.setAttribute('data-debug', 'false');\n }\n\n document.head.appendChild(script);\n};\n","export const initQueue = (): void => {\n // initialize va until script is loaded\n if (window.va) return;\n\n window.va = function a(...params): void {\n (window.vaq = window.vaq || []).push(params);\n };\n};\n","import type { Mode } from './types';\n\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isDevelopment(): boolean {\n if (typeof process === 'undefined') return false;\n return (\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n );\n}\n\nexport function getMode(mode: Mode = 'auto'): Mode {\n if (mode === 'auto') {\n return isDevelopment() ? 'development' : 'production';\n }\n\n return mode;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,YAAY,MAAY;AAEnC,MAAI,OAAO;AAAI;AAEf,SAAO,KAAK,SAAS,KAAK,QAAc;AACtC,KAAC,OAAO,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM;AAAA,EAC7C;AACF;;;ACLO,SAAS,YAAqB;AACnC,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,gBAAyB;AACvC,MAAI,OAAO,YAAY;AAAa,WAAO;AAC3C,SACE,QAAQ,IAAI,aAAa,iBAAiB,QAAQ,IAAI,aAAa;AAEvE;AAEO,SAAS,QAAQ,OAAa,QAAc;AACjD,MAAI,SAAS,QAAQ;AACnB,WAAO,cAAc,IAAI,gBAAgB;AAAA,EAC3C;AAEA,SAAO;AACT;;;AFfO,IAAM,SAAS,CACpB,QAAwB;AAAA,EACtB,OAAO;AACT,MACS;AARX;AASE,MAAI,CAAC,UAAU;AAAG;AAElB,QAAM,OAAO,QAAQ,MAAM,IAAI;AAE/B,YAAU;AAEV,MAAI,MAAM,YAAY;AACpB,iBAAO,OAAP,gCAAY,cAAc,MAAM;AAAA,EAClC;AAEA,QAAM,MACJ,SAAS,gBACL,uDACA;AAEN,MAAI,SAAS,KAAK,cAAc,gBAAgB,OAAO;AAAG;AAE1D,QAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,SAAO,MAAM;AACb,SAAO,QAAQ;AAEf,MAAI,SAAS,iBAAiB,MAAM,UAAU,OAAO;AACnD,WAAO,aAAa,cAAc,OAAO;AAAA,EAC3C;AAEA,WAAS,KAAK,YAAY,MAAM;AAClC;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ interface PageViewEvent {
|
|
|
4
4
|
}
|
|
5
5
|
declare type Event = PageViewEvent;
|
|
6
6
|
declare type Mode = 'auto' | 'development' | 'production';
|
|
7
|
-
declare type AllowedPropertyValues = string | number | boolean | null;
|
|
8
7
|
declare type BeforeSend = (event: Event) => Event | null;
|
|
9
8
|
interface AnalyticsProps {
|
|
10
9
|
beforeSend?: BeforeSend;
|
|
@@ -16,11 +15,9 @@ declare global {
|
|
|
16
15
|
va?: (event: string, properties?: unknown) => void;
|
|
17
16
|
vaq?: [string, unknown?][];
|
|
18
17
|
vai?: boolean;
|
|
19
|
-
vam?: Mode;
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
declare const inject: (props?: AnalyticsProps) => void;
|
|
24
|
-
declare const track: (name: string, properties?: Record<string, AllowedPropertyValues>) => void;
|
|
25
22
|
|
|
26
|
-
export { inject
|
|
23
|
+
export { inject };
|
package/dist/index.js
CHANGED
|
@@ -11,49 +11,16 @@ var initQueue = () => {
|
|
|
11
11
|
function isBrowser() {
|
|
12
12
|
return typeof window !== "undefined";
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function isDevelopment() {
|
|
15
15
|
if (typeof process === "undefined")
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
return "development";
|
|
19
|
-
return "production";
|
|
16
|
+
return false;
|
|
17
|
+
return process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test";
|
|
20
18
|
}
|
|
21
|
-
function
|
|
19
|
+
function getMode(mode = "auto") {
|
|
22
20
|
if (mode === "auto") {
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
window.vam = mode;
|
|
26
|
-
}
|
|
27
|
-
function getMode() {
|
|
28
|
-
return window.vam || "production";
|
|
29
|
-
}
|
|
30
|
-
function isProduction() {
|
|
31
|
-
return getMode() === "production";
|
|
32
|
-
}
|
|
33
|
-
function isDevelopment() {
|
|
34
|
-
return getMode() === "development";
|
|
35
|
-
}
|
|
36
|
-
var removeKey = (key, { [key]: _, ...rest }) => rest;
|
|
37
|
-
function parseProperties(properties, options) {
|
|
38
|
-
let props = properties;
|
|
39
|
-
const errorProperties = [];
|
|
40
|
-
for (const [key, value] of Object.entries(properties)) {
|
|
41
|
-
if (typeof value === "object" && value !== null) {
|
|
42
|
-
if (options.strip) {
|
|
43
|
-
props = removeKey(key, props);
|
|
44
|
-
} else {
|
|
45
|
-
errorProperties.push(key);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (errorProperties.length > 0 && !options.strip) {
|
|
50
|
-
throw Error(
|
|
51
|
-
`The following properties are not valid: ${errorProperties.join(
|
|
52
|
-
", "
|
|
53
|
-
)}. Only strings, numbers, booleans, and null are allowed.`
|
|
54
|
-
);
|
|
21
|
+
return isDevelopment() ? "development" : "production";
|
|
55
22
|
}
|
|
56
|
-
return
|
|
23
|
+
return mode;
|
|
57
24
|
}
|
|
58
25
|
|
|
59
26
|
// src/generic.ts
|
|
@@ -63,44 +30,23 @@ var inject = (props = {
|
|
|
63
30
|
var _a;
|
|
64
31
|
if (!isBrowser())
|
|
65
32
|
return;
|
|
66
|
-
|
|
33
|
+
const mode = getMode(props.mode);
|
|
67
34
|
initQueue();
|
|
68
35
|
if (props.beforeSend) {
|
|
69
36
|
(_a = window.va) == null ? void 0 : _a.call(window, "beforeSend", props.beforeSend);
|
|
70
37
|
}
|
|
71
|
-
const src =
|
|
38
|
+
const src = mode === "development" ? "https://cdn.vercel-insights.com/v1/script.debug.js" : "/_vercel/insights/script.js";
|
|
72
39
|
if (document.head.querySelector(`script[src*="${src}"]`))
|
|
73
40
|
return;
|
|
74
41
|
const script = document.createElement("script");
|
|
75
42
|
script.src = src;
|
|
76
43
|
script.defer = true;
|
|
77
|
-
if (
|
|
44
|
+
if (mode === "development" && props.debug === false) {
|
|
78
45
|
script.setAttribute("data-debug", "false");
|
|
79
46
|
}
|
|
80
47
|
document.head.appendChild(script);
|
|
81
48
|
};
|
|
82
|
-
var track = (name, properties) => {
|
|
83
|
-
var _a, _b;
|
|
84
|
-
if (!properties) {
|
|
85
|
-
(_a = window.va) == null ? void 0 : _a.call(window, "track", { name });
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
try {
|
|
89
|
-
const props = parseProperties(properties, {
|
|
90
|
-
strip: isProduction()
|
|
91
|
-
});
|
|
92
|
-
(_b = window.va) == null ? void 0 : _b.call(window, "track", {
|
|
93
|
-
name,
|
|
94
|
-
data: props
|
|
95
|
-
});
|
|
96
|
-
} catch (err) {
|
|
97
|
-
if (err instanceof Error && isDevelopment()) {
|
|
98
|
-
console.error(err);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
49
|
export {
|
|
103
|
-
inject
|
|
104
|
-
track
|
|
50
|
+
inject
|
|
105
51
|
};
|
|
106
52
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/queue.ts","../src/utils.ts","../src/generic.ts"],"sourcesContent":["export const initQueue = (): void => {\n // initialize va until script is loaded\n if (window.va) return;\n\n window.va = function a(...params): void {\n (window.vaq = window.vaq || []).push(params);\n };\n};\n","import type {
|
|
1
|
+
{"version":3,"sources":["../src/queue.ts","../src/utils.ts","../src/generic.ts"],"sourcesContent":["export const initQueue = (): void => {\n // initialize va until script is loaded\n if (window.va) return;\n\n window.va = function a(...params): void {\n (window.vaq = window.vaq || []).push(params);\n };\n};\n","import type { Mode } from './types';\n\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isDevelopment(): boolean {\n if (typeof process === 'undefined') return false;\n return (\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n );\n}\n\nexport function getMode(mode: Mode = 'auto'): Mode {\n if (mode === 'auto') {\n return isDevelopment() ? 'development' : 'production';\n }\n\n return mode;\n}\n","import { initQueue } from './queue';\nimport type { AnalyticsProps } from './types';\nimport { isBrowser, getMode } from './utils';\n\nexport const inject = (\n props: AnalyticsProps = {\n debug: true,\n },\n): void => {\n if (!isBrowser()) return;\n\n const mode = getMode(props.mode);\n\n initQueue();\n\n if (props.beforeSend) {\n window.va?.('beforeSend', props.beforeSend);\n }\n\n const src =\n mode === 'development'\n ? 'https://cdn.vercel-insights.com/v1/script.debug.js'\n : '/_vercel/insights/script.js';\n\n if (document.head.querySelector(`script[src*=\"${src}\"]`)) return;\n\n const script = document.createElement('script');\n script.src = src;\n script.defer = true;\n\n if (mode === 'development' && props.debug === false) {\n script.setAttribute('data-debug', 'false');\n }\n\n document.head.appendChild(script);\n};\n"],"mappings":";AAAO,IAAM,YAAY,MAAY;AAEnC,MAAI,OAAO;AAAI;AAEf,SAAO,KAAK,SAAS,KAAK,QAAc;AACtC,KAAC,OAAO,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM;AAAA,EAC7C;AACF;;;ACLO,SAAS,YAAqB;AACnC,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,gBAAyB;AACvC,MAAI,OAAO,YAAY;AAAa,WAAO;AAC3C,SACE,QAAQ,IAAI,aAAa,iBAAiB,QAAQ,IAAI,aAAa;AAEvE;AAEO,SAAS,QAAQ,OAAa,QAAc;AACjD,MAAI,SAAS,QAAQ;AACnB,WAAO,cAAc,IAAI,gBAAgB;AAAA,EAC3C;AAEA,SAAO;AACT;;;ACfO,IAAM,SAAS,CACpB,QAAwB;AAAA,EACtB,OAAO;AACT,MACS;AARX;AASE,MAAI,CAAC,UAAU;AAAG;AAElB,QAAM,OAAO,QAAQ,MAAM,IAAI;AAE/B,YAAU;AAEV,MAAI,MAAM,YAAY;AACpB,iBAAO,OAAP,gCAAY,cAAc,MAAM;AAAA,EAClC;AAEA,QAAM,MACJ,SAAS,gBACL,uDACA;AAEN,MAAI,SAAS,KAAK,cAAc,gBAAgB,OAAO;AAAG;AAE1D,QAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,SAAO,MAAM;AACb,SAAO,QAAQ;AAEf,MAAI,SAAS,iBAAiB,MAAM,UAAU,OAAO;AACnD,WAAO,aAAa,cAAc,OAAO;AAAA,EAC3C;AAEA,WAAS,KAAK,YAAY,MAAM;AAClC;","names":[]}
|
package/dist/react/index.cjs
CHANGED
|
@@ -20,8 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/react.tsx
|
|
21
21
|
var react_exports = {};
|
|
22
22
|
__export(react_exports, {
|
|
23
|
-
Analytics: () => Analytics
|
|
24
|
-
track: () => track
|
|
23
|
+
Analytics: () => Analytics
|
|
25
24
|
});
|
|
26
25
|
module.exports = __toCommonJS(react_exports);
|
|
27
26
|
var import_react = require("react");
|
|
@@ -39,49 +38,16 @@ var initQueue = () => {
|
|
|
39
38
|
function isBrowser() {
|
|
40
39
|
return typeof window !== "undefined";
|
|
41
40
|
}
|
|
42
|
-
function
|
|
41
|
+
function isDevelopment() {
|
|
43
42
|
if (typeof process === "undefined")
|
|
44
|
-
return
|
|
45
|
-
|
|
46
|
-
return "development";
|
|
47
|
-
return "production";
|
|
43
|
+
return false;
|
|
44
|
+
return process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test";
|
|
48
45
|
}
|
|
49
|
-
function
|
|
46
|
+
function getMode(mode = "auto") {
|
|
50
47
|
if (mode === "auto") {
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
window.vam = mode;
|
|
54
|
-
}
|
|
55
|
-
function getMode() {
|
|
56
|
-
return window.vam || "production";
|
|
57
|
-
}
|
|
58
|
-
function isProduction() {
|
|
59
|
-
return getMode() === "production";
|
|
60
|
-
}
|
|
61
|
-
function isDevelopment() {
|
|
62
|
-
return getMode() === "development";
|
|
63
|
-
}
|
|
64
|
-
var removeKey = (key, { [key]: _, ...rest }) => rest;
|
|
65
|
-
function parseProperties(properties, options) {
|
|
66
|
-
let props = properties;
|
|
67
|
-
const errorProperties = [];
|
|
68
|
-
for (const [key, value] of Object.entries(properties)) {
|
|
69
|
-
if (typeof value === "object" && value !== null) {
|
|
70
|
-
if (options.strip) {
|
|
71
|
-
props = removeKey(key, props);
|
|
72
|
-
} else {
|
|
73
|
-
errorProperties.push(key);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (errorProperties.length > 0 && !options.strip) {
|
|
78
|
-
throw Error(
|
|
79
|
-
`The following properties are not valid: ${errorProperties.join(
|
|
80
|
-
", "
|
|
81
|
-
)}. Only strings, numbers, booleans, and null are allowed.`
|
|
82
|
-
);
|
|
48
|
+
return isDevelopment() ? "development" : "production";
|
|
83
49
|
}
|
|
84
|
-
return
|
|
50
|
+
return mode;
|
|
85
51
|
}
|
|
86
52
|
|
|
87
53
|
// src/generic.ts
|
|
@@ -91,42 +57,22 @@ var inject = (props = {
|
|
|
91
57
|
var _a;
|
|
92
58
|
if (!isBrowser())
|
|
93
59
|
return;
|
|
94
|
-
|
|
60
|
+
const mode = getMode(props.mode);
|
|
95
61
|
initQueue();
|
|
96
62
|
if (props.beforeSend) {
|
|
97
63
|
(_a = window.va) == null ? void 0 : _a.call(window, "beforeSend", props.beforeSend);
|
|
98
64
|
}
|
|
99
|
-
const src =
|
|
65
|
+
const src = mode === "development" ? "https://cdn.vercel-insights.com/v1/script.debug.js" : "/_vercel/insights/script.js";
|
|
100
66
|
if (document.head.querySelector(`script[src*="${src}"]`))
|
|
101
67
|
return;
|
|
102
68
|
const script = document.createElement("script");
|
|
103
69
|
script.src = src;
|
|
104
70
|
script.defer = true;
|
|
105
|
-
if (
|
|
71
|
+
if (mode === "development" && props.debug === false) {
|
|
106
72
|
script.setAttribute("data-debug", "false");
|
|
107
73
|
}
|
|
108
74
|
document.head.appendChild(script);
|
|
109
75
|
};
|
|
110
|
-
var track = (name, properties) => {
|
|
111
|
-
var _a, _b;
|
|
112
|
-
if (!properties) {
|
|
113
|
-
(_a = window.va) == null ? void 0 : _a.call(window, "track", { name });
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
try {
|
|
117
|
-
const props = parseProperties(properties, {
|
|
118
|
-
strip: isProduction()
|
|
119
|
-
});
|
|
120
|
-
(_b = window.va) == null ? void 0 : _b.call(window, "track", {
|
|
121
|
-
name,
|
|
122
|
-
data: props
|
|
123
|
-
});
|
|
124
|
-
} catch (err) {
|
|
125
|
-
if (err instanceof Error && isDevelopment()) {
|
|
126
|
-
console.error(err);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
76
|
|
|
131
77
|
// src/react.tsx
|
|
132
78
|
function Analytics({
|
|
@@ -141,7 +87,6 @@ function Analytics({
|
|
|
141
87
|
}
|
|
142
88
|
// Annotate the CommonJS export names for ESM import in node:
|
|
143
89
|
0 && (module.exports = {
|
|
144
|
-
Analytics
|
|
145
|
-
track
|
|
90
|
+
Analytics
|
|
146
91
|
});
|
|
147
92
|
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react.tsx","../../src/queue.ts","../../src/utils.ts","../../src/generic.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { inject } from './generic';\nimport type { AnalyticsProps } from './types';\n\nexport type { AnalyticsProps } from './types';\n\nexport function Analytics({\n beforeSend,\n debug = true,\n mode = 'auto',\n}: AnalyticsProps): null {\n useEffect(() => {\n inject({ beforeSend, debug, mode });\n }, [beforeSend, debug, mode]);\n\n return null;\n}\n
|
|
1
|
+
{"version":3,"sources":["../../src/react.tsx","../../src/queue.ts","../../src/utils.ts","../../src/generic.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { inject } from './generic';\nimport type { AnalyticsProps } from './types';\n\nexport type { AnalyticsProps } from './types';\n\nexport function Analytics({\n beforeSend,\n debug = true,\n mode = 'auto',\n}: AnalyticsProps): null {\n useEffect(() => {\n inject({ beforeSend, debug, mode });\n }, [beforeSend, debug, mode]);\n\n return null;\n}\n","export const initQueue = (): void => {\n // initialize va until script is loaded\n if (window.va) return;\n\n window.va = function a(...params): void {\n (window.vaq = window.vaq || []).push(params);\n };\n};\n","import type { Mode } from './types';\n\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isDevelopment(): boolean {\n if (typeof process === 'undefined') return false;\n return (\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n );\n}\n\nexport function getMode(mode: Mode = 'auto'): Mode {\n if (mode === 'auto') {\n return isDevelopment() ? 'development' : 'production';\n }\n\n return mode;\n}\n","import { initQueue } from './queue';\nimport type { AnalyticsProps } from './types';\nimport { isBrowser, getMode } from './utils';\n\nexport const inject = (\n props: AnalyticsProps = {\n debug: true,\n },\n): void => {\n if (!isBrowser()) return;\n\n const mode = getMode(props.mode);\n\n initQueue();\n\n if (props.beforeSend) {\n window.va?.('beforeSend', props.beforeSend);\n }\n\n const src =\n mode === 'development'\n ? 'https://cdn.vercel-insights.com/v1/script.debug.js'\n : '/_vercel/insights/script.js';\n\n if (document.head.querySelector(`script[src*=\"${src}\"]`)) return;\n\n const script = document.createElement('script');\n script.src = src;\n script.defer = true;\n\n if (mode === 'development' && props.debug === false) {\n script.setAttribute('data-debug', 'false');\n }\n\n document.head.appendChild(script);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;;;ACAnB,IAAM,YAAY,MAAY;AAEnC,MAAI,OAAO;AAAI;AAEf,SAAO,KAAK,SAAS,KAAK,QAAc;AACtC,KAAC,OAAO,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM;AAAA,EAC7C;AACF;;;ACLO,SAAS,YAAqB;AACnC,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,gBAAyB;AACvC,MAAI,OAAO,YAAY;AAAa,WAAO;AAC3C,SACE,QAAQ,IAAI,aAAa,iBAAiB,QAAQ,IAAI,aAAa;AAEvE;AAEO,SAAS,QAAQ,OAAa,QAAc;AACjD,MAAI,SAAS,QAAQ;AACnB,WAAO,cAAc,IAAI,gBAAgB;AAAA,EAC3C;AAEA,SAAO;AACT;;;ACfO,IAAM,SAAS,CACpB,QAAwB;AAAA,EACtB,OAAO;AACT,MACS;AARX;AASE,MAAI,CAAC,UAAU;AAAG;AAElB,QAAM,OAAO,QAAQ,MAAM,IAAI;AAE/B,YAAU;AAEV,MAAI,MAAM,YAAY;AACpB,iBAAO,OAAP,gCAAY,cAAc,MAAM;AAAA,EAClC;AAEA,QAAM,MACJ,SAAS,gBACL,uDACA;AAEN,MAAI,SAAS,KAAK,cAAc,gBAAgB,OAAO;AAAG;AAE1D,QAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,SAAO,MAAM;AACb,SAAO,QAAQ;AAEf,MAAI,SAAS,iBAAiB,MAAM,UAAU,OAAO;AACnD,WAAO,aAAa,cAAc,OAAO;AAAA,EAC3C;AAEA,WAAS,KAAK,YAAY,MAAM;AAClC;;;AH7BO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AACT,GAAyB;AACvB,8BAAU,MAAM;AACd,WAAO,EAAE,YAAY,OAAO,KAAK,CAAC;AAAA,EACpC,GAAG,CAAC,YAAY,OAAO,IAAI,CAAC;AAE5B,SAAO;AACT;","names":[]}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ interface PageViewEvent {
|
|
|
4
4
|
}
|
|
5
5
|
declare type Event = PageViewEvent;
|
|
6
6
|
declare type Mode = 'auto' | 'development' | 'production';
|
|
7
|
-
declare type AllowedPropertyValues = string | number | boolean | null;
|
|
8
7
|
declare type BeforeSend = (event: Event) => Event | null;
|
|
9
8
|
interface AnalyticsProps {
|
|
10
9
|
beforeSend?: BeforeSend;
|
|
@@ -16,12 +15,9 @@ declare global {
|
|
|
16
15
|
va?: (event: string, properties?: unknown) => void;
|
|
17
16
|
vaq?: [string, unknown?][];
|
|
18
17
|
vai?: boolean;
|
|
19
|
-
vam?: Mode;
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
declare const track: (name: string, properties?: Record<string, AllowedPropertyValues>) => void;
|
|
24
|
-
|
|
25
21
|
declare function Analytics({ beforeSend, debug, mode, }: AnalyticsProps): null;
|
|
26
22
|
|
|
27
|
-
export { Analytics, AnalyticsProps
|
|
23
|
+
export { Analytics, AnalyticsProps };
|
package/dist/react/index.js
CHANGED
|
@@ -14,49 +14,16 @@ var initQueue = () => {
|
|
|
14
14
|
function isBrowser() {
|
|
15
15
|
return typeof window !== "undefined";
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function isDevelopment() {
|
|
18
18
|
if (typeof process === "undefined")
|
|
19
|
-
return
|
|
20
|
-
|
|
21
|
-
return "development";
|
|
22
|
-
return "production";
|
|
19
|
+
return false;
|
|
20
|
+
return process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test";
|
|
23
21
|
}
|
|
24
|
-
function
|
|
22
|
+
function getMode(mode = "auto") {
|
|
25
23
|
if (mode === "auto") {
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
window.vam = mode;
|
|
29
|
-
}
|
|
30
|
-
function getMode() {
|
|
31
|
-
return window.vam || "production";
|
|
32
|
-
}
|
|
33
|
-
function isProduction() {
|
|
34
|
-
return getMode() === "production";
|
|
35
|
-
}
|
|
36
|
-
function isDevelopment() {
|
|
37
|
-
return getMode() === "development";
|
|
38
|
-
}
|
|
39
|
-
var removeKey = (key, { [key]: _, ...rest }) => rest;
|
|
40
|
-
function parseProperties(properties, options) {
|
|
41
|
-
let props = properties;
|
|
42
|
-
const errorProperties = [];
|
|
43
|
-
for (const [key, value] of Object.entries(properties)) {
|
|
44
|
-
if (typeof value === "object" && value !== null) {
|
|
45
|
-
if (options.strip) {
|
|
46
|
-
props = removeKey(key, props);
|
|
47
|
-
} else {
|
|
48
|
-
errorProperties.push(key);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (errorProperties.length > 0 && !options.strip) {
|
|
53
|
-
throw Error(
|
|
54
|
-
`The following properties are not valid: ${errorProperties.join(
|
|
55
|
-
", "
|
|
56
|
-
)}. Only strings, numbers, booleans, and null are allowed.`
|
|
57
|
-
);
|
|
24
|
+
return isDevelopment() ? "development" : "production";
|
|
58
25
|
}
|
|
59
|
-
return
|
|
26
|
+
return mode;
|
|
60
27
|
}
|
|
61
28
|
|
|
62
29
|
// src/generic.ts
|
|
@@ -66,42 +33,22 @@ var inject = (props = {
|
|
|
66
33
|
var _a;
|
|
67
34
|
if (!isBrowser())
|
|
68
35
|
return;
|
|
69
|
-
|
|
36
|
+
const mode = getMode(props.mode);
|
|
70
37
|
initQueue();
|
|
71
38
|
if (props.beforeSend) {
|
|
72
39
|
(_a = window.va) == null ? void 0 : _a.call(window, "beforeSend", props.beforeSend);
|
|
73
40
|
}
|
|
74
|
-
const src =
|
|
41
|
+
const src = mode === "development" ? "https://cdn.vercel-insights.com/v1/script.debug.js" : "/_vercel/insights/script.js";
|
|
75
42
|
if (document.head.querySelector(`script[src*="${src}"]`))
|
|
76
43
|
return;
|
|
77
44
|
const script = document.createElement("script");
|
|
78
45
|
script.src = src;
|
|
79
46
|
script.defer = true;
|
|
80
|
-
if (
|
|
47
|
+
if (mode === "development" && props.debug === false) {
|
|
81
48
|
script.setAttribute("data-debug", "false");
|
|
82
49
|
}
|
|
83
50
|
document.head.appendChild(script);
|
|
84
51
|
};
|
|
85
|
-
var track = (name, properties) => {
|
|
86
|
-
var _a, _b;
|
|
87
|
-
if (!properties) {
|
|
88
|
-
(_a = window.va) == null ? void 0 : _a.call(window, "track", { name });
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
const props = parseProperties(properties, {
|
|
93
|
-
strip: isProduction()
|
|
94
|
-
});
|
|
95
|
-
(_b = window.va) == null ? void 0 : _b.call(window, "track", {
|
|
96
|
-
name,
|
|
97
|
-
data: props
|
|
98
|
-
});
|
|
99
|
-
} catch (err) {
|
|
100
|
-
if (err instanceof Error && isDevelopment()) {
|
|
101
|
-
console.error(err);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
52
|
|
|
106
53
|
// src/react.tsx
|
|
107
54
|
function Analytics({
|
|
@@ -115,7 +62,6 @@ function Analytics({
|
|
|
115
62
|
return null;
|
|
116
63
|
}
|
|
117
64
|
export {
|
|
118
|
-
Analytics
|
|
119
|
-
track
|
|
65
|
+
Analytics
|
|
120
66
|
};
|
|
121
67
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react.tsx","../../src/queue.ts","../../src/utils.ts","../../src/generic.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { inject } from './generic';\nimport type { AnalyticsProps } from './types';\n\nexport type { AnalyticsProps } from './types';\n\nexport function Analytics({\n beforeSend,\n debug = true,\n mode = 'auto',\n}: AnalyticsProps): null {\n useEffect(() => {\n inject({ beforeSend, debug, mode });\n }, [beforeSend, debug, mode]);\n\n return null;\n}\n
|
|
1
|
+
{"version":3,"sources":["../../src/react.tsx","../../src/queue.ts","../../src/utils.ts","../../src/generic.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { inject } from './generic';\nimport type { AnalyticsProps } from './types';\n\nexport type { AnalyticsProps } from './types';\n\nexport function Analytics({\n beforeSend,\n debug = true,\n mode = 'auto',\n}: AnalyticsProps): null {\n useEffect(() => {\n inject({ beforeSend, debug, mode });\n }, [beforeSend, debug, mode]);\n\n return null;\n}\n","export const initQueue = (): void => {\n // initialize va until script is loaded\n if (window.va) return;\n\n window.va = function a(...params): void {\n (window.vaq = window.vaq || []).push(params);\n };\n};\n","import type { Mode } from './types';\n\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isDevelopment(): boolean {\n if (typeof process === 'undefined') return false;\n return (\n process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test'\n );\n}\n\nexport function getMode(mode: Mode = 'auto'): Mode {\n if (mode === 'auto') {\n return isDevelopment() ? 'development' : 'production';\n }\n\n return mode;\n}\n","import { initQueue } from './queue';\nimport type { AnalyticsProps } from './types';\nimport { isBrowser, getMode } from './utils';\n\nexport const inject = (\n props: AnalyticsProps = {\n debug: true,\n },\n): void => {\n if (!isBrowser()) return;\n\n const mode = getMode(props.mode);\n\n initQueue();\n\n if (props.beforeSend) {\n window.va?.('beforeSend', props.beforeSend);\n }\n\n const src =\n mode === 'development'\n ? 'https://cdn.vercel-insights.com/v1/script.debug.js'\n : '/_vercel/insights/script.js';\n\n if (document.head.querySelector(`script[src*=\"${src}\"]`)) return;\n\n const script = document.createElement('script');\n script.src = src;\n script.defer = true;\n\n if (mode === 'development' && props.debug === false) {\n script.setAttribute('data-debug', 'false');\n }\n\n document.head.appendChild(script);\n};\n"],"mappings":";AAAA,SAAS,iBAAiB;;;ACAnB,IAAM,YAAY,MAAY;AAEnC,MAAI,OAAO;AAAI;AAEf,SAAO,KAAK,SAAS,KAAK,QAAc;AACtC,KAAC,OAAO,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM;AAAA,EAC7C;AACF;;;ACLO,SAAS,YAAqB;AACnC,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,gBAAyB;AACvC,MAAI,OAAO,YAAY;AAAa,WAAO;AAC3C,SACE,QAAQ,IAAI,aAAa,iBAAiB,QAAQ,IAAI,aAAa;AAEvE;AAEO,SAAS,QAAQ,OAAa,QAAc;AACjD,MAAI,SAAS,QAAQ;AACnB,WAAO,cAAc,IAAI,gBAAgB;AAAA,EAC3C;AAEA,SAAO;AACT;;;ACfO,IAAM,SAAS,CACpB,QAAwB;AAAA,EACtB,OAAO;AACT,MACS;AARX;AASE,MAAI,CAAC,UAAU;AAAG;AAElB,QAAM,OAAO,QAAQ,MAAM,IAAI;AAE/B,YAAU;AAEV,MAAI,MAAM,YAAY;AACpB,iBAAO,OAAP,gCAAY,cAAc,MAAM;AAAA,EAClC;AAEA,QAAM,MACJ,SAAS,gBACL,uDACA;AAEN,MAAI,SAAS,KAAK,cAAc,gBAAgB,OAAO;AAAG;AAE1D,QAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,SAAO,MAAM;AACb,SAAO,QAAQ;AAEf,MAAI,SAAS,iBAAiB,MAAM,UAAU,OAAO;AACnD,WAAO,aAAa,cAAc,OAAO;AAAA,EAC3C;AAEA,WAAS,KAAK,YAAY,MAAM;AAClC;;;AH7BO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AACT,GAAyB;AACvB,YAAU,MAAM;AACd,WAAO,EAAE,YAAY,OAAO,KAAK,CAAC;AAAA,EACpC,GAAG,CAAC,YAAY,OAAO,IAAI,CAAC;AAE5B,SAAO;AACT;","names":[]}
|