From 1f0b864b9d63574481c8ab39c84ca8378a6dce9c Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 00:17:41 -0300 Subject: [PATCH 1/7] Add definitions for the Piwik NodeJS tracker Piwik.org is a tracker similar to Google Analitics, but can run on your own server. These definitions are for the node api. --- piwik-tracker/piwik-tracker.d.ts | 91 ++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 piwik-tracker/piwik-tracker.d.ts diff --git a/piwik-tracker/piwik-tracker.d.ts b/piwik-tracker/piwik-tracker.d.ts new file mode 100644 index 000000000..a1c18b627 --- /dev/null +++ b/piwik-tracker/piwik-tracker.d.ts @@ -0,0 +1,91 @@ +// Type definitions for PiwikTracker v0.1.1 +// Project: http://piwik.org - https://www.npmjs.com/package/piwik-tracker +// Definitions by: Guilherme Bernal +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module "piwik-tracker" { + + export = PiwikTracker; + + // refer to http://developer.piwik.org/api-reference/tracking-api + interface PiwikTrackOptions { + // Required parameters + url : string; + + // Recommended parameters + action_name? : string; + _id? : string; + rand? : string; + apiv? : number; + + // Optional User info + urlref? : string; + _cvar? : string; + _idvc? : string; + _viewts? : string; + _idts? : string; + _rcn? : string; + _rck? : string; + res? : string; + h? : number; + m? : number; + s? : number; + ua? : string; + lang? : string; + uid? : string; + cid? : string; + new_visit? : number; + + // Optional Action info + cvar? : string; + link? : string; + download? : string; + search? : string; + search_cat? : string; + search_count? : number; + idgoal? : number; + revenue? : number; + gt_ms? : number; + cs? : string; + + // Optional Event Tracking info + e_c? : string; + e_a? : string; + e_n? : string; + e_v? : string; + + // Optional Content Tracking info + c_n? : string; + c_p? : string; + c_t? : string; + c_i? : string; + + // Optional Ecommerce info + ec_id? : string; + ec_items? : string; + ec_st? : number; + ec_tx? : number; + ec_sh? : number; + ec_dt? : number; + _ects? : number; + + // Other parameters (require authentication via token_auth) + token_auth? : string; + cip? : string; + cdt? : string; + country? : string; + region? : string; + city? : string; + lat? : string; + long? : string; + + // Other parameters + send_image? : number; + } + + class PiwikTracker { + constructor(siteId : number, trackerUrl : string); + track(options : PiwikTrackOptions) : void; + } + +} From ca873b08a38c57559d4eebe949737710343dd177 Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 00:23:31 -0300 Subject: [PATCH 2/7] piwik-tracker: Update project url --- piwik-tracker/piwik-tracker.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/piwik-tracker/piwik-tracker.d.ts b/piwik-tracker/piwik-tracker.d.ts index a1c18b627..ddb1ae133 100644 --- a/piwik-tracker/piwik-tracker.d.ts +++ b/piwik-tracker/piwik-tracker.d.ts @@ -1,5 +1,5 @@ // Type definitions for PiwikTracker v0.1.1 -// Project: http://piwik.org - https://www.npmjs.com/package/piwik-tracker +// Project: https://www.npmjs.com/package/piwik-tracker // Definitions by: Guilherme Bernal // Definitions: https://github.com/borisyankov/DefinitelyTyped From eed636e1e9b4a9de3d15c157f79e22fbafcb27ba Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 21:45:59 -0300 Subject: [PATCH 3/7] piwik-tracker: Add test file --- piwik-tracker/piwik-tracker-tests.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 piwik-tracker/piwik-tracker-tests.ts diff --git a/piwik-tracker/piwik-tracker-tests.ts b/piwik-tracker/piwik-tracker-tests.ts new file mode 100644 index 000000000..f509fe57e --- /dev/null +++ b/piwik-tracker/piwik-tracker-tests.ts @@ -0,0 +1,28 @@ +/// +/// + +// Example code taken from https://www.npmjs.com/package/piwik-tracker + +var PiwikTracker = require('piwik-tracker'); + +// Initialize with your site ID and Piwik URL +var piwik = new PiwikTracker(1, 'http://mywebsite.com/piwik.php'); + +// Optional: Respond to tracking errors +piwik.on('error', function(err) { + console.log('error tracking request: ', err) +}) + +// Track a request URL: +// Either as a simple string … +piwik.track('http://example.com/track/this/url'); + +// … or provide further options: +piwik.track({ + url: 'http://example.com/track/this/url', + action_name: 'This will be shown in your dashboard', + ua: 'Node.js v0.10.24', + cvar: JSON.stringify({ + '1': ['custom variable name', 'custom variable value'] + }) +}); From 513a7049f9df45546d28291dea522c2fa7c4ffa9 Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 21:50:59 -0300 Subject: [PATCH 4/7] piwik-tracker: PiwikTracker should inherit EventEmitter --- piwik-tracker/piwik-tracker.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/piwik-tracker/piwik-tracker.d.ts b/piwik-tracker/piwik-tracker.d.ts index ddb1ae133..c40a834b0 100644 --- a/piwik-tracker/piwik-tracker.d.ts +++ b/piwik-tracker/piwik-tracker.d.ts @@ -83,7 +83,7 @@ declare module "piwik-tracker" { send_image? : number; } - class PiwikTracker { + class PiwikTracker extends EventEmitter { constructor(siteId : number, trackerUrl : string); track(options : PiwikTrackOptions) : void; } From abee08ec189f0ea50e16d4b82c37fdf16a799517 Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 21:51:26 -0300 Subject: [PATCH 5/7] piwik-tracker-test: Fix parameter type (implicity any) --- piwik-tracker/piwik-tracker-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/piwik-tracker/piwik-tracker-tests.ts b/piwik-tracker/piwik-tracker-tests.ts index f509fe57e..7d06d6bdc 100644 --- a/piwik-tracker/piwik-tracker-tests.ts +++ b/piwik-tracker/piwik-tracker-tests.ts @@ -9,7 +9,7 @@ var PiwikTracker = require('piwik-tracker'); var piwik = new PiwikTracker(1, 'http://mywebsite.com/piwik.php'); // Optional: Respond to tracking errors -piwik.on('error', function(err) { +piwik.on('error', function(err : Error) { console.log('error tracking request: ', err) }) From 3c378d7859679798d2b859e2087c095d93f6e2c9 Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 21:53:01 -0300 Subject: [PATCH 6/7] piwik-tracker: Should refer node.d.ts --- piwik-tracker/piwik-tracker.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/piwik-tracker/piwik-tracker.d.ts b/piwik-tracker/piwik-tracker.d.ts index c40a834b0..498757002 100644 --- a/piwik-tracker/piwik-tracker.d.ts +++ b/piwik-tracker/piwik-tracker.d.ts @@ -3,6 +3,8 @@ // Definitions by: Guilherme Bernal // Definitions: https://github.com/borisyankov/DefinitelyTyped +/// + declare module "piwik-tracker" { export = PiwikTracker; From 917e0a59a0240ccbd59c62edbd399e526993272f Mon Sep 17 00:00:00 2001 From: Guilherme Bernal Date: Mon, 25 May 2015 21:55:53 -0300 Subject: [PATCH 7/7] piwik-tracker: Properly import EventEmitter --- piwik-tracker/piwik-tracker.d.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/piwik-tracker/piwik-tracker.d.ts b/piwik-tracker/piwik-tracker.d.ts index 498757002..129b714ca 100644 --- a/piwik-tracker/piwik-tracker.d.ts +++ b/piwik-tracker/piwik-tracker.d.ts @@ -7,6 +7,8 @@ declare module "piwik-tracker" { + import events = require('events'); + export = PiwikTracker; // refer to http://developer.piwik.org/api-reference/tracking-api @@ -85,7 +87,7 @@ declare module "piwik-tracker" { send_image? : number; } - class PiwikTracker extends EventEmitter { + class PiwikTracker extends events.EventEmitter { constructor(siteId : number, trackerUrl : string); track(options : PiwikTrackOptions) : void; }