@nuxt/scripts 1.0.0-beta.2 → 1.0.0-beta.20
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/README.md +3 -3
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/{B66N9HCo.js → 9LJPrOyI.js} +1 -1
- package/dist/client/_nuxt/DFEfk2pB.js +162 -0
- package/dist/client/_nuxt/{DvH517bE.js → DMlY-BNa.js} +1 -1
- package/dist/client/_nuxt/{DfLgoB--.js → __ZZTkMj.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/8212d4fa-7985-421b-815a-03a886e667d4.json +1 -0
- package/dist/client/_nuxt/entry.CACgbLJl.css +1 -0
- package/dist/client/_nuxt/error-404.CHeaW3dp.css +1 -0
- package/dist/client/_nuxt/error-500.DvOvWme_.css +1 -0
- package/dist/client/index.html +1 -1
- package/dist/module.d.mts +27 -18
- package/dist/module.d.ts +178 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +747 -527
- package/dist/registry.d.ts +6 -0
- package/dist/registry.mjs +74 -21
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +7 -7
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +6 -6
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +7 -7
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +6 -6
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +12 -12
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +6 -6
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +6 -6
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +5 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +7 -7
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +7 -7
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +7 -7
- package/dist/runtime/components/ScriptCrisp.vue +1 -1
- package/dist/runtime/components/ScriptGoogleAdsense.vue +1 -1
- package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
- package/dist/runtime/components/ScriptGravatar.vue +46 -0
- package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
- package/dist/runtime/components/ScriptInstagramEmbed.vue +1 -1
- package/dist/runtime/components/ScriptIntercom.vue +4 -3
- package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -32
- package/dist/runtime/components/ScriptPayPalButtons.vue +48 -79
- package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -32
- package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -23
- package/dist/runtime/components/ScriptPayPalMessages.vue +46 -50
- package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -23
- package/dist/runtime/components/ScriptStripePricingTable.vue +2 -2
- package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +9 -0
- package/dist/runtime/components/ScriptVimeoPlayer.vue +13 -10
- package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +9 -0
- package/dist/runtime/components/ScriptXEmbed.d.vue.ts +1 -1
- package/dist/runtime/components/ScriptXEmbed.vue +1 -1
- package/dist/runtime/components/ScriptXEmbed.vue.d.ts +1 -1
- package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +2 -2
- package/dist/runtime/components/ScriptYouTubePlayer.vue +11 -5
- package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +2 -2
- package/dist/runtime/composables/useScript.js +11 -6
- package/dist/runtime/composables/useScriptEventPage.js +2 -2
- package/dist/runtime/composables/useScriptTriggerConsent.js +1 -1
- package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
- package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
- package/dist/runtime/registry/clarity.d.ts +10 -15
- package/dist/runtime/registry/clarity.js +22 -31
- package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
- package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
- package/dist/runtime/registry/crisp.d.ts +9 -39
- package/dist/runtime/registry/crisp.js +2 -33
- package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
- package/dist/runtime/registry/databuddy-analytics.js +20 -45
- package/dist/runtime/registry/fathom-analytics.d.ts +6 -25
- package/dist/runtime/registry/fathom-analytics.js +2 -24
- package/dist/runtime/registry/google-adsense.d.ts +2 -10
- package/dist/runtime/registry/google-adsense.js +2 -11
- package/dist/runtime/registry/google-analytics.d.ts +3 -5
- package/dist/runtime/registry/google-analytics.js +3 -8
- package/dist/runtime/registry/google-maps.d.ts +3 -9
- package/dist/runtime/registry/google-maps.js +2 -8
- package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
- package/dist/runtime/registry/google-recaptcha.js +4 -12
- package/dist/runtime/registry/google-sign-in.d.ts +2 -13
- package/dist/runtime/registry/google-sign-in.js +2 -22
- package/dist/runtime/registry/google-tag-manager.d.ts +3 -28
- package/dist/runtime/registry/google-tag-manager.js +4 -27
- package/dist/runtime/registry/gravatar.d.ts +25 -0
- package/dist/runtime/registry/gravatar.js +32 -0
- package/dist/runtime/registry/hotjar.d.ts +3 -5
- package/dist/runtime/registry/hotjar.js +2 -5
- package/dist/runtime/registry/instagram-embed.d.ts +2 -17
- package/dist/runtime/registry/instagram-embed.js +4 -19
- package/dist/runtime/registry/intercom.d.ts +3 -11
- package/dist/runtime/registry/intercom.js +2 -12
- package/dist/runtime/registry/matomo-analytics.d.ts +2 -11
- package/dist/runtime/registry/matomo-analytics.js +3 -12
- package/dist/runtime/registry/meta-pixel.d.ts +3 -5
- package/dist/runtime/registry/meta-pixel.js +2 -4
- package/dist/runtime/registry/npm.d.ts +2 -6
- package/dist/runtime/registry/npm.js +2 -9
- package/dist/runtime/registry/paypal.d.ts +4 -25
- package/dist/runtime/registry/paypal.js +3 -66
- package/dist/runtime/registry/plausible-analytics.js +18 -13
- package/dist/runtime/registry/posthog.d.ts +10 -11
- package/dist/runtime/registry/posthog.js +7 -20
- package/dist/runtime/registry/reddit-pixel.d.ts +4 -5
- package/dist/runtime/registry/reddit-pixel.js +2 -4
- package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
- package/dist/runtime/registry/rybbit-analytics.js +7 -19
- package/dist/runtime/registry/schemas.d.ts +946 -0
- package/dist/runtime/registry/schemas.js +901 -0
- package/dist/runtime/registry/segment.d.ts +2 -5
- package/dist/runtime/registry/segment.js +2 -5
- package/dist/runtime/registry/snapchat-pixel.d.ts +3 -32
- package/dist/runtime/registry/snapchat-pixel.js +2 -20
- package/dist/runtime/registry/stripe.d.ts +3 -4
- package/dist/runtime/registry/stripe.js +2 -4
- package/dist/runtime/registry/tiktok-pixel.d.ts +3 -6
- package/dist/runtime/registry/tiktok-pixel.js +2 -6
- package/dist/runtime/registry/umami-analytics.d.ts +2 -31
- package/dist/runtime/registry/umami-analytics.js +2 -36
- package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
- package/dist/runtime/registry/vercel-analytics.js +84 -0
- package/dist/runtime/registry/vimeo-player.d.ts +2 -2
- package/dist/runtime/registry/vimeo-player.js +1 -1
- package/dist/runtime/registry/x-embed.d.ts +2 -16
- package/dist/runtime/registry/x-embed.js +2 -17
- package/dist/runtime/registry/x-pixel.d.ts +3 -6
- package/dist/runtime/registry/x-pixel.js +2 -5
- package/dist/runtime/registry/youtube-player.d.ts +7 -7
- package/dist/runtime/registry/youtube-player.js +1 -1
- package/dist/runtime/server/google-static-maps-proxy.js +1 -1
- package/dist/runtime/server/{sw-handler.d.ts → gravatar-proxy.d.ts} +1 -1
- package/dist/runtime/server/gravatar-proxy.js +62 -0
- package/dist/runtime/server/instagram-embed-asset.js +2 -1
- package/dist/runtime/server/instagram-embed-image.js +2 -1
- package/dist/runtime/server/instagram-embed.js +22 -13
- package/dist/runtime/server/proxy-handler.js +161 -117
- package/dist/runtime/server/utils/privacy.d.ts +45 -1
- package/dist/runtime/server/utils/privacy.js +103 -40
- package/dist/runtime/server/x-embed.js +3 -2
- package/dist/runtime/types.d.ts +30 -24
- package/dist/runtime/utils/pure.d.ts +0 -4
- package/dist/runtime/utils/pure.js +0 -67
- package/dist/runtime/utils.d.ts +3 -3
- package/dist/runtime/utils.js +12 -7
- package/dist/shared/scripts.Crpn87WB.mjs +318 -0
- package/dist/stats.d.mts +39 -0
- package/dist/stats.d.ts +39 -0
- package/dist/stats.mjs +772 -0
- package/dist/types-source.d.mts +19 -0
- package/dist/types-source.d.ts +19 -0
- package/dist/types-source.mjs +975 -0
- package/package.json +42 -31
- package/dist/client/_nuxt/B8XOar-X.js +0 -162
- package/dist/client/_nuxt/builds/meta/133a46c5-a5c1-4a63-87d1-037947a5bcdb.json +0 -1
- package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
- package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
- package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
- package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
- package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
- package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
- package/dist/runtime/plugins/sw-register.client.d.ts +0 -2
- package/dist/runtime/plugins/sw-register.client.js +0 -12
- package/dist/runtime/server/sw-handler.js +0 -25
- package/dist/runtime/sw/proxy-sw.template.d.ts +0 -1
- package/dist/runtime/sw/proxy-sw.template.js +0 -54
|
@@ -1,79 +1,16 @@
|
|
|
1
|
-
import { withQuery } from "ufo";
|
|
2
1
|
import { useRegistryScript } from "../utils.js";
|
|
3
|
-
import {
|
|
4
|
-
export
|
|
5
|
-
clientId: string(),
|
|
6
|
-
buyerCountry: optional(string()),
|
|
7
|
-
commit: optional(string()),
|
|
8
|
-
components: optional(union([string(), array(string())])),
|
|
9
|
-
currency: optional(string()),
|
|
10
|
-
debug: optional(union([string(), boolean()])),
|
|
11
|
-
disableFunding: optional(union([string(), array(string())])),
|
|
12
|
-
enableFunding: optional(union([string(), array(string())])),
|
|
13
|
-
integrationDate: optional(string()),
|
|
14
|
-
intent: optional(string()),
|
|
15
|
-
locale: optional(string()),
|
|
16
|
-
/**
|
|
17
|
-
* loadScript() supports an array for merchantId, even though
|
|
18
|
-
* merchant-id technically may not contain multiple values.
|
|
19
|
-
* For an array with a length of > 1 it automatically sets
|
|
20
|
-
* merchantId to "*" and moves the actual values to dataMerchantId
|
|
21
|
-
*/
|
|
22
|
-
merchantId: optional(union([string(), array(string())])),
|
|
23
|
-
partnerAttributionId: optional(string()),
|
|
24
|
-
vault: optional(union([string(), boolean()])),
|
|
25
|
-
// own props
|
|
26
|
-
sandbox: optional(boolean())
|
|
27
|
-
});
|
|
2
|
+
import { PayPalOptions } from "./schemas.js";
|
|
3
|
+
export { PayPalOptions };
|
|
28
4
|
export function useScriptPayPal(_options) {
|
|
29
5
|
return useRegistryScript("paypal", (options) => {
|
|
30
|
-
let dataMerchantId = void 0;
|
|
31
|
-
if (Array.isArray(options?.merchantId) && options?.merchantId.length > 1) {
|
|
32
|
-
dataMerchantId = JSON.stringify(options.merchantId);
|
|
33
|
-
options.merchantId = "*";
|
|
34
|
-
}
|
|
35
|
-
if (Array.isArray(options?.components)) {
|
|
36
|
-
options.components = options.components.join(",");
|
|
37
|
-
}
|
|
38
|
-
if (Array.isArray(options?.disableFunding)) {
|
|
39
|
-
options.disableFunding = options.disableFunding.join(",");
|
|
40
|
-
}
|
|
41
|
-
if (Array.isArray(options?.enableFunding)) {
|
|
42
|
-
options.enableFunding = options.enableFunding.join(",");
|
|
43
|
-
}
|
|
44
6
|
if (options?.sandbox === void 0) {
|
|
45
7
|
options.sandbox = import.meta.dev;
|
|
46
8
|
}
|
|
47
|
-
let components = ["buttons", "messages", "marks", "card-fields", "funding-eligibility"].join(",");
|
|
48
|
-
if (options.components) {
|
|
49
|
-
if (Array.isArray(options.components)) {
|
|
50
|
-
components = options.components.join(",");
|
|
51
|
-
} else {
|
|
52
|
-
components = options.components;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
9
|
return {
|
|
56
10
|
scriptInput: {
|
|
57
|
-
|
|
58
|
-
"client-id": options.clientId,
|
|
59
|
-
"buyer-country": options.buyerCountry,
|
|
60
|
-
"commit": options.commit,
|
|
61
|
-
"components": components,
|
|
62
|
-
"currency": options.currency,
|
|
63
|
-
"debug": options.debug,
|
|
64
|
-
"disable-funding": options.disableFunding,
|
|
65
|
-
"enable-funding": options.enableFunding,
|
|
66
|
-
"integration-date": options.integrationDate,
|
|
67
|
-
"intent": options.intent,
|
|
68
|
-
"locale": options.locale,
|
|
69
|
-
"vault": options.vault
|
|
70
|
-
}),
|
|
71
|
-
"data-merchant-id": dataMerchantId,
|
|
72
|
-
"data-partner-attribution-id": options.partnerAttributionId
|
|
73
|
-
// TODO: maybe nuxt specific default
|
|
11
|
+
src: options.sandbox ? "https://www.sandbox.paypal.com/web-sdk/v6/core" : "https://www.paypal.com/web-sdk/v6/core"
|
|
74
12
|
},
|
|
75
13
|
schema: import.meta.dev ? PayPalOptions : void 0,
|
|
76
|
-
// trigger: 'client',
|
|
77
14
|
scriptOptions: {
|
|
78
15
|
use() {
|
|
79
16
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useRegistryScript } from "../utils.js";
|
|
2
1
|
import { any, array, boolean, literal, object, optional, record, string, union } from "#nuxt-scripts-validator";
|
|
3
2
|
import { logger } from "../logger.js";
|
|
3
|
+
import { useRegistryScript } from "../utils.js";
|
|
4
4
|
const extensions = [
|
|
5
5
|
literal("hash"),
|
|
6
6
|
literal("outbound-links"),
|
|
@@ -55,18 +55,23 @@ export function useScriptPlausibleAnalytics(_options) {
|
|
|
55
55
|
scriptSrc = "https://plausible.io/js/script.js";
|
|
56
56
|
}
|
|
57
57
|
const initOptions = {};
|
|
58
|
-
if (options?.customProperties)
|
|
59
|
-
|
|
60
|
-
if (options?.
|
|
61
|
-
|
|
62
|
-
if (options?.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
if (options?.customProperties)
|
|
59
|
+
initOptions.customProperties = options.customProperties;
|
|
60
|
+
if (options?.endpoint)
|
|
61
|
+
initOptions.endpoint = options.endpoint;
|
|
62
|
+
if (options?.fileDownloads)
|
|
63
|
+
initOptions.fileDownloads = options.fileDownloads;
|
|
64
|
+
if (options?.hashBasedRouting !== void 0)
|
|
65
|
+
initOptions.hashBasedRouting = options.hashBasedRouting;
|
|
66
|
+
if (options?.autoCapturePageviews !== void 0)
|
|
67
|
+
initOptions.autoCapturePageviews = options.autoCapturePageviews;
|
|
68
|
+
if (options?.captureOnLocalhost !== void 0)
|
|
69
|
+
initOptions.captureOnLocalhost = options.captureOnLocalhost;
|
|
70
|
+
const scriptInput = { src: scriptSrc };
|
|
71
|
+
if (!useNewScript && options?.domain)
|
|
72
|
+
scriptInput["data-domain"] = options.domain;
|
|
73
|
+
if (!useNewScript && options?.endpoint)
|
|
74
|
+
scriptInput["data-api"] = options.endpoint;
|
|
70
75
|
return {
|
|
71
76
|
scriptInput,
|
|
72
77
|
schema: import.meta.dev ? PlausibleAnalyticsOptionsSchema : void 0,
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import type { PostHog } from 'posthog-js';
|
|
2
1
|
import type { RegistryScriptInput } from '#nuxt-scripts/types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
import type { PostHog, PostHogConfig } from 'posthog-js';
|
|
3
|
+
import { PostHogOptions } from './schemas.js';
|
|
4
|
+
export { PostHogOptions };
|
|
5
|
+
export type PostHogInput = Omit<RegistryScriptInput<typeof PostHogOptions, false, true>, 'config'> & {
|
|
6
|
+
/**
|
|
7
|
+
* Additional PostHog configuration options passed directly to `posthog.init()`.
|
|
8
|
+
* @see https://posthog.com/docs/libraries/js/config
|
|
9
|
+
*/
|
|
10
|
+
config?: Partial<PostHogConfig>;
|
|
11
|
+
};
|
|
13
12
|
export interface PostHogApi {
|
|
14
13
|
posthog: PostHog;
|
|
15
14
|
}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
import { any, record, string, object, optional, boolean, union, literal } from "#nuxt-scripts-validator";
|
|
2
|
-
import { useRegistryScript } from "../utils.js";
|
|
3
1
|
import { logger } from "../logger.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
autocapture: optional(boolean()),
|
|
8
|
-
capturePageview: optional(boolean()),
|
|
9
|
-
capturePageleave: optional(boolean()),
|
|
10
|
-
disableSessionRecording: optional(boolean()),
|
|
11
|
-
config: optional(record(string(), any()))
|
|
12
|
-
});
|
|
2
|
+
import { useRegistryScript } from "../utils.js";
|
|
3
|
+
import { PostHogOptions } from "./schemas.js";
|
|
4
|
+
export { PostHogOptions };
|
|
13
5
|
export function useScriptPostHog(_options) {
|
|
14
6
|
return useRegistryScript("posthog", (options) => {
|
|
15
7
|
return {
|
|
@@ -47,41 +39,36 @@ export function useScriptPostHog(_options) {
|
|
|
47
39
|
return;
|
|
48
40
|
}
|
|
49
41
|
const region = options?.region || "us";
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
let apiHost = options?.apiHost || (region === "eu" ? "https://eu.i.posthog.com" : "https://us.i.posthog.com");
|
|
43
|
+
if (apiHost.startsWith("/"))
|
|
44
|
+
apiHost = window.location.origin + apiHost;
|
|
52
45
|
window.__posthogInitPromise = import("posthog-js").then(({ default: posthog }) => {
|
|
53
|
-
console.log("[PostHog] posthog-js imported successfully");
|
|
54
46
|
const config = {
|
|
55
47
|
api_host: apiHost,
|
|
56
48
|
...options?.config
|
|
57
49
|
};
|
|
58
50
|
if (typeof options?.autocapture === "boolean")
|
|
59
51
|
config.autocapture = options.autocapture;
|
|
60
|
-
if (typeof options?.capturePageview === "boolean")
|
|
52
|
+
if (typeof options?.capturePageview === "boolean" || options?.capturePageview === "history_change")
|
|
61
53
|
config.capture_pageview = options.capturePageview;
|
|
62
54
|
if (typeof options?.capturePageleave === "boolean")
|
|
63
55
|
config.capture_pageleave = options.capturePageleave;
|
|
64
56
|
if (typeof options?.disableSessionRecording === "boolean")
|
|
65
57
|
config.disable_session_recording = options.disableSessionRecording;
|
|
66
|
-
console.log("[PostHog] Calling posthog.init with apiKey:", options.apiKey, "config:", config);
|
|
67
58
|
const instance = posthog.init(options.apiKey, config);
|
|
68
59
|
if (!instance) {
|
|
69
60
|
logger.error("PostHog init returned undefined - initialization failed");
|
|
70
61
|
delete window._posthogQueue;
|
|
71
62
|
return void 0;
|
|
72
63
|
}
|
|
73
|
-
console.log("[PostHog] posthog.init succeeded, instance:", instance);
|
|
74
64
|
window.posthog = instance;
|
|
75
65
|
if (window._posthogQueue && window._posthogQueue.length > 0) {
|
|
76
|
-
console.log("[PostHog] Flushing", window._posthogQueue.length, "queued calls");
|
|
77
66
|
window._posthogQueue.forEach((q) => window.posthog[q.prop]?.(...q.args));
|
|
78
67
|
delete window._posthogQueue;
|
|
79
68
|
}
|
|
80
|
-
console.log("[PostHog] Initialization complete!");
|
|
81
69
|
return window.posthog;
|
|
82
70
|
}).catch((e) => {
|
|
83
71
|
logger.error("Failed to load posthog-js:", e);
|
|
84
|
-
console.error("[PostHog] Import/init error:", e);
|
|
85
72
|
delete window._posthogQueue;
|
|
86
73
|
return void 0;
|
|
87
74
|
});
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { RegistryScriptInput } from '#nuxt-scripts/types';
|
|
2
|
-
|
|
2
|
+
import { RedditPixelOptions } from './schemas.js';
|
|
3
|
+
type StandardEvents = 'PageVisit' | 'ViewContent' | 'Search' | 'AddToCart' | 'AddToWishlist' | 'Purchase' | 'Lead' | 'SignUp';
|
|
4
|
+
type RdtFns = ((event: 'init', id: string) => void) & ((event: 'track', eventName: StandardEvents | (string & {}), properties?: Record<string, any>) => void);
|
|
3
5
|
export interface RedditPixelApi {
|
|
4
6
|
rdt: RdtFns & {
|
|
5
7
|
sendEvent: (rdt: RedditPixelApi['rdt'], args: unknown[]) => void;
|
|
@@ -10,9 +12,6 @@ declare global {
|
|
|
10
12
|
interface Window extends RedditPixelApi {
|
|
11
13
|
}
|
|
12
14
|
}
|
|
13
|
-
export
|
|
14
|
-
readonly id: import("valibot").StringSchema<undefined>;
|
|
15
|
-
}, undefined>;
|
|
15
|
+
export { RedditPixelOptions };
|
|
16
16
|
export type RedditPixelInput = RegistryScriptInput<typeof RedditPixelOptions, true, false, false>;
|
|
17
17
|
export declare function useScriptRedditPixel<T extends RedditPixelApi>(_options?: RedditPixelInput): import("#nuxt-scripts/types").UseScriptContext<T>;
|
|
18
|
-
export {};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { useRegistryScript } from "../utils.js";
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
id: string()
|
|
5
|
-
});
|
|
2
|
+
import { RedditPixelOptions } from "./schemas.js";
|
|
3
|
+
export { RedditPixelOptions };
|
|
6
4
|
export function useScriptRedditPixel(_options) {
|
|
7
5
|
return useRegistryScript("redditPixel", (options) => {
|
|
8
6
|
return {
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import type { RegistryScriptInput } from '#nuxt-scripts/types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
readonly autoTrackPageview: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
5
|
-
readonly trackSpa: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
6
|
-
readonly trackQuery: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
7
|
-
readonly trackOutbound: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
8
|
-
readonly trackErrors: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
9
|
-
readonly sessionReplay: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
10
|
-
readonly webVitals: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
|
|
11
|
-
readonly skipPatterns: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
12
|
-
readonly maskPatterns: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
|
|
13
|
-
readonly debounce: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
14
|
-
readonly apiKey: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
15
|
-
}, undefined>;
|
|
2
|
+
import { RybbitAnalyticsOptions } from './schemas.js';
|
|
3
|
+
export { RybbitAnalyticsOptions };
|
|
16
4
|
export type RybbitAnalyticsInput = RegistryScriptInput<typeof RybbitAnalyticsOptions, false>;
|
|
17
5
|
export interface RybbitAnalyticsApi {
|
|
18
6
|
/**
|
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
import { useRegistryScript } from "../utils.js";
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
siteId: union([string(), number()]),
|
|
5
|
-
// required
|
|
6
|
-
autoTrackPageview: optional(boolean()),
|
|
7
|
-
trackSpa: optional(boolean()),
|
|
8
|
-
trackQuery: optional(boolean()),
|
|
9
|
-
trackOutbound: optional(boolean()),
|
|
10
|
-
trackErrors: optional(boolean()),
|
|
11
|
-
sessionReplay: optional(boolean()),
|
|
12
|
-
webVitals: optional(boolean()),
|
|
13
|
-
skipPatterns: optional(array(string())),
|
|
14
|
-
maskPatterns: optional(array(string())),
|
|
15
|
-
debounce: optional(number()),
|
|
16
|
-
apiKey: optional(string())
|
|
17
|
-
});
|
|
2
|
+
import { RybbitAnalyticsOptions } from "./schemas.js";
|
|
3
|
+
export { RybbitAnalyticsOptions };
|
|
18
4
|
const RYBBIT_QUEUE_KEY = Symbol.for("nuxt-scripts.rybbit-queue");
|
|
19
5
|
function getRybbitState() {
|
|
20
|
-
if (!import.meta.client)
|
|
6
|
+
if (!import.meta.client)
|
|
7
|
+
return;
|
|
21
8
|
const g = globalThis;
|
|
22
9
|
if (!g[RYBBIT_QUEUE_KEY]) {
|
|
23
10
|
g[RYBBIT_QUEUE_KEY] = { queue: [], flushed: false };
|
|
@@ -28,7 +15,8 @@ export function useScriptRybbitAnalytics(_options) {
|
|
|
28
15
|
const isRybbitReady = () => import.meta.client && typeof window !== "undefined" && window.rybbit && typeof window.rybbit.event === "function";
|
|
29
16
|
const flushQueue = () => {
|
|
30
17
|
const state = getRybbitState();
|
|
31
|
-
if (!state || state.flushed || !isRybbitReady())
|
|
18
|
+
if (!state || state.flushed || !isRybbitReady())
|
|
19
|
+
return;
|
|
32
20
|
state.flushed = true;
|
|
33
21
|
while (state.queue.length > 0) {
|
|
34
22
|
const [method, ...args] = state.queue.shift();
|
|
@@ -51,7 +39,7 @@ export function useScriptRybbitAnalytics(_options) {
|
|
|
51
39
|
return useRegistryScript("rybbitAnalytics", (options) => {
|
|
52
40
|
return {
|
|
53
41
|
scriptInput: {
|
|
54
|
-
"src": "https://app.rybbit.io/api/script.js",
|
|
42
|
+
"src": options?.analyticsHost ? `${options.analyticsHost}/script.js` : "https://app.rybbit.io/api/script.js",
|
|
55
43
|
"data-site-id": String(options?.siteId),
|
|
56
44
|
"data-auto-track-pageview": options?.autoTrackPageview,
|
|
57
45
|
"data-track-spa": options?.trackSpa,
|