@ninetailed/experience.js-node 1.5.0
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 +7 -0
- package/package.json +15 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +8 -0
- package/src/index.js.map +1 -0
- package/src/lib/Client/Client.d.ts +19 -0
- package/src/lib/Client/Client.js +69 -0
- package/src/lib/Client/Client.js.map +1 -0
- package/src/lib/Client/index.d.ts +1 -0
- package/src/lib/Client/index.js +5 -0
- package/src/lib/Client/index.js.map +1 -0
- package/src/lib/index.d.ts +6 -0
- package/src/lib/index.js +10 -0
- package/src/lib/index.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ninetailed/experience.js-node",
|
|
3
|
+
"version": "1.5.0",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"node-fetch": "^3.0.0",
|
|
6
|
+
"uuid": "^8.3.2",
|
|
7
|
+
"@ninetailed/experience.js-shared": "1.5.0",
|
|
8
|
+
"ts-toolbelt": "^9.6.0",
|
|
9
|
+
"locale-enum": "^1.1.1",
|
|
10
|
+
"i18n-iso-countries": "^7.3.0"
|
|
11
|
+
},
|
|
12
|
+
"main": "./src/index.js",
|
|
13
|
+
"typings": "./src/index.d.ts",
|
|
14
|
+
"peerDependencies": {}
|
|
15
|
+
}
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./lib"), exports);
|
|
6
|
+
var lib_1 = require("./lib");
|
|
7
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return lib_1.default; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/nodejs/src/index.ts"],"names":[],"mappings":";;;;AAAA,qDAAsB;AACtB,6BAAgC;AAAvB,8FAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Event, IdentifyEvent, Traits } from '@ninetailed/experience.js-shared';
|
|
2
|
+
declare type NinetailedAPIClientOptions = {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
url?: string;
|
|
5
|
+
};
|
|
6
|
+
declare type SendEventOptions = {
|
|
7
|
+
anonymousId?: string;
|
|
8
|
+
timestamp?: number;
|
|
9
|
+
};
|
|
10
|
+
export declare class NinetailedAPIClient {
|
|
11
|
+
private readonly apiKey;
|
|
12
|
+
private readonly url;
|
|
13
|
+
constructor({ apiKey, url }: NinetailedAPIClientOptions);
|
|
14
|
+
ingestEvents(events: Event[]): Promise<void>;
|
|
15
|
+
createIdentifyEvent(userId: string, traits: Traits, options?: SendEventOptions): IdentifyEvent;
|
|
16
|
+
sendIdentifyEvent(userId: string, traits: Traits, options?: SendEventOptions): Promise<void>;
|
|
17
|
+
private buildRequestContext;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NinetailedAPIClient = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
const experience_js_shared_1 = require("@ninetailed/experience.js-shared");
|
|
7
|
+
const _importDynamic = new Function('modulePath', 'return import(modulePath)');
|
|
8
|
+
function fetch(...args) {
|
|
9
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
10
|
+
const { default: fetch } = yield _importDynamic('node-fetch');
|
|
11
|
+
return fetch(...args);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
const BASE_URL = 'https://api.ninetailed.co';
|
|
15
|
+
class NinetailedAPIClient {
|
|
16
|
+
constructor({ apiKey, url = BASE_URL }) {
|
|
17
|
+
this.apiKey = apiKey;
|
|
18
|
+
this.url = url;
|
|
19
|
+
}
|
|
20
|
+
ingestEvents(events) {
|
|
21
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
22
|
+
const payload = {
|
|
23
|
+
events,
|
|
24
|
+
};
|
|
25
|
+
const response = yield fetch(`${this.url}/events`, {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
headers: {
|
|
28
|
+
'Content-Type': 'application/json',
|
|
29
|
+
'x-ninetailed-api-key': this.apiKey,
|
|
30
|
+
},
|
|
31
|
+
body: JSON.stringify(payload),
|
|
32
|
+
});
|
|
33
|
+
const { message, error, } = (yield response.json());
|
|
34
|
+
if (error) {
|
|
35
|
+
throw new Error(message);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
createIdentifyEvent(userId, traits, options) {
|
|
40
|
+
const messageId = (0, uuid_1.v4)();
|
|
41
|
+
const anonymousId = (options === null || options === void 0 ? void 0 : options.anonymousId) || (0, uuid_1.v4)();
|
|
42
|
+
const timestamp = (options === null || options === void 0 ? void 0 : options.timestamp) || Date.now();
|
|
43
|
+
return (0, experience_js_shared_1.buildIdentifyEvent)({
|
|
44
|
+
messageId,
|
|
45
|
+
ctx: this.buildRequestContext(),
|
|
46
|
+
userId,
|
|
47
|
+
traits,
|
|
48
|
+
anonymousId,
|
|
49
|
+
timestamp,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
sendIdentifyEvent(userId, traits, options) {
|
|
53
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
54
|
+
const event = this.createIdentifyEvent(userId, traits, options);
|
|
55
|
+
yield this.ingestEvents([event]);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
buildRequestContext() {
|
|
59
|
+
const ctx = {
|
|
60
|
+
url: '',
|
|
61
|
+
referrer: '',
|
|
62
|
+
locale: '',
|
|
63
|
+
userAgent: '',
|
|
64
|
+
};
|
|
65
|
+
return ctx;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.NinetailedAPIClient = NinetailedAPIClient;
|
|
69
|
+
//# sourceMappingURL=Client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../../../packages/nodejs/src/lib/Client/Client.ts"],"names":[],"mappings":";;;;AAAA,+BAAkC;AAClC,2EAQ0C;AAE1C,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;AAE/E,SAAe,KAAK,CAAC,GAAG,IAAI;;QAC1B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC;CAAA;AAYD,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAE7C,MAAa,mBAAmB;IAI9B,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,QAAQ,EAA8B;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEY,YAAY,CAAC,MAAe;;YACvC,MAAM,OAAO,GAA+B;gBAC1C,MAAM;aACP,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,EAAE;gBACjD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,sBAAsB,EAAE,IAAI,CAAC,MAAM;iBACpC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;YACH,MAAM,EACJ,OAAO,EACP,KAAK,GACN,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgC,CAAC;YAC3D,IAAI,KAAK,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;aAC1B;QACH,CAAC;KAAA;IAEM,mBAAmB,CACxB,MAAc,EACd,MAAc,EACd,OAA0B;QAE1B,MAAM,SAAS,GAAG,IAAA,SAAI,GAAE,CAAC;QACzB,MAAM,WAAW,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,IAAA,SAAI,GAAE,CAAC;QACnD,MAAM,SAAS,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,IAAA,yCAAkB,EAAC;YACxB,SAAS;YACT,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE;YAC/B,MAAM;YACN,MAAM;YACN,WAAW;YACX,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEY,iBAAiB,CAC5B,MAAc,EACd,MAAc,EACd,OAA0B;;YAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;KAAA;IAEO,mBAAmB;QACzB,MAAM,GAAG,GAA6B;YACpC,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;SACd,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAlED,kDAkEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nodejs/src/lib/Client/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB"}
|
package/src/lib/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ninetailed = void 0;
|
|
4
|
+
const Client_1 = require("./Client");
|
|
5
|
+
const ninetailed = (apiKey, options) => {
|
|
6
|
+
return new Client_1.NinetailedAPIClient(Object.assign({ apiKey }, options));
|
|
7
|
+
};
|
|
8
|
+
exports.ninetailed = ninetailed;
|
|
9
|
+
exports.default = exports.ninetailed;
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/nodejs/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAMxC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,OAAiB,EAAE,EAAE;IAC9D,OAAO,IAAI,4BAAmB,iBAAG,MAAM,IAAK,OAAO,EAAG,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEF,kBAAe,kBAAU,CAAC"}
|