added readme and first working version
This commit is contained in:
commit
a39765ce58
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
coverage/
|
||||||
|
node_modules/
|
||||||
|
public/
|
||||||
|
pages/
|
63
.gitlab-ci.yml
Normal file
63
.gitlab-ci.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# gitzone standard
|
||||||
|
image: hosttoday/ht-docker-node:npmts
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- release
|
||||||
|
- trigger
|
||||||
|
- pages
|
||||||
|
|
||||||
|
testLEGACY:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test legacy
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
|
testLTS:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test lts
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
testSTABLE:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test stable
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
release:
|
||||||
|
stage: release
|
||||||
|
script:
|
||||||
|
- npmci publish
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
stage: trigger
|
||||||
|
script:
|
||||||
|
- npmci trigger
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
pages:
|
||||||
|
image: hosttoday/ht-docker-node:npmpage
|
||||||
|
stage: pages
|
||||||
|
script:
|
||||||
|
- npmci command npmpage --publish gitlab
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- public
|
28
README.md
Normal file
28
README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# smartanalytics
|
||||||
|
Google Analytics everywhere
|
||||||
|
|
||||||
|
## Availabililty
|
||||||
|
[![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartanalytics)
|
||||||
|
[![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smartanalytics)
|
||||||
|
[![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartanalytics)
|
||||||
|
[![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartanalytics/)
|
||||||
|
|
||||||
|
## Status for master
|
||||||
|
[![build status](https://GitLab.com/pushrocks/smartanalytics/badges/master/build.svg)](https://GitLab.com/pushrocks/smartanalytics/commits/master)
|
||||||
|
[![coverage report](https://GitLab.com/pushrocks/smartanalytics/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smartanalytics/commits/master)
|
||||||
|
[![npm downloads per month](https://img.shields.io/npm/dm/smartanalytics.svg)](https://www.npmjs.com/package/smartanalytics)
|
||||||
|
[![Dependency Status](https://david-dm.org/pushrocks/smartanalytics.svg)](https://david-dm.org/pushrocks/smartanalytics)
|
||||||
|
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartanalytics/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartanalytics/master/dependencies/npm)
|
||||||
|
[![bitHound Code](https://www.bithound.io/github/pushrocks/smartanalytics/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartanalytics)
|
||||||
|
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Use TypeScript for best in class instellisense.
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this README.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
|
||||||
|
[![repo-footer](https://pushrocks.gitlab.io/assets/repo-footer.svg)](https://push.rocks)
|
1
dist/index.d.ts
vendored
Normal file
1
dist/index.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { AnalyticsAccount } from './smartanalytics.classes.analyticsaccount';
|
4
dist/index.js
vendored
Normal file
4
dist/index.js
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
"use strict";
|
||||||
|
var smartanalytics_classes_analyticsaccount_1 = require("./smartanalytics.classes.analyticsaccount");
|
||||||
|
exports.AnalyticsAccount = smartanalytics_classes_analyticsaccount_1.AnalyticsAccount;
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEscUdBQTRFO0FBQW5FLHFFQUFBLGdCQUFnQixDQUFBIn0=
|
6
dist/smartanalytics.classes.analyticsaccount.d.ts
vendored
Normal file
6
dist/smartanalytics.classes.analyticsaccount.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export declare class AnalyticsAccount {
|
||||||
|
appName: string;
|
||||||
|
trackingId: string;
|
||||||
|
constructor(appNameArg: string, trackingIdArg: string);
|
||||||
|
sendEvent(eventCategoryArg: any, eventActionArg: any, eventLabelArg: string): void;
|
||||||
|
}
|
13
dist/smartanalytics.classes.analyticsaccount.js
vendored
Normal file
13
dist/smartanalytics.classes.analyticsaccount.js
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
"use strict";
|
||||||
|
const send = require("./smartanalytics.send");
|
||||||
|
class AnalyticsAccount {
|
||||||
|
constructor(appNameArg, trackingIdArg) {
|
||||||
|
this.appName = appNameArg;
|
||||||
|
this.trackingId = trackingIdArg;
|
||||||
|
}
|
||||||
|
sendEvent(eventCategoryArg, eventActionArg, eventLabelArg) {
|
||||||
|
send.event(this.trackingId, this.appName, eventCategoryArg, eventActionArg, eventLabelArg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.AnalyticsAccount = AnalyticsAccount;
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhbmFseXRpY3MuY2xhc3Nlcy5hbmFseXRpY3NhY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhbmFseXRpY3MuY2xhc3Nlcy5hbmFseXRpY3NhY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSw4Q0FBNkM7QUFFN0M7SUFHRSxZQUFZLFVBQWtCLEVBQUUsYUFBcUI7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUE7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUE7SUFDakMsQ0FBQztJQUVELFNBQVMsQ0FBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBcUI7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzVGLENBQUM7Q0FDRjtBQVhELDRDQVdDIn0=
|
4
dist/smartanalytics.plugins.d.ts
vendored
Normal file
4
dist/smartanalytics.plugins.d.ts
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import 'typings-global';
|
||||||
|
import * as smartrequest from 'smartrequest';
|
||||||
|
import * as smartq from 'smartq';
|
||||||
|
export { smartrequest, smartq };
|
7
dist/smartanalytics.plugins.js
vendored
Normal file
7
dist/smartanalytics.plugins.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
"use strict";
|
||||||
|
require("typings-global");
|
||||||
|
const smartrequest = require("smartrequest");
|
||||||
|
exports.smartrequest = smartrequest;
|
||||||
|
const smartq = require("smartq");
|
||||||
|
exports.smartq = smartq;
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhbmFseXRpY3MucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YW5hbHl0aWNzLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2Qiw2Q0FBNEM7QUFJeEMsb0NBQVk7QUFIaEIsaUNBQWdDO0FBSTVCLHdCQUFNIn0=
|
1
dist/smartanalytics.send.d.ts
vendored
Normal file
1
dist/smartanalytics.send.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export declare let event: (trackingIdArg: string, appNameArg: string, eventCategoryArg: string, eventActionArg: any, eventLabelArg?: string) => void;
|
29
dist/smartanalytics.send.js
vendored
Normal file
29
dist/smartanalytics.send.js
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
"use strict";
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const plugins = require("./smartanalytics.plugins");
|
||||||
|
exports.event = (trackingIdArg, appNameArg, eventCategoryArg, eventActionArg, eventLabelArg = 'null') => {
|
||||||
|
let payload = 'v=1' +
|
||||||
|
`&tid=${trackingIdArg}` +
|
||||||
|
'&cid=555' +
|
||||||
|
'&aip=1' +
|
||||||
|
'&t=event' +
|
||||||
|
`&ec=${eventCategoryArg}` +
|
||||||
|
`&ea=${eventActionArg}` +
|
||||||
|
`&el=${eventLabelArg}` +
|
||||||
|
'&ev=300' +
|
||||||
|
`&an=${eventLabelArg}`;
|
||||||
|
send(payload);
|
||||||
|
};
|
||||||
|
let send = (requestBodyArg) => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield plugins.smartrequest.post('http://www.google-analytics.com/collect', {
|
||||||
|
requestBody: requestBodyArg
|
||||||
|
});
|
||||||
|
});
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhbmFseXRpY3Muc2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YW5hbHl0aWNzLnNlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsb0RBQW1EO0FBRXhDLFFBQUEsS0FBSyxHQUFHLENBQUMsYUFBcUIsRUFBRSxVQUFrQixFQUFFLGdCQUF3QixFQUFFLGNBQWMsRUFBRSxnQkFBd0IsTUFBTTtJQUNuSSxJQUFJLE9BQU8sR0FBVyxLQUFLO1FBQ3ZCLFFBQVEsYUFBYSxFQUFFO1FBQ3ZCLFVBQVU7UUFDVixRQUFRO1FBQ1IsVUFBVTtRQUNWLE9BQU8sZ0JBQWdCLEVBQUU7UUFDekIsT0FBTyxjQUFjLEVBQUU7UUFDdkIsT0FBTyxhQUFhLEVBQUU7UUFDdEIsU0FBUztRQUNULE9BQU8sYUFBYSxFQUFFLENBQUE7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2pCLENBQUMsQ0FBQTtBQUdELElBQUksSUFBSSxHQUFHLENBQU8sY0FBc0I7SUFDcEMsTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsRUFBRTtRQUN2RSxXQUFXLEVBQUUsY0FBYztLQUM5QixDQUFDLENBQUE7QUFDTixDQUFDLENBQUEsQ0FBQSJ9
|
21
package.json
Executable file
21
package.json
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "smartanalytics",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Google Analytics everywhere",
|
||||||
|
"main": "dist/index.js",
|
||||||
|
"typings": "dist/index.d.ts",
|
||||||
|
"scripts": {
|
||||||
|
"test": "(npmts)"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"smartq": "^1.1.1",
|
||||||
|
"smartrequest": "^1.0.4",
|
||||||
|
"typings-global": "^1.0.14"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"smartchai": "^1.0.3",
|
||||||
|
"typings-test": "^1.0.3"
|
||||||
|
}
|
||||||
|
}
|
1
test/test.d.ts
vendored
Normal file
1
test/test.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import 'typings-test';
|
31
test/test.js
Executable file
31
test/test.js
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
"use strict";
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
require("typings-test");
|
||||||
|
const smartanalytics = require("../dist/index");
|
||||||
|
let testAccount;
|
||||||
|
describe('smartanalytics', function () {
|
||||||
|
it('should create a valid AnalyticsAccount', function () {
|
||||||
|
testAccount = new smartanalytics.AnalyticsAccount('smartanalytics', 'UA-92592300-1');
|
||||||
|
});
|
||||||
|
it('should send a request to Google Analytics', function () {
|
||||||
|
let doit = () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq');
|
||||||
|
yield testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics');
|
||||||
|
});
|
||||||
|
doit();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsd0JBQXFCO0FBSXJCLGdEQUErQztBQUUvQyxJQUFJLFdBQTRDLENBQUE7QUFFaEQsUUFBUSxDQUFDLGdCQUFnQixFQUFFO0lBQ3pCLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRTtRQUMzQyxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDdEYsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsMkNBQTJDLEVBQUU7UUFDOUMsSUFBSSxJQUFJLEdBQUc7WUFDVCxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1lBQ3JFLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixDQUFDLENBQUE7WUFDN0UsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtZQUNyRSxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO1lBQzdFLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUE7WUFDckUsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtZQUM3RSxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1lBQ3JFLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixDQUFDLENBQUE7UUFDL0UsQ0FBQyxDQUFBLENBQUE7UUFDRCxJQUFJLEVBQUUsQ0FBQTtJQUNSLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEifQ==
|
27
test/test.ts
Executable file
27
test/test.ts
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
import 'typings-test'
|
||||||
|
|
||||||
|
import { expect } from 'smartchai'
|
||||||
|
|
||||||
|
import * as smartanalytics from '../dist/index'
|
||||||
|
|
||||||
|
let testAccount: smartanalytics.AnalyticsAccount
|
||||||
|
|
||||||
|
describe('smartanalytics', function () {
|
||||||
|
it('should create a valid AnalyticsAccount', function () {
|
||||||
|
testAccount = new smartanalytics.AnalyticsAccount('smartanalytics', 'UA-92592300-1')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should send a request to Google Analytics', function () {
|
||||||
|
let doit = async () => {
|
||||||
|
await testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq')
|
||||||
|
await testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics')
|
||||||
|
await testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq')
|
||||||
|
await testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics')
|
||||||
|
await testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq')
|
||||||
|
await testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics')
|
||||||
|
await testAccount.sendEvent('npmtool', 'install', 'pushrocks/smartq')
|
||||||
|
await testAccount.sendEvent('npmtool', 'started', 'pushrocks/smartanalytics')
|
||||||
|
}
|
||||||
|
doit()
|
||||||
|
})
|
||||||
|
})
|
1
ts/index.ts
Executable file
1
ts/index.ts
Executable file
@ -0,0 +1 @@
|
|||||||
|
export { AnalyticsAccount } from './smartanalytics.classes.analyticsaccount'
|
15
ts/smartanalytics.classes.analyticsaccount.ts
Normal file
15
ts/smartanalytics.classes.analyticsaccount.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import * as plugins from './smartanalytics.plugins'
|
||||||
|
import * as send from './smartanalytics.send'
|
||||||
|
|
||||||
|
export class AnalyticsAccount {
|
||||||
|
appName: string
|
||||||
|
trackingId: string
|
||||||
|
constructor(appNameArg: string, trackingIdArg: string) {
|
||||||
|
this.appName = appNameArg
|
||||||
|
this.trackingId = trackingIdArg
|
||||||
|
}
|
||||||
|
|
||||||
|
sendEvent (eventCategoryArg, eventActionArg, eventLabelArg: string) {
|
||||||
|
send.event(this.trackingId, this.appName, eventCategoryArg, eventActionArg, eventLabelArg)
|
||||||
|
}
|
||||||
|
}
|
8
ts/smartanalytics.plugins.ts
Executable file
8
ts/smartanalytics.plugins.ts
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
import 'typings-global'
|
||||||
|
import * as smartrequest from 'smartrequest'
|
||||||
|
import * as smartq from 'smartq'
|
||||||
|
|
||||||
|
export {
|
||||||
|
smartrequest,
|
||||||
|
smartq
|
||||||
|
}
|
22
ts/smartanalytics.send.ts
Executable file
22
ts/smartanalytics.send.ts
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
import * as plugins from './smartanalytics.plugins'
|
||||||
|
|
||||||
|
export let event = (trackingIdArg: string, appNameArg: string, eventCategoryArg: string, eventActionArg, eventLabelArg: string = 'null') => {
|
||||||
|
let payload: string = 'v=1' +
|
||||||
|
`&tid=${trackingIdArg}` + // the tracking ID
|
||||||
|
'&cid=555' +
|
||||||
|
'&aip=1' + // anonymize the IP
|
||||||
|
'&t=event' +
|
||||||
|
`&ec=${eventCategoryArg}` +
|
||||||
|
`&ea=${eventActionArg}` +
|
||||||
|
`&el=${eventLabelArg}` +
|
||||||
|
'&ev=300' +
|
||||||
|
`&an=${eventLabelArg}`
|
||||||
|
send(payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let send = async (requestBodyArg: string) => {
|
||||||
|
await plugins.smartrequest.post('http://www.google-analytics.com/collect', {
|
||||||
|
requestBody: requestBodyArg
|
||||||
|
})
|
||||||
|
}
|
3
tslint.json
Normal file
3
tslint.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "tslint-config-standard"
|
||||||
|
}
|
198
yarn.lock
Executable file
198
yarn.lock
Executable file
@ -0,0 +1,198 @@
|
|||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@types/chai-as-promised@0.0.29":
|
||||||
|
version "0.0.29"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "*"
|
||||||
|
"@types/promises-a-plus" "*"
|
||||||
|
|
||||||
|
"@types/chai-string@^1.1.30":
|
||||||
|
version "1.1.30"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.30.tgz#4d8744b31a5a2295fc01c981ed1e2d4c8a070f0a"
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "*"
|
||||||
|
|
||||||
|
"@types/chai@*", "@types/chai@^3.4.35":
|
||||||
|
version "3.4.35"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.4.35.tgz#e8d65f83492d2944f816fc620741821c28a8c900"
|
||||||
|
|
||||||
|
"@types/mocha@^2.2.31":
|
||||||
|
version "2.2.39"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.39.tgz#f68d63db8b69c38e9558b4073525cf96c4f7a829"
|
||||||
|
|
||||||
|
"@types/promises-a-plus@*":
|
||||||
|
version "0.0.27"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
|
||||||
|
|
||||||
|
assertion-error@^1.0.1:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
|
||||||
|
|
||||||
|
balanced-match@^0.4.1:
|
||||||
|
version "0.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
|
||||||
|
|
||||||
|
brace-expansion@^1.0.0:
|
||||||
|
version "1.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
|
||||||
|
dependencies:
|
||||||
|
balanced-match "^0.4.1"
|
||||||
|
concat-map "0.0.1"
|
||||||
|
|
||||||
|
chai-as-promised@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
|
||||||
|
dependencies:
|
||||||
|
check-error "^1.0.2"
|
||||||
|
|
||||||
|
chai-string@^1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.3.0.tgz#df6139f294391b1035be5606f60a843b3a5041e7"
|
||||||
|
|
||||||
|
chai@^3.5.0:
|
||||||
|
version "3.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
|
||||||
|
dependencies:
|
||||||
|
assertion-error "^1.0.1"
|
||||||
|
deep-eql "^0.1.3"
|
||||||
|
type-detect "^1.0.0"
|
||||||
|
|
||||||
|
check-error@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
|
||||||
|
|
||||||
|
concat-map@0.0.1:
|
||||||
|
version "0.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
|
|
||||||
|
deep-eql@^0.1.3:
|
||||||
|
version "0.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
|
||||||
|
dependencies:
|
||||||
|
type-detect "0.1.1"
|
||||||
|
|
||||||
|
fs.realpath@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
|
|
||||||
|
glob@^7.0.0:
|
||||||
|
version "7.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
|
||||||
|
dependencies:
|
||||||
|
fs.realpath "^1.0.0"
|
||||||
|
inflight "^1.0.4"
|
||||||
|
inherits "2"
|
||||||
|
minimatch "^3.0.2"
|
||||||
|
once "^1.3.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
|
inflight@^1.0.4:
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
dependencies:
|
||||||
|
once "^1.3.0"
|
||||||
|
wrappy "1"
|
||||||
|
|
||||||
|
inherits@2:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||||
|
|
||||||
|
interpret@^1.0.0:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c"
|
||||||
|
|
||||||
|
minimatch@^3.0.2:
|
||||||
|
version "3.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
|
||||||
|
dependencies:
|
||||||
|
brace-expansion "^1.0.0"
|
||||||
|
|
||||||
|
once@^1.3.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
dependencies:
|
||||||
|
wrappy "1"
|
||||||
|
|
||||||
|
path-is-absolute@^1.0.0:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
|
|
||||||
|
rechoir@^0.6.2:
|
||||||
|
version "0.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
|
||||||
|
dependencies:
|
||||||
|
resolve "^1.1.6"
|
||||||
|
|
||||||
|
resolve@^1.1.6:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c"
|
||||||
|
|
||||||
|
semver@^5.3.0:
|
||||||
|
version "5.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
|
||||||
|
|
||||||
|
shelljs@^0.7.4:
|
||||||
|
version "0.7.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad"
|
||||||
|
dependencies:
|
||||||
|
glob "^7.0.0"
|
||||||
|
interpret "^1.0.0"
|
||||||
|
rechoir "^0.6.2"
|
||||||
|
|
||||||
|
smartchai@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "^3.4.35"
|
||||||
|
"@types/chai-as-promised" "0.0.29"
|
||||||
|
"@types/chai-string" "^1.1.30"
|
||||||
|
chai "^3.5.0"
|
||||||
|
chai-as-promised "^6.0.0"
|
||||||
|
chai-string "^1.3.0"
|
||||||
|
|
||||||
|
smartq@^1.1.0, smartq@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.1.tgz#efb358705260d41ae18aef7ffd815f7b6fe17dd3"
|
||||||
|
dependencies:
|
||||||
|
typed-promisify "^0.3.0"
|
||||||
|
typings-global "^1.0.14"
|
||||||
|
|
||||||
|
smartrequest@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartrequest/-/smartrequest-1.0.4.tgz#86af2163ae28f1031b01c2d8ad8c429733920611"
|
||||||
|
dependencies:
|
||||||
|
smartq "^1.1.0"
|
||||||
|
typings-global "^1.0.14"
|
||||||
|
|
||||||
|
type-detect@0.1.1:
|
||||||
|
version "0.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
|
||||||
|
|
||||||
|
type-detect@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
|
||||||
|
|
||||||
|
typed-promisify@^0.3.0:
|
||||||
|
version "0.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/typed-promisify/-/typed-promisify-0.3.0.tgz#1ba0af5e444c87d8047406f18ce49092a1191853"
|
||||||
|
|
||||||
|
typings-global@*, typings-global@^1.0.14:
|
||||||
|
version "1.0.14"
|
||||||
|
resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.14.tgz#ab682720a03d6b9278869fb5c30c30d7dc61d12c"
|
||||||
|
dependencies:
|
||||||
|
semver "^5.3.0"
|
||||||
|
shelljs "^0.7.4"
|
||||||
|
|
||||||
|
typings-test@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/typings-test/-/typings-test-1.0.3.tgz#fbab895eb3f0c44842e73db059f65946b971e369"
|
||||||
|
dependencies:
|
||||||
|
"@types/mocha" "^2.2.31"
|
||||||
|
typings-global "*"
|
||||||
|
|
||||||
|
wrappy@1:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
Loading…
Reference in New Issue
Block a user