@caperjs/plugin-google-analytics 0.5.0 → 0.5.2

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.
@@ -1,6 +1,6 @@
1
1
  import { Logger as e, Plugin as t, isDev as n, omitKeys as r } from "@caperjs/core";
2
2
  //#region src/version.ts
3
- var i = "0.5.0", a = class extends t {
3
+ var i = "0.5.2", a = class extends t {
4
4
  constructor(...e) {
5
5
  super(...e), this._queue = [];
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"caper-plugin-google-analytics.mjs","names":[],"sources":["../src/version.ts","../src/GoogleAnalyticsPlugin.ts","../src/index.ts"],"sourcesContent":["export const version = '0.5.0';","import type { IApplication, IPlugin } from '@caperjs/core';\nimport { isDev, Logger, omitKeys, Plugin } from '@caperjs/core';\nimport { version } from './version';\n\ntype ConfigParams = Gtag.ConfigParams & Gtag.ControlParams & Gtag.EventParams & Gtag.ConfigParams & Gtag.CustomParams;\n\nexport type GoogleAnalyticsPluginOptions = ConfigParams & {\n trackingId?: string | string[];\n dataLayerName?: string;\n debug?: boolean;\n};\n\nexport type GAEvents = Record<string, unknown>;\n\nexport interface IGoogleAnalyticsPlugin<E extends GAEvents = GAEvents> extends IPlugin<GoogleAnalyticsPluginOptions> {\n initialize(options: Partial<GoogleAnalyticsPluginOptions>, app: IApplication): void;\n gtag(...args: any[]): void;\n trackEvent<K extends keyof E>(eventName: K, eventData?: E[K]): void;\n}\n\nexport class GoogleAnalyticsPlugin<E extends GAEvents = GAEvents>\n extends Plugin<GoogleAnalyticsPluginOptions>\n implements IGoogleAnalyticsPlugin<E>\n{\n private _options: GoogleAnalyticsPluginOptions;\n private _dataLayer: { push: (args: any) => void };\n private _queue: any[] = [];\n\n async initialize(options: Partial<GoogleAnalyticsPluginOptions>, _app: IApplication) {\n this._options = {\n debug: isDev,\n trackingId: _app.env.VITE_GOOGLE_ANALYTICS_TRACKING_ID || _app.env.GOOGLE_ANALYTICS_TRACKING_ID,\n ...options,\n };\n this.hello();\n this.install();\n\n if (!this._options.trackingId) {\n Logger.warn(\n '[Caper Google Analytics Plugin] Google Analytics tracking ID is not set, please set `VITE_GOOGLE_ANALYTICS_TRACKING_ID` or `GOOGLE_ANALYTICS_TRACKING_ID` environment variable.',\n );\n return;\n }\n }\n\n private hello() {\n const hello = `%c Caper Google Analytics Plugin v${version}`;\n console.log(hello, 'background: rgba(31, 41, 55, 1);color: #74b64c');\n\n if (this._options.debug) {\n Logger.log(this._options);\n }\n }\n\n private initDataLayer() {\n const windowAsAny = window as any;\n const dlName = this._options.dataLayerName || 'dataLayer';\n windowAsAny[dlName] = windowAsAny[dlName] || [];\n this._dataLayer = windowAsAny[dlName];\n\n this.drainQueue();\n }\n\n private drainQueue() {\n while (this._queue.length > 0) {\n const args = this._queue.shift();\n this._dataLayer.push(args);\n }\n }\n\n private install() {\n if (!this._options.trackingId) {\n return;\n }\n\n const scriptId = 'ga-gtag';\n\n if (document.getElementById(scriptId)) return;\n\n const { head } = document;\n const script = document.createElement('script');\n let src = `https://www.googletagmanager.com/gtag/js?id=${this._options.trackingId}`;\n if (this._options.dataLayerName) src += `&l=${this._options.dataLayerName}`;\n script.id = scriptId;\n script.async = true;\n script.src = src;\n head.insertBefore(script, head.firstChild);\n\n this.initDataLayer();\n\n this.gtag('js', new Date());\n\n if (!Array.isArray(this._options.trackingId)) {\n this._options.trackingId = [this._options.trackingId];\n }\n\n this._options.trackingId.forEach((trackingId) => {\n this.gtag('config', trackingId, omitKeys(['trackingId'], this._options));\n });\n }\n\n public gtag(...args: any[]) {\n if (isDev) {\n Logger.log(`gtag(${JSON.stringify(args)})`);\n }\n\n if (!this._dataLayer) {\n this._queue.push(args);\n return;\n }\n\n this._dataLayer.push(args);\n }\n\n public trackEvent<K extends keyof E>(eventName: K, eventData?: E[K]) {\n this.gtag('event', eventName as string, eventData || {});\n }\n}\n","import { GoogleAnalyticsPlugin } from './GoogleAnalyticsPlugin';\nexport type { GAEvents, GoogleAnalyticsPluginOptions, IGoogleAnalyticsPlugin } from './GoogleAnalyticsPlugin';\n\nexport default GoogleAnalyticsPlugin;\n"],"mappings":";;AAAA,IAAa,IAAU,SEGvB,IDiBA,cACU,EAEV;;6BAG0B,EAAE;;CAE1B,MAAM,WAAW,GAAgD,GAAoB;AASnF,MARA,KAAK,WAAW;GACd,OAAO;GACP,YAAY,EAAK,IAAI,qCAAqC,EAAK,IAAI;GACnE,GAAG;GACJ,EACD,KAAK,OAAO,EACZ,KAAK,SAAS,EAEV,CAAC,KAAK,SAAS,YAAY;AAC7B,KAAO,KACL,kLACD;AACD;;;CAIJ,QAAgB;EACd,IAAM,IAAQ,qCAAqC;AAGnD,EAFA,QAAQ,IAAI,GAAO,iDAAiD,EAEhE,KAAK,SAAS,SAChB,EAAO,IAAI,KAAK,SAAS;;CAI7B,gBAAwB;EACtB,IAAM,IAAc,QACd,IAAS,KAAK,SAAS,iBAAiB;AAI9C,EAHA,EAAY,KAAU,EAAY,MAAW,EAAE,EAC/C,KAAK,aAAa,EAAY,IAE9B,KAAK,YAAY;;CAGnB,aAAqB;AACnB,SAAO,KAAK,OAAO,SAAS,IAAG;GAC7B,IAAM,IAAO,KAAK,OAAO,OAAO;AAChC,QAAK,WAAW,KAAK,EAAK;;;CAI9B,UAAkB;AAChB,MAAI,CAAC,KAAK,SAAS,WACjB;EAGF,IAAM,IAAW;AAEjB,MAAI,SAAS,eAAe,EAAS,CAAE;EAEvC,IAAM,EAAE,YAAS,UACX,IAAS,SAAS,cAAc,SAAS,EAC3C,IAAM,+CAA+C,KAAK,SAAS;AAevE,EAdI,KAAK,SAAS,kBAAe,KAAO,MAAM,KAAK,SAAS,kBAC5D,EAAO,KAAK,GACZ,EAAO,QAAQ,IACf,EAAO,MAAM,GACb,EAAK,aAAa,GAAQ,EAAK,WAAW,EAE1C,KAAK,eAAe,EAEpB,KAAK,KAAK,sBAAM,IAAI,MAAM,CAAC,EAEtB,MAAM,QAAQ,KAAK,SAAS,WAAW,KAC1C,KAAK,SAAS,aAAa,CAAC,KAAK,SAAS,WAAW,GAGvD,KAAK,SAAS,WAAW,SAAS,MAAe;AAC/C,QAAK,KAAK,UAAU,GAAY,EAAS,CAAC,aAAa,EAAE,KAAK,SAAS,CAAC;IACxE;;CAGJ,KAAY,GAAG,GAAa;AAK1B,MAJI,KACF,EAAO,IAAI,QAAQ,KAAK,UAAU,EAAK,CAAC,GAAG,EAGzC,CAAC,KAAK,YAAY;AACpB,QAAK,OAAO,KAAK,EAAK;AACtB;;AAGF,OAAK,WAAW,KAAK,EAAK;;CAG5B,WAAqC,GAAc,GAAkB;AACnE,OAAK,KAAK,SAAS,GAAqB,KAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"caper-plugin-google-analytics.mjs","names":[],"sources":["../src/version.ts","../src/GoogleAnalyticsPlugin.ts","../src/index.ts"],"sourcesContent":["export const version = '0.5.2';","import type { IApplication, IPlugin } from '@caperjs/core';\nimport { isDev, Logger, omitKeys, Plugin } from '@caperjs/core';\nimport { version } from './version';\n\ntype ConfigParams = Gtag.ConfigParams & Gtag.ControlParams & Gtag.EventParams & Gtag.ConfigParams & Gtag.CustomParams;\n\nexport type GoogleAnalyticsPluginOptions = ConfigParams & {\n trackingId?: string | string[];\n dataLayerName?: string;\n debug?: boolean;\n};\n\nexport type GAEvents = Record<string, unknown>;\n\nexport interface IGoogleAnalyticsPlugin<E extends GAEvents = GAEvents> extends IPlugin<GoogleAnalyticsPluginOptions> {\n initialize(options: Partial<GoogleAnalyticsPluginOptions>, app: IApplication): void;\n gtag(...args: any[]): void;\n trackEvent<K extends keyof E>(eventName: K, eventData?: E[K]): void;\n}\n\nexport class GoogleAnalyticsPlugin<E extends GAEvents = GAEvents>\n extends Plugin<GoogleAnalyticsPluginOptions>\n implements IGoogleAnalyticsPlugin<E>\n{\n private _options: GoogleAnalyticsPluginOptions;\n private _dataLayer: { push: (args: any) => void };\n private _queue: any[] = [];\n\n async initialize(options: Partial<GoogleAnalyticsPluginOptions>, _app: IApplication) {\n this._options = {\n debug: isDev,\n trackingId: _app.env.VITE_GOOGLE_ANALYTICS_TRACKING_ID || _app.env.GOOGLE_ANALYTICS_TRACKING_ID,\n ...options,\n };\n this.hello();\n this.install();\n\n if (!this._options.trackingId) {\n Logger.warn(\n '[Caper Google Analytics Plugin] Google Analytics tracking ID is not set, please set `VITE_GOOGLE_ANALYTICS_TRACKING_ID` or `GOOGLE_ANALYTICS_TRACKING_ID` environment variable.',\n );\n return;\n }\n }\n\n private hello() {\n const hello = `%c Caper Google Analytics Plugin v${version}`;\n console.log(hello, 'background: rgba(31, 41, 55, 1);color: #74b64c');\n\n if (this._options.debug) {\n Logger.log(this._options);\n }\n }\n\n private initDataLayer() {\n const windowAsAny = window as any;\n const dlName = this._options.dataLayerName || 'dataLayer';\n windowAsAny[dlName] = windowAsAny[dlName] || [];\n this._dataLayer = windowAsAny[dlName];\n\n this.drainQueue();\n }\n\n private drainQueue() {\n while (this._queue.length > 0) {\n const args = this._queue.shift();\n this._dataLayer.push(args);\n }\n }\n\n private install() {\n if (!this._options.trackingId) {\n return;\n }\n\n const scriptId = 'ga-gtag';\n\n if (document.getElementById(scriptId)) return;\n\n const { head } = document;\n const script = document.createElement('script');\n let src = `https://www.googletagmanager.com/gtag/js?id=${this._options.trackingId}`;\n if (this._options.dataLayerName) src += `&l=${this._options.dataLayerName}`;\n script.id = scriptId;\n script.async = true;\n script.src = src;\n head.insertBefore(script, head.firstChild);\n\n this.initDataLayer();\n\n this.gtag('js', new Date());\n\n if (!Array.isArray(this._options.trackingId)) {\n this._options.trackingId = [this._options.trackingId];\n }\n\n this._options.trackingId.forEach((trackingId) => {\n this.gtag('config', trackingId, omitKeys(['trackingId'], this._options));\n });\n }\n\n public gtag(...args: any[]) {\n if (isDev) {\n Logger.log(`gtag(${JSON.stringify(args)})`);\n }\n\n if (!this._dataLayer) {\n this._queue.push(args);\n return;\n }\n\n this._dataLayer.push(args);\n }\n\n public trackEvent<K extends keyof E>(eventName: K, eventData?: E[K]) {\n this.gtag('event', eventName as string, eventData || {});\n }\n}\n","import { GoogleAnalyticsPlugin } from './GoogleAnalyticsPlugin';\nexport type { GAEvents, GoogleAnalyticsPluginOptions, IGoogleAnalyticsPlugin } from './GoogleAnalyticsPlugin';\n\nexport default GoogleAnalyticsPlugin;\n"],"mappings":";;AAAA,IAAa,IAAU,SEGvB,IDiBA,cACU,EAEV;;6BAG0B,EAAE;;CAE1B,MAAM,WAAW,GAAgD,GAAoB;AASnF,MARA,KAAK,WAAW;GACd,OAAO;GACP,YAAY,EAAK,IAAI,qCAAqC,EAAK,IAAI;GACnE,GAAG;GACJ,EACD,KAAK,OAAO,EACZ,KAAK,SAAS,EAEV,CAAC,KAAK,SAAS,YAAY;AAC7B,KAAO,KACL,kLACD;AACD;;;CAIJ,QAAgB;EACd,IAAM,IAAQ,qCAAqC;AAGnD,EAFA,QAAQ,IAAI,GAAO,iDAAiD,EAEhE,KAAK,SAAS,SAChB,EAAO,IAAI,KAAK,SAAS;;CAI7B,gBAAwB;EACtB,IAAM,IAAc,QACd,IAAS,KAAK,SAAS,iBAAiB;AAI9C,EAHA,EAAY,KAAU,EAAY,MAAW,EAAE,EAC/C,KAAK,aAAa,EAAY,IAE9B,KAAK,YAAY;;CAGnB,aAAqB;AACnB,SAAO,KAAK,OAAO,SAAS,IAAG;GAC7B,IAAM,IAAO,KAAK,OAAO,OAAO;AAChC,QAAK,WAAW,KAAK,EAAK;;;CAI9B,UAAkB;AAChB,MAAI,CAAC,KAAK,SAAS,WACjB;EAGF,IAAM,IAAW;AAEjB,MAAI,SAAS,eAAe,EAAS,CAAE;EAEvC,IAAM,EAAE,YAAS,UACX,IAAS,SAAS,cAAc,SAAS,EAC3C,IAAM,+CAA+C,KAAK,SAAS;AAevE,EAdI,KAAK,SAAS,kBAAe,KAAO,MAAM,KAAK,SAAS,kBAC5D,EAAO,KAAK,GACZ,EAAO,QAAQ,IACf,EAAO,MAAM,GACb,EAAK,aAAa,GAAQ,EAAK,WAAW,EAE1C,KAAK,eAAe,EAEpB,KAAK,KAAK,sBAAM,IAAI,MAAM,CAAC,EAEtB,MAAM,QAAQ,KAAK,SAAS,WAAW,KAC1C,KAAK,SAAS,aAAa,CAAC,KAAK,SAAS,WAAW,GAGvD,KAAK,SAAS,WAAW,SAAS,MAAe;AAC/C,QAAK,KAAK,UAAU,GAAY,EAAS,CAAC,aAAa,EAAE,KAAK,SAAS,CAAC;IACxE;;CAGJ,KAAY,GAAG,GAAa;AAK1B,MAJI,KACF,EAAO,IAAI,QAAQ,KAAK,UAAU,EAAK,CAAC,GAAG,EAGzC,CAAC,KAAK,YAAY;AACpB,QAAK,OAAO,KAAK,EAAK;AACtB;;AAGF,OAAK,WAAW,KAAK,EAAK;;CAG5B,WAAqC,GAAc,GAAkB;AACnE,OAAK,KAAK,SAAS,GAAqB,KAAa,EAAE,CAAC"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "0.5.0";
1
+ export declare const version = "0.5.2";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caperjs/plugin-google-analytics",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Google Analytics",
5
5
  "files": [
6
6
  "lib",
@@ -30,12 +30,12 @@
30
30
  "author": "",
31
31
  "license": "MIT",
32
32
  "devDependencies": {
33
- "@caperjs/core": "^0.5.0",
33
+ "@caperjs/core": "^0.5.2",
34
34
  "vite": "^8.0.7",
35
35
  "vite-plugin-dts": "^4.5.3"
36
36
  },
37
37
  "peerDependencies": {
38
- "@caperjs/core": "^0.5.0"
38
+ "@caperjs/core": "^0.5.2"
39
39
  },
40
40
  "dependencies": {
41
41
  "@types/gtag.js": "^0.0.20"
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.5.0';
1
+ export const version = '0.5.2';