affise-attribution-lib 1.6.13 → 1.6.15

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.
Files changed (60) hide show
  1. package/README.md +45 -10
  2. package/affise-attribution-native.podspec +1 -1
  3. package/android/build.gradle +6 -2
  4. package/lib/commonjs/events/OnSendFailedCallback.js +6 -0
  5. package/lib/commonjs/events/OnSendFailedCallback.js.map +1 -0
  6. package/lib/commonjs/events/OnSendSuccessCallback.js +2 -0
  7. package/lib/commonjs/events/OnSendSuccessCallback.js.map +1 -0
  8. package/lib/commonjs/events/base/AffiseEvent.js +7 -0
  9. package/lib/commonjs/events/base/AffiseEvent.js.map +1 -1
  10. package/lib/commonjs/index.js +15 -0
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/native/AffiseApiMethod.js +2 -0
  13. package/lib/commonjs/native/AffiseApiMethod.js.map +1 -1
  14. package/lib/commonjs/native/AffiseNative.js +43 -13
  15. package/lib/commonjs/native/AffiseNative.js.map +1 -1
  16. package/lib/commonjs/native/NativeBase.js +25 -3
  17. package/lib/commonjs/native/NativeBase.js.map +1 -1
  18. package/lib/commonjs/native/utils/DebugUtils.js +26 -16
  19. package/lib/commonjs/native/utils/DebugUtils.js.map +1 -1
  20. package/lib/module/events/OnSendFailedCallback.js +2 -0
  21. package/lib/module/events/OnSendFailedCallback.js.map +1 -0
  22. package/lib/module/events/OnSendSuccessCallback.js +2 -0
  23. package/lib/module/events/OnSendSuccessCallback.js.map +1 -0
  24. package/lib/module/events/base/AffiseEvent.js +7 -1
  25. package/lib/module/events/base/AffiseEvent.js.map +1 -1
  26. package/lib/module/index.js +15 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/native/AffiseApiMethod.js +2 -0
  29. package/lib/module/native/AffiseApiMethod.js.map +1 -1
  30. package/lib/module/native/AffiseNative.js +43 -13
  31. package/lib/module/native/AffiseNative.js.map +1 -1
  32. package/lib/module/native/NativeBase.js +25 -3
  33. package/lib/module/native/NativeBase.js.map +1 -1
  34. package/lib/module/native/utils/DebugUtils.js +26 -16
  35. package/lib/module/native/utils/DebugUtils.js.map +1 -1
  36. package/lib/typescript/events/OnSendFailedCallback.d.ts +3 -0
  37. package/lib/typescript/events/OnSendFailedCallback.d.ts.map +1 -0
  38. package/lib/typescript/events/OnSendSuccessCallback.d.ts +2 -0
  39. package/lib/typescript/events/OnSendSuccessCallback.d.ts.map +1 -0
  40. package/lib/typescript/events/base/AffiseEvent.d.ts +6 -0
  41. package/lib/typescript/events/base/AffiseEvent.d.ts.map +1 -1
  42. package/lib/typescript/index.d.ts +10 -0
  43. package/lib/typescript/index.d.ts.map +1 -1
  44. package/lib/typescript/native/AffiseApiMethod.d.ts +2 -0
  45. package/lib/typescript/native/AffiseApiMethod.d.ts.map +1 -1
  46. package/lib/typescript/native/AffiseNative.d.ts +7 -1
  47. package/lib/typescript/native/AffiseNative.d.ts.map +1 -1
  48. package/lib/typescript/native/NativeBase.d.ts +4 -1
  49. package/lib/typescript/native/NativeBase.d.ts.map +1 -1
  50. package/lib/typescript/native/utils/DebugUtils.d.ts +2 -0
  51. package/lib/typescript/native/utils/DebugUtils.d.ts.map +1 -1
  52. package/package.json +1 -1
  53. package/src/events/OnSendFailedCallback.ts +3 -0
  54. package/src/events/OnSendSuccessCallback.ts +1 -0
  55. package/src/events/base/AffiseEvent.ts +9 -0
  56. package/src/index.ts +17 -0
  57. package/src/native/AffiseApiMethod.ts +2 -1
  58. package/src/native/AffiseNative.ts +35 -1
  59. package/src/native/NativeBase.ts +26 -3
  60. package/src/native/utils/DebugUtils.ts +30 -16
@@ -1 +1 @@
1
- {"version":3,"file":"NativeBase.d.ts","sourceRoot":"","sources":["../../../src/native/NativeBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAKxD,qBAAa,UAAW,SAAQ,kBAAkB;IAC9C,SAAS,CAAC,IAAI,EAAE,MAAM,CAAmB;IAEzC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAA8B;IAC3E,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAuC;IAEzF,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAOpF,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAO9D,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAU7F,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAQzF,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAqBnD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG;CAGjF"}
1
+ {"version":3,"file":"NativeBase.d.ts","sourceRoot":"","sources":["../../../src/native/NativeBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAKxD,qBAAa,UAAW,SAAQ,kBAAkB;IAC9C,SAAS,CAAC,IAAI,EAAE,MAAM,CAAmB;IACzC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAkB;IAEvC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAA2C;IACtG,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAA8B;IAC3E,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAuC;IAEzF,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAOpF,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAO9D,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAU7F,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAUhH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,GAAG,GAAG,IAAW;IAQzF,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAgCnD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAGtG"}
@@ -3,6 +3,8 @@ import { HttpRequest } from "../../network/HttpRequest";
3
3
  import { HttpResponse } from "../../network/HttpResponse";
4
4
  export declare class DebugUtils {
5
5
  static getValidationStatus(data: any): ValidationStatus;
6
+ static parseResponse(data: any): HttpResponse;
7
+ static parseRequest(data: any): HttpRequest;
6
8
  static parseRequestResponse(data: any): [HttpRequest, HttpResponse];
7
9
  }
8
10
  //# sourceMappingURL=DebugUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugUtils.d.ts","sourceRoot":"","sources":["../../../../src/native/utils/DebugUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAuB,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAIxD,qBAAa,UAAU;IACnB,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAIvD,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;CAyBtE"}
1
+ {"version":3,"file":"DebugUtils.d.ts","sourceRoot":"","sources":["../../../../src/native/utils/DebugUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAuB,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAIxD,qBAAa,UAAU;IACnB,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAIvD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY;IAa7C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW;IAe3C,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;CAWtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "affise-attribution-lib",
3
- "version": "1.6.13",
3
+ "version": "1.6.15",
4
4
  "description": "Affise Attribution Library",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -0,0 +1,3 @@
1
+ import type {HttpResponse} from "../network/HttpResponse";
2
+
3
+ export type OnSendFailedCallback = (status: HttpResponse) => void;
@@ -0,0 +1 @@
1
+ export type OnSendSuccessCallback = () => void;
@@ -10,6 +10,8 @@ import type {PredefinedString} from "../parameters/PredefinedString";
10
10
  import {Parameters} from "../Parameters";
11
11
  import {timestamp} from "../../utils/Timestamp";
12
12
  import { Affise } from "../../index";
13
+ import type {OnSendSuccessCallback} from "../OnSendSuccessCallback";
14
+ import type {OnSendFailedCallback} from "../OnSendFailedCallback";
13
15
 
14
16
  /**
15
17
  * Base event
@@ -125,6 +127,13 @@ export class AffiseEvent implements PredefinedParameter {
125
127
  Affise.sendEvent(this);
126
128
  }
127
129
 
130
+ /**
131
+ * Send this event now
132
+ */
133
+ sendNow(success: OnSendSuccessCallback, failed: OnSendFailedCallback) {
134
+ Affise.sendEventNow(this, success, failed);
135
+ }
136
+
128
137
  /**
129
138
  * Get predefined parameter
130
139
  */
package/src/index.ts CHANGED
@@ -16,6 +16,8 @@ import type {
16
16
  import {AffiseNative} from "./native/AffiseNative";
17
17
  import {Platform} from "react-native";
18
18
  import {AffiseSettings} from "./Export";
19
+ import type {OnSendSuccessCallback} from "./events/OnSendSuccessCallback";
20
+ import type {OnSendFailedCallback} from "./events/OnSendFailedCallback";
19
21
 
20
22
  export * from "./Export";
21
23
 
@@ -58,6 +60,13 @@ export class Affise {
58
60
  this.native.sendEvent(event);
59
61
  }
60
62
 
63
+ /**
64
+ * Send [event] now
65
+ */
66
+ static sendEventNow(event: AffiseEvent, success: OnSendSuccessCallback, failed: OnSendFailedCallback) {
67
+ this.native.sendEventNow(event, success, failed);
68
+ }
69
+
61
70
  /**
62
71
  * Add [pushToken]
63
72
  */
@@ -180,6 +189,14 @@ export class Affise {
180
189
  static getProviders(): Promise<Record<string, any>> {
181
190
  return this.native.getProviders();
182
191
  }
192
+
193
+ /**
194
+ * Is it first run
195
+ */
196
+ static isFirstRun(): Promise<boolean> {
197
+ return this.native.isFirstRun();
198
+ }
199
+
183
200
  /**
184
201
  * Get referrer
185
202
  */
@@ -3,8 +3,8 @@ import {getEnumFromString} from "../utils/EnumUtils";
3
3
  export enum AffiseApiMethod {
4
4
  INIT = "init",
5
5
  IS_INITIALIZED = "is_initialized",
6
- // SEND_EVENTS = "send_events", // deprecated
7
6
  SEND_EVENT = "send_event",
7
+ SEND_EVENT_NOW = "send_event_now",
8
8
  ADD_PUSH_TOKEN = "add_push_token",
9
9
  REGISTER_WEB_VIEW = "register_web_view",
10
10
  UNREGISTER_WEB_VIEW = "unregister_web_view",
@@ -24,6 +24,7 @@ export enum AffiseApiMethod {
24
24
  GET_PROVIDERS = "get_providers",
25
25
  MODULE_START = "module_start",
26
26
  GET_MODULES_INSTALLED = "get_modules_installed",
27
+ IS_FIRST_RUN = "is_first_run",
27
28
 
28
29
  // callback methods
29
30
  GET_REFERRER_CALLBACK = "get_referrer_callback",
@@ -16,9 +16,14 @@ import {toAffiseKeyValueList} from "../module/AffiseKeyValue";
16
16
  import type {DebugOnValidateCallback} from "../debug/validate/DebugOnValidateCallback";
17
17
  import type {DebugOnNetworkCallback} from "../debug/network/DebugOnNetworkCallback";
18
18
  import {DebugUtils} from "./utils/DebugUtils";
19
+ import type {OnSendSuccessCallback} from "../events/OnSendSuccessCallback";
20
+ import type {OnSendFailedCallback} from "../events/OnSendFailedCallback";
19
21
 
20
22
  export class AffiseNative extends NativeBase {
21
23
 
24
+ protected SUCCESS: string = "success";
25
+ protected FAILED: string = "failed";
26
+
22
27
  init(initProperties: AffiseInitProperties | AffiseInitPropertiesType) {
23
28
  let option: AffiseInitProperties;
24
29
  if (isAffiseInitPropertiesType(initProperties)) {
@@ -38,6 +43,17 @@ export class AffiseNative extends NativeBase {
38
43
  this.native(AffiseApiMethod.SEND_EVENT, event.toRecord());
39
44
  }
40
45
 
46
+ sendEventNow(event: AffiseEvent, success: OnSendSuccessCallback, failed: OnSendFailedCallback) {
47
+ this.nativeCallbackGroup(
48
+ AffiseApiMethod.SEND_EVENT_NOW,
49
+ new Map([
50
+ [this.SUCCESS, success],
51
+ [this.FAILED, failed],
52
+ ]),
53
+ event.toRecord()
54
+ );
55
+ }
56
+
41
57
  addPushToken(pushToken: string) {
42
58
  this.native(AffiseApiMethod.ADD_PUSH_TOKEN, pushToken);
43
59
  }
@@ -111,6 +127,10 @@ export class AffiseNative extends NativeBase {
111
127
  return this.nativeResult(AffiseApiMethod.GET_MODULES_INSTALLED);
112
128
  }
113
129
 
130
+ isFirstRun(): Promise<boolean> {
131
+ return this.nativeResult(AffiseApiMethod.IS_FIRST_RUN);
132
+ }
133
+
114
134
  getRandomUserId(): Promise<string> {
115
135
  return this.nativeResult(AffiseApiMethod.GET_RANDOM_USER_ID);
116
136
  }
@@ -142,8 +162,22 @@ export class AffiseNative extends NativeBase {
142
162
  this.nativeCallback(AffiseApiMethod.DEBUG_NETWORK_CALLBACK, callback);
143
163
  }
144
164
 
145
- protected handleCallback(api: AffiseApiMethod, callback: unknown, data: any) {
165
+ protected handleCallback(api: AffiseApiMethod, callback: unknown, data: any, tag: string | null) {
146
166
  switch (api) {
167
+ case AffiseApiMethod.SEND_EVENT_NOW:
168
+ switch (tag) {
169
+ case this.SUCCESS:
170
+ tryCast<OnSendSuccessCallback>(callback)?.();
171
+ break;
172
+ case this.FAILED: {
173
+ const response = DebugUtils.parseResponse(data);
174
+ tryCast<OnSendFailedCallback>(callback)?.(response);
175
+ }
176
+ break;
177
+ default:
178
+ break;
179
+ }
180
+ break;
147
181
  case AffiseApiMethod.GET_REFERRER_CALLBACK:
148
182
  tryCast<ReferrerCallback>(callback)?.(data as string || "");
149
183
  break;
@@ -6,7 +6,9 @@ import {apiMethodFrom} from "./AffiseApiMethod";
6
6
 
7
7
  export class NativeBase extends NativeBasePlatform {
8
8
  protected UUID: string = "callback_uuid";
9
+ protected TAG: string = "callback_tag";
9
10
 
11
+ protected callbacksGroup: Map<string, Map<string, unknown>> = new Map<string, Map<string, unknown>>();
10
12
  protected callbacksOnce: Map<string, unknown> = new Map<string, unknown>();
11
13
  protected callbacks: Map<AffiseApiMethod, unknown> = new Map<AffiseApiMethod, unknown>();
12
14
 
@@ -34,6 +36,16 @@ export class NativeBase extends NativeBasePlatform {
34
36
  this.apiCall(api.toString(), apiData);
35
37
  }
36
38
 
39
+ protected nativeCallbackGroup(api: AffiseApiMethod, callbackGroup: Map<string, unknown>, data: any | null = null) {
40
+ const uuid = Uuid.generate();
41
+ const apiData: Record<string, any> = {
42
+ [api.toString()]: data,
43
+ [this.UUID]: uuid,
44
+ };
45
+ this.callbacksGroup.set(uuid, callbackGroup);
46
+ this.apiCall(api.toString(), apiData);
47
+ }
48
+
37
49
  protected nativeCallback(api: AffiseApiMethod, callback: unknown, data: any | null = null) {
38
50
  const apiData: Record<string, any> = {
39
51
  [api.toString()]: data,
@@ -47,23 +59,34 @@ export class NativeBase extends NativeBasePlatform {
47
59
  if (api == null) return;
48
60
  const dataRecord = apiData as Record<string, any>;
49
61
  const uuid = dataRecord[this.UUID] as string;
62
+ const tag = dataRecord[this.TAG] as string;
50
63
  const data = dataRecord[apiName];
64
+
51
65
  if (uuid == null || uuid.length == 0) {
52
66
  const callback = this.callbacks.get(api);
53
67
  if (callback !== undefined) {
54
- this.handleCallback(api, callback, data);
68
+ this.handleCallback(api, callback, data, null);
69
+ }
70
+ } else if (tag != null && uuid.length > 0) {
71
+ const callbackGroup = this.callbacksGroup.get(uuid);
72
+ if (callbackGroup !== undefined) {
73
+ const callback = callbackGroup.get(tag);
74
+ if (callback !== undefined) {
75
+ this.handleCallback(api, callback, data, tag);
76
+ }
55
77
  }
78
+ this.callbacksGroup.delete(uuid);
56
79
  } else {
57
80
  const callback = this.callbacksOnce.get(uuid);
58
81
  if (callback !== undefined) {
59
- this.handleCallback(api, callback, data);
82
+ this.handleCallback(api, callback, data, null);
60
83
  }
61
84
  this.callbacksOnce.delete(uuid);
62
85
  }
63
86
  }
64
87
 
65
88
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
- protected handleCallback(_api: AffiseApiMethod, _callback: unknown, _data: any) {
89
+ protected handleCallback(_api: AffiseApiMethod, _callback: unknown, _data: any, _tag: string | null) {
67
90
 
68
91
  }
69
92
  }
@@ -9,29 +9,43 @@ export class DebugUtils {
9
9
  return validationStatusFrom(data as string || "") || ValidationStatus.UNKNOWN_ERROR;
10
10
  }
11
11
 
12
- static parseRequestResponse(data: any): [HttpRequest, HttpResponse] {
12
+ static parseResponse(data: any): HttpResponse {
13
13
  const json = tryCast<Record<string, any>>(data) || {};
14
+ const resCode = json["code"] as number || 0;
15
+ const resMessage = json["message"] || "";
16
+ const resBody = json["body"];
14
17
 
15
- const req = json["request"];
16
- const reqUrl = req["url"] || "";
17
- const reqMethod = req["method"] || "";
18
- const reqBody = req["body"];
19
- const reqHeaders = tryCast<Record<string, string>>(req["headers"]) || {};
18
+ return new HttpResponse({
19
+ code: resCode,
20
+ message: resMessage,
21
+ body: resBody
22
+ });
23
+ }
20
24
 
21
- const res = json["response"];
22
- const resCode = res["code"] as number || 0;
23
- const resMessage = res["message"] || "";
24
- const resBody = res["body"];
25
+ static parseRequest(data: any): HttpRequest {
26
+ const json = tryCast<Record<string, any>>(data) || {};
27
+ const reqUrl = json["url"] || "";
28
+ const reqMethod = json["method"] || "";
29
+ const reqBody = json["body"];
30
+ const reqHeaders = tryCast<Record<string, string>>(json["headers"]) || {};
25
31
 
26
- return [new HttpRequest({
32
+ return new HttpRequest({
27
33
  url: reqUrl,
28
34
  method: httpMethodFrom(reqMethod) || HttpMethod.POST,
29
35
  headers: reqHeaders,
30
36
  body: reqBody
31
- }), new HttpResponse({
32
- code: resCode,
33
- message: resMessage,
34
- body: resBody
35
- })];
37
+ });
38
+ }
39
+
40
+ static parseRequestResponse(data: any): [HttpRequest, HttpResponse] {
41
+ const json = tryCast<Record<string, any>>(data) || {};
42
+
43
+ const req = json["request"];
44
+ const request = this.parseRequest(req);
45
+
46
+ const res = json["response"];
47
+ const response = this.parseResponse(res);
48
+
49
+ return [request, response];
36
50
  }
37
51
  }