nuxt-yandex-metrika 1.2.2 → 1.2.4
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/module.d.mts +15 -0
- package/dist/module.d.ts +1 -33
- package/dist/module.json +5 -1
- package/dist/module.mjs +19 -4
- package/dist/runtime/components/yandex-metrika-informer.vue +2 -1
- package/dist/runtime/components/yandex-verification.vue +2 -1
- package/dist/runtime/composables/useYandexMetrika.d.ts +1 -1
- package/dist/runtime/{plugin.mjs → plugin.js} +29 -27
- package/dist/runtime/yandex-metrika/YandexMetrika.d.ts +3 -3
- package/dist/runtime/yandex-metrika/{YandexMetrika.mjs → YandexMetrika.js} +3 -3
- package/dist/runtime/yandex-metrika/index.d.ts +2 -2
- package/dist/runtime/yandex-metrika/index.js +2 -0
- package/dist/runtime/yandex-metrika/types.d.ts +1 -0
- package/dist/types.d.mts +64 -0
- package/dist/types.d.ts +59 -2
- package/package.json +17 -20
- package/dist/runtime/yandex-metrika/index.mjs +0 -2
- /package/dist/runtime/composables/{useYandexMetrika.mjs → useYandexMetrika.js} +0 -0
- /package/dist/runtime/yandex-metrika/{types.mjs → types.js} +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
+
import { InitParameters } from '../dist/runtime/yandex-metrika/index.js';
|
|
3
|
+
|
|
4
|
+
type YandexMetrikaModuleOptions = {
|
|
5
|
+
id: string;
|
|
6
|
+
debug: boolean;
|
|
7
|
+
cdn: boolean;
|
|
8
|
+
delay: number;
|
|
9
|
+
verification: null | string;
|
|
10
|
+
options: Partial<InitParameters>;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare const _default: _nuxt_schema.NuxtModule<YandexMetrikaModuleOptions>;
|
|
14
|
+
|
|
15
|
+
export { _default as default };
|
package/dist/module.d.ts
CHANGED
|
@@ -1,37 +1,5 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
-
|
|
3
|
-
declare global {
|
|
4
|
-
interface Window {
|
|
5
|
-
ym: ((...args: any[]) => void) & {
|
|
6
|
-
a: any[];
|
|
7
|
-
l: number;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
interface VisitParameters {
|
|
12
|
-
order_price?: number;
|
|
13
|
-
currency?: string;
|
|
14
|
-
[key: string]: any;
|
|
15
|
-
}
|
|
16
|
-
interface UserParameters {
|
|
17
|
-
UserID?: number;
|
|
18
|
-
[key: string]: any;
|
|
19
|
-
}
|
|
20
|
-
interface InitParameters {
|
|
21
|
-
accurateTrackBounce?: boolean | number;
|
|
22
|
-
childIframe?: boolean;
|
|
23
|
-
clickmap?: boolean;
|
|
24
|
-
defer?: boolean;
|
|
25
|
-
ecommerce?: boolean | string | any[];
|
|
26
|
-
params?: VisitParameters | VisitParameters[];
|
|
27
|
-
userParams?: UserParameters;
|
|
28
|
-
trackHash?: boolean;
|
|
29
|
-
trackLinks?: boolean;
|
|
30
|
-
trustedDomains?: string[];
|
|
31
|
-
type?: number;
|
|
32
|
-
webvisor?: boolean;
|
|
33
|
-
triggerEvent?: boolean;
|
|
34
|
-
}
|
|
2
|
+
import { InitParameters } from '../dist/runtime/yandex-metrika/index.js';
|
|
35
3
|
|
|
36
4
|
type YandexMetrikaModuleOptions = {
|
|
37
5
|
id: string;
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineNuxtModule, createResolver, addPlugin, addComponentsDir,
|
|
1
|
+
import { defineNuxtModule, createResolver, addPlugin, addComponentsDir, addImports } from '@nuxt/kit';
|
|
2
2
|
import { defu } from 'defu';
|
|
3
3
|
|
|
4
4
|
const name = "nuxt-yandex-metrika";
|
|
5
|
-
const version = "1.2.
|
|
5
|
+
const version = "1.2.4";
|
|
6
6
|
|
|
7
7
|
const module = defineNuxtModule({
|
|
8
8
|
meta: {
|
|
@@ -20,7 +20,18 @@ const module = defineNuxtModule({
|
|
|
20
20
|
delay: 0,
|
|
21
21
|
cdn: false,
|
|
22
22
|
verification: null,
|
|
23
|
-
options: {
|
|
23
|
+
options: {
|
|
24
|
+
accurateTrackBounce: true,
|
|
25
|
+
childIframe: true,
|
|
26
|
+
clickmap: true,
|
|
27
|
+
defer: false,
|
|
28
|
+
ecommerce: false,
|
|
29
|
+
trackHash: false,
|
|
30
|
+
trackLinks: true,
|
|
31
|
+
webvisor: false,
|
|
32
|
+
triggerEvent: false,
|
|
33
|
+
sendTitle: true
|
|
34
|
+
}
|
|
24
35
|
},
|
|
25
36
|
setup(options, nuxt) {
|
|
26
37
|
nuxt.options.runtimeConfig.public.yandexMetrika = defu(
|
|
@@ -35,7 +46,11 @@ const module = defineNuxtModule({
|
|
|
35
46
|
void addComponentsDir({
|
|
36
47
|
path: resolver.resolve("runtime/components")
|
|
37
48
|
});
|
|
38
|
-
|
|
49
|
+
addImports({
|
|
50
|
+
name: "useYandexMetrika",
|
|
51
|
+
as: "useYandexMetrika",
|
|
52
|
+
from: resolver.resolve("runtime/composables/useYandexMetrika")
|
|
53
|
+
});
|
|
39
54
|
}
|
|
40
55
|
});
|
|
41
56
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { useYandexMetrika } from '../composables/useYandexMetrika';
|
|
3
|
+
|
|
3
4
|
const { id } = useYandexMetrika();
|
|
4
5
|
</script>
|
|
5
6
|
|
|
@@ -14,6 +15,6 @@ const { id } = useYandexMetrika();
|
|
|
14
15
|
class="ym-advanced-informer"
|
|
15
16
|
:data-cid="id"
|
|
16
17
|
data-lang="ru"
|
|
17
|
-
|
|
18
|
+
></a>
|
|
18
19
|
<!-- /Yandex.Metrika informer -->
|
|
19
20
|
</template>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { useYandexMetrika } from '../composables/useYandexMetrika';
|
|
3
2
|
import chalk from 'chalk';
|
|
4
3
|
|
|
4
|
+
import { useYandexMetrika } from '../composables/useYandexMetrika';
|
|
5
|
+
|
|
5
6
|
const { verification } = useYandexMetrika();
|
|
6
7
|
|
|
7
8
|
if (!verification) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { YandexMetrika } from '../yandex-metrika';
|
|
1
|
+
import type { YandexMetrika } from '../yandex-metrika.js';
|
|
2
2
|
export declare function useYandexMetrika(): YandexMetrika;
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
import { defineNuxtPlugin,
|
|
2
|
-
import {
|
|
1
|
+
import { defineNuxtPlugin, useRouter, useRuntimeConfig } from "#app";
|
|
2
|
+
import { useHead } from "#imports";
|
|
3
|
+
import { Methods, YandexMetrika } from "./yandex-metrika/index.js";
|
|
3
4
|
export default defineNuxtPlugin({
|
|
4
5
|
parallel: true,
|
|
5
6
|
setup() {
|
|
6
7
|
const config = useRuntimeConfig().public.yandexMetrika;
|
|
7
8
|
const { id, cdn = false, delay = 0, debug, verification = null, options = {} } = config;
|
|
8
|
-
if (
|
|
9
|
-
useHead({
|
|
10
|
-
noscript: [
|
|
11
|
-
{
|
|
12
|
-
key: "yandex-metrika-noscript",
|
|
13
|
-
innerHTML: `<div><img src="https://mc.yandex.ru/watch/${id}" style="position:absolute; left:-9999px;" alt="" />`
|
|
14
|
-
}
|
|
15
|
-
]
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
if (debug || delay) {
|
|
9
|
+
if (import.meta.dev) {
|
|
19
10
|
useHead({
|
|
20
11
|
script: [
|
|
21
12
|
{
|
|
@@ -30,28 +21,39 @@ export default defineNuxtPlugin({
|
|
|
30
21
|
});
|
|
31
22
|
} else {
|
|
32
23
|
useHead({
|
|
33
|
-
|
|
24
|
+
noscript: [
|
|
34
25
|
{
|
|
35
|
-
key: "yandex-metrika",
|
|
36
|
-
innerHTML:
|
|
37
|
-
cdn
|
|
38
|
-
)}", "ym");`
|
|
26
|
+
key: "yandex-metrika-noscript",
|
|
27
|
+
innerHTML: `<div><img src="https://mc.yandex.ru/watch/${id}" style="position:absolute; left:-9999px;" alt="" />`
|
|
39
28
|
}
|
|
40
29
|
]
|
|
41
30
|
});
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
31
|
+
if (delay && delay > 0) {
|
|
32
|
+
if (import.meta.client) {
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
const script = document.createElement("script");
|
|
35
|
+
script.defer = true;
|
|
36
|
+
script.src = YandexMetrika.src(cdn);
|
|
37
|
+
document.head.append(script);
|
|
38
|
+
}, delay);
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
useHead({
|
|
42
|
+
script: [
|
|
43
|
+
{
|
|
44
|
+
key: "yandex-metrika",
|
|
45
|
+
innerHTML: `(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "${YandexMetrika.src(
|
|
46
|
+
cdn
|
|
47
|
+
)}", "ym");`
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
50
52
|
}
|
|
51
53
|
const yandexMetrika = new YandexMetrika(id);
|
|
52
54
|
yandexMetrika.debug = debug;
|
|
53
55
|
yandexMetrika.verification = verification;
|
|
54
|
-
if (
|
|
56
|
+
if (import.meta.client) {
|
|
55
57
|
let ready = false;
|
|
56
58
|
const router = useRouter();
|
|
57
59
|
void router.isReady().then(() => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Events, HitOptions, InitParameters, People, UserParameters, VisitParameters } from './types';
|
|
2
|
-
export * from './types';
|
|
1
|
+
import type { Events, HitOptions, InitParameters, People, UserParameters, VisitParameters } from './types.js';
|
|
2
|
+
export * from './types.js';
|
|
3
3
|
export declare class YandexMetrika implements Events {
|
|
4
4
|
#private;
|
|
5
5
|
static src(cdn?: boolean): "https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js" | "https://mc.yandex.ru/metrika/tag.js";
|
|
@@ -9,7 +9,7 @@ export declare class YandexMetrika implements Events {
|
|
|
9
9
|
get verification(): string | null;
|
|
10
10
|
set verification(value: string | null);
|
|
11
11
|
get id(): string;
|
|
12
|
-
init(options?: InitParameters): void;
|
|
12
|
+
init(options?: Partial<InitParameters>): void;
|
|
13
13
|
addFileExtension(extensions?: string | string[]): void;
|
|
14
14
|
extLink<CTX>(url: string, options?: Omit<HitOptions<CTX>, 'referer'>): void;
|
|
15
15
|
file<CTX>(url: string, options?: HitOptions<CTX>): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { Methods } from "./types.
|
|
3
|
-
export * from "./types.
|
|
2
|
+
import { Methods } from "./types.js";
|
|
3
|
+
export * from "./types.js";
|
|
4
4
|
export class YandexMetrika {
|
|
5
5
|
#id;
|
|
6
6
|
#debug = false;
|
|
@@ -67,7 +67,7 @@ export class YandexMetrika {
|
|
|
67
67
|
}
|
|
68
68
|
#call(type, ...args) {
|
|
69
69
|
if (this.#debug) {
|
|
70
|
-
console.
|
|
70
|
+
console.log(`${chalk.bgGreen(chalk.black("[yandex-metrika]"))} ${chalk.blue(type)}`, ...args);
|
|
71
71
|
}
|
|
72
72
|
if (typeof window !== "undefined" && window.ym) {
|
|
73
73
|
window.ym(this.id, type, ...args);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export { YandexMetrika } from './YandexMetrika.js';
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
|
|
2
|
+
import type { } from './module.js'
|
|
3
|
+
|
|
4
|
+
export interface ModuleOptions {
|
|
5
|
+
/** @default "xxx" */
|
|
6
|
+
id: string,
|
|
7
|
+
|
|
8
|
+
/** @default true */
|
|
9
|
+
debug: boolean,
|
|
10
|
+
|
|
11
|
+
/** @default 0 */
|
|
12
|
+
delay: number,
|
|
13
|
+
|
|
14
|
+
/** @default false */
|
|
15
|
+
cdn: boolean,
|
|
16
|
+
|
|
17
|
+
/** @default null */
|
|
18
|
+
verification: any,
|
|
19
|
+
|
|
20
|
+
options: {
|
|
21
|
+
/** @default true */
|
|
22
|
+
accurateTrackBounce: boolean,
|
|
23
|
+
|
|
24
|
+
/** @default true */
|
|
25
|
+
childIframe: boolean,
|
|
26
|
+
|
|
27
|
+
/** @default true */
|
|
28
|
+
clickmap: boolean,
|
|
29
|
+
|
|
30
|
+
/** @default false */
|
|
31
|
+
defer: boolean,
|
|
32
|
+
|
|
33
|
+
/** @default false */
|
|
34
|
+
ecommerce: boolean,
|
|
35
|
+
|
|
36
|
+
/** @default false */
|
|
37
|
+
trackHash: boolean,
|
|
38
|
+
|
|
39
|
+
/** @default true */
|
|
40
|
+
trackLinks: boolean,
|
|
41
|
+
|
|
42
|
+
/** @default false */
|
|
43
|
+
webvisor: boolean,
|
|
44
|
+
|
|
45
|
+
/** @default false */
|
|
46
|
+
triggerEvent: boolean,
|
|
47
|
+
|
|
48
|
+
/** @default true */
|
|
49
|
+
sendTitle: boolean,
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
declare module '@nuxt/schema' {
|
|
54
|
+
interface NuxtConfig { ['yandexMetrika']?: Partial<ModuleOptions> }
|
|
55
|
+
interface NuxtOptions { ['yandexMetrika']?: ModuleOptions }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare module 'nuxt/schema' {
|
|
59
|
+
interface NuxtConfig { ['yandexMetrika']?: Partial<ModuleOptions> }
|
|
60
|
+
interface NuxtOptions { ['yandexMetrika']?: ModuleOptions }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
export type { default } from './module.js'
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,64 @@
|
|
|
1
1
|
|
|
2
|
-
import { } from './module'
|
|
2
|
+
import type { } from './module'
|
|
3
3
|
|
|
4
|
+
export interface ModuleOptions {
|
|
5
|
+
/** @default "xxx" */
|
|
6
|
+
id: string,
|
|
4
7
|
|
|
8
|
+
/** @default true */
|
|
9
|
+
debug: boolean,
|
|
5
10
|
|
|
11
|
+
/** @default 0 */
|
|
12
|
+
delay: number,
|
|
6
13
|
|
|
7
|
-
|
|
14
|
+
/** @default false */
|
|
15
|
+
cdn: boolean,
|
|
16
|
+
|
|
17
|
+
/** @default null */
|
|
18
|
+
verification: any,
|
|
19
|
+
|
|
20
|
+
options: {
|
|
21
|
+
/** @default true */
|
|
22
|
+
accurateTrackBounce: boolean,
|
|
23
|
+
|
|
24
|
+
/** @default true */
|
|
25
|
+
childIframe: boolean,
|
|
26
|
+
|
|
27
|
+
/** @default true */
|
|
28
|
+
clickmap: boolean,
|
|
29
|
+
|
|
30
|
+
/** @default false */
|
|
31
|
+
defer: boolean,
|
|
32
|
+
|
|
33
|
+
/** @default false */
|
|
34
|
+
ecommerce: boolean,
|
|
35
|
+
|
|
36
|
+
/** @default false */
|
|
37
|
+
trackHash: boolean,
|
|
38
|
+
|
|
39
|
+
/** @default true */
|
|
40
|
+
trackLinks: boolean,
|
|
41
|
+
|
|
42
|
+
/** @default false */
|
|
43
|
+
webvisor: boolean,
|
|
44
|
+
|
|
45
|
+
/** @default false */
|
|
46
|
+
triggerEvent: boolean,
|
|
47
|
+
|
|
48
|
+
/** @default true */
|
|
49
|
+
sendTitle: boolean,
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
declare module '@nuxt/schema' {
|
|
54
|
+
interface NuxtConfig { ['yandexMetrika']?: Partial<ModuleOptions> }
|
|
55
|
+
interface NuxtOptions { ['yandexMetrika']?: ModuleOptions }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare module 'nuxt/schema' {
|
|
59
|
+
interface NuxtConfig { ['yandexMetrika']?: Partial<ModuleOptions> }
|
|
60
|
+
interface NuxtOptions { ['yandexMetrika']?: ModuleOptions }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
export type { default } from './module'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-yandex-metrika",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "Add Yandex Metrika to your Nuxt 3 application.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
28
|
"scripts": {
|
|
29
|
-
"prepack": "nuxt-module-build",
|
|
29
|
+
"prepack": "nuxt-module-build build",
|
|
30
30
|
"dev": "nuxi dev playground",
|
|
31
|
-
"dev:build": "nuxi build playground",
|
|
32
|
-
"dev:prepare": "nuxt-module-build --stub && nuxi prepare playground",
|
|
31
|
+
"dev:build": "nuxi build playground build",
|
|
32
|
+
"dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
|
|
33
33
|
"release": "npm run lint && npm run prepack && changelogen --release && npm publish && git push --follow-tags",
|
|
34
34
|
"prettier": "prettier --write .",
|
|
35
35
|
"lint": "eslint --fix .",
|
|
@@ -39,27 +39,24 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@nuxt/kit": "^3.
|
|
42
|
+
"@nuxt/kit": "^3.12.1",
|
|
43
43
|
"chalk": "^5.3.0",
|
|
44
|
-
"defu": "^6.1.
|
|
44
|
+
"defu": "^6.1.4"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@nuxt/devtools": "latest",
|
|
48
|
-
"@nuxt/eslint-config": "^0.
|
|
49
|
-
"@nuxt/module-builder": "^0.
|
|
50
|
-
"@nuxt/schema": "^3.
|
|
51
|
-
"@
|
|
52
|
-
"@types/node": "^
|
|
53
|
-
"changelogen": "^0.5.
|
|
54
|
-
"eslint": "^
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"nuxt": "^3.7.0",
|
|
60
|
-
"prettier": "^3.0.3"
|
|
48
|
+
"@nuxt/eslint-config": "^0.3.13",
|
|
49
|
+
"@nuxt/module-builder": "^0.7.1",
|
|
50
|
+
"@nuxt/schema": "^3.12.1",
|
|
51
|
+
"@poidet/prettier": "^0.8.0",
|
|
52
|
+
"@types/node": "^20.14.2",
|
|
53
|
+
"changelogen": "^0.5.5",
|
|
54
|
+
"eslint": "^9.4.0",
|
|
55
|
+
"husky": "^9.0.11",
|
|
56
|
+
"lint-staged": "^15.2.7",
|
|
57
|
+
"nuxt": "^3.12.1",
|
|
58
|
+
"prettier": "^3.3.2"
|
|
61
59
|
},
|
|
62
|
-
"packageManager": "pnpm@7.17.1",
|
|
63
60
|
"lint-staged": {
|
|
64
61
|
"**/*.(ts|vue)": [
|
|
65
62
|
"eslint --fix",
|
|
File without changes
|
|
File without changes
|