@zoho_apptics/apptics-js-sdk 2.0.0-beta → 2.0.0-beta.1

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 (220) hide show
  1. package/CHANGELOG.md +111 -5
  2. package/README.md +399 -300
  3. package/dist/apptics.esm.min.js +2 -2
  4. package/dist/apptics.esm.min.js.map +1 -1
  5. package/dist/apptics.min.js +2 -2
  6. package/dist/apptics.min.js.map +1 -1
  7. package/dist/chunks/lifecycle-VYr43KcB.min.js +3 -0
  8. package/dist/chunks/lifecycle-VYr43KcB.min.js.map +1 -0
  9. package/dist/cjs/auto-init.d.ts +3 -3
  10. package/dist/cjs/auto-init.js +1 -1
  11. package/dist/cjs/core/attempts.js +1 -1
  12. package/dist/cjs/core/batch.js +2 -1
  13. package/dist/cjs/core/callsite.d.ts +6 -0
  14. package/dist/cjs/core/callsite.js +25 -3
  15. package/dist/cjs/core/consent.d.ts +5 -1
  16. package/dist/cjs/core/consent.js +8 -6
  17. package/dist/cjs/core/constants.d.ts +35 -10
  18. package/dist/cjs/core/constants.js +31 -15
  19. package/dist/cjs/core/db.d.ts +12 -4
  20. package/dist/cjs/core/db.js +167 -34
  21. package/dist/cjs/core/debug.js +1 -1
  22. package/dist/cjs/core/env.js +1 -1
  23. package/dist/cjs/core/framework-id.d.ts +1 -1
  24. package/dist/cjs/core/framework-id.js +3 -3
  25. package/dist/cjs/core/guard.d.ts +9 -0
  26. package/dist/cjs/core/guard.js +27 -13
  27. package/dist/cjs/core/hooks.d.ts +2 -4
  28. package/dist/cjs/core/hooks.js +2 -3
  29. package/dist/cjs/core/locks.d.ts +9 -0
  30. package/dist/cjs/core/locks.js +22 -0
  31. package/dist/cjs/core/logger.d.ts +3 -4
  32. package/dist/cjs/core/logger.js +4 -40
  33. package/dist/cjs/core/state.d.ts +3 -2
  34. package/dist/cjs/core/state.js +2 -2
  35. package/dist/cjs/core/storage.d.ts +20 -5
  36. package/dist/cjs/core/storage.js +115 -17
  37. package/dist/cjs/core/stylesheet.d.ts +8 -0
  38. package/dist/cjs/core/stylesheet.js +29 -0
  39. package/dist/cjs/core/transport.d.ts +2 -0
  40. package/dist/cjs/core/transport.js +19 -4
  41. package/dist/cjs/core/utils.js +1 -1
  42. package/dist/cjs/core/validate.js +2 -2
  43. package/dist/cjs/device/appversion.d.ts +1 -6
  44. package/dist/cjs/device/appversion.js +13 -1
  45. package/dist/cjs/device/index.d.ts +11 -0
  46. package/dist/cjs/device/index.js +120 -20
  47. package/dist/cjs/engagement/api-rules.d.ts +32 -67
  48. package/dist/cjs/engagement/api-rules.js +144 -157
  49. package/dist/cjs/engagement/auto-api.js +2 -2
  50. package/dist/cjs/engagement/auto-screen.d.ts +2 -0
  51. package/dist/cjs/engagement/auto-screen.js +67 -3
  52. package/dist/cjs/engagement/defined-events.js +1 -1
  53. package/dist/cjs/engagement/send.js +6 -1
  54. package/dist/cjs/engagement/session.d.ts +12 -3
  55. package/dist/cjs/engagement/session.js +161 -25
  56. package/dist/cjs/engagement/track.js +45 -20
  57. package/dist/cjs/errors/send.js +1 -1
  58. package/dist/cjs/errors/track.d.ts +1 -1
  59. package/dist/cjs/errors/track.js +46 -6
  60. package/dist/cjs/feedback/controls.d.ts +6 -0
  61. package/dist/cjs/feedback/controls.js +31 -1
  62. package/dist/cjs/feedback/index.d.ts +8 -7
  63. package/dist/cjs/feedback/index.js +32 -13
  64. package/dist/cjs/feedback/logs.d.ts +10 -5
  65. package/dist/cjs/feedback/logs.js +52 -13
  66. package/dist/cjs/feedback/quartz.d.ts +18 -0
  67. package/dist/cjs/feedback/quartz.js +105 -0
  68. package/dist/cjs/feedback/send.d.ts +3 -0
  69. package/dist/cjs/feedback/send.js +28 -3
  70. package/dist/cjs/feedback/styles.d.ts +10 -0
  71. package/dist/cjs/feedback/styles.js +8 -0
  72. package/dist/cjs/feedback/template.d.ts +1 -1
  73. package/dist/cjs/feedback/template.js +12 -12
  74. package/dist/cjs/feedback/ui.d.ts +14 -6
  75. package/dist/cjs/feedback/ui.js +126 -48
  76. package/dist/cjs/heatmap/send.js +1 -1
  77. package/dist/cjs/heatmap/track.d.ts +1 -1
  78. package/dist/cjs/heatmap/track.js +87 -16
  79. package/dist/cjs/index.d.ts +17 -63
  80. package/dist/cjs/index.js +104 -92
  81. package/dist/cjs/lifecycle.d.ts +8 -1
  82. package/dist/cjs/lifecycle.js +258 -62
  83. package/dist/cjs/remoteconfig/country.d.ts +4 -0
  84. package/dist/cjs/remoteconfig/country.js +73 -0
  85. package/dist/cjs/remoteconfig/custom.d.ts +7 -7
  86. package/dist/cjs/remoteconfig/custom.js +31 -51
  87. package/dist/cjs/remoteconfig/evaluate.d.ts +3 -3
  88. package/dist/cjs/remoteconfig/evaluate.js +56 -43
  89. package/dist/cjs/remoteconfig/fetch.d.ts +3 -3
  90. package/dist/cjs/remoteconfig/fetch.js +9 -23
  91. package/dist/cjs/remoteconfig/index.d.ts +10 -8
  92. package/dist/cjs/remoteconfig/index.js +65 -39
  93. package/dist/cjs/remoteconfig/store.js +1 -1
  94. package/dist/cjs/remoteconfig/tz-countries.d.ts +8 -0
  95. package/dist/cjs/remoteconfig/tz-countries.js +13 -0
  96. package/dist/cjs/remotelog/gate.d.ts +2 -11
  97. package/dist/cjs/remotelog/gate.js +9 -35
  98. package/dist/cjs/remotelog/index.d.ts +4 -21
  99. package/dist/cjs/remotelog/logger.d.ts +11 -17
  100. package/dist/cjs/remotelog/logger.js +30 -58
  101. package/dist/cjs/remotelog/send.js +10 -10
  102. package/dist/cjs/remotelogger/index.d.ts +12 -0
  103. package/dist/cjs/remotelogger/index.js +18 -0
  104. package/dist/cjs/scheduler.js +2 -2
  105. package/dist/cjs/types.d.ts +155 -82
  106. package/dist/cjs/user/index.js +11 -6
  107. package/dist/esm/auto-init.d.ts +3 -3
  108. package/dist/esm/auto-init.js +1 -1
  109. package/dist/esm/core/attempts.js +1 -1
  110. package/dist/esm/core/batch.js +2 -1
  111. package/dist/esm/core/callsite.d.ts +6 -0
  112. package/dist/esm/core/callsite.js +25 -4
  113. package/dist/esm/core/consent.d.ts +5 -1
  114. package/dist/esm/core/consent.js +9 -7
  115. package/dist/esm/core/constants.d.ts +35 -10
  116. package/dist/esm/core/constants.js +30 -15
  117. package/dist/esm/core/db.d.ts +12 -4
  118. package/dist/esm/core/db.js +164 -35
  119. package/dist/esm/core/debug.js +1 -1
  120. package/dist/esm/core/env.js +1 -1
  121. package/dist/esm/core/framework-id.d.ts +1 -1
  122. package/dist/esm/core/framework-id.js +3 -3
  123. package/dist/esm/core/guard.d.ts +9 -0
  124. package/dist/esm/core/guard.js +27 -14
  125. package/dist/esm/core/hooks.d.ts +2 -4
  126. package/dist/esm/core/hooks.js +2 -3
  127. package/dist/esm/core/locks.d.ts +9 -0
  128. package/dist/esm/core/locks.js +20 -0
  129. package/dist/esm/core/logger.d.ts +3 -4
  130. package/dist/esm/core/logger.js +4 -40
  131. package/dist/esm/core/state.d.ts +3 -2
  132. package/dist/esm/core/state.js +2 -2
  133. package/dist/esm/core/storage.d.ts +20 -5
  134. package/dist/esm/core/storage.js +113 -18
  135. package/dist/esm/core/stylesheet.d.ts +8 -0
  136. package/dist/esm/core/stylesheet.js +27 -0
  137. package/dist/esm/core/transport.d.ts +2 -0
  138. package/dist/esm/core/transport.js +19 -5
  139. package/dist/esm/core/utils.js +1 -1
  140. package/dist/esm/core/validate.js +2 -2
  141. package/dist/esm/device/appversion.d.ts +1 -6
  142. package/dist/esm/device/appversion.js +13 -2
  143. package/dist/esm/device/index.d.ts +11 -0
  144. package/dist/esm/device/index.js +123 -24
  145. package/dist/esm/engagement/api-rules.d.ts +32 -67
  146. package/dist/esm/engagement/api-rules.js +143 -155
  147. package/dist/esm/engagement/auto-api.js +3 -3
  148. package/dist/esm/engagement/auto-screen.d.ts +2 -0
  149. package/dist/esm/engagement/auto-screen.js +67 -4
  150. package/dist/esm/engagement/defined-events.js +1 -1
  151. package/dist/esm/engagement/send.js +6 -1
  152. package/dist/esm/engagement/session.d.ts +12 -3
  153. package/dist/esm/engagement/session.js +162 -29
  154. package/dist/esm/engagement/track.js +52 -27
  155. package/dist/esm/errors/send.js +1 -1
  156. package/dist/esm/errors/track.d.ts +1 -1
  157. package/dist/esm/errors/track.js +46 -6
  158. package/dist/esm/feedback/controls.d.ts +6 -0
  159. package/dist/esm/feedback/controls.js +31 -2
  160. package/dist/esm/feedback/index.d.ts +8 -7
  161. package/dist/esm/feedback/index.js +34 -13
  162. package/dist/esm/feedback/logs.d.ts +10 -5
  163. package/dist/esm/feedback/logs.js +54 -15
  164. package/dist/esm/feedback/quartz.d.ts +18 -0
  165. package/dist/esm/feedback/quartz.js +99 -0
  166. package/dist/esm/feedback/send.d.ts +3 -0
  167. package/dist/esm/feedback/send.js +28 -5
  168. package/dist/esm/feedback/styles.d.ts +10 -0
  169. package/dist/esm/feedback/styles.js +4 -0
  170. package/dist/esm/feedback/template.d.ts +1 -1
  171. package/dist/esm/feedback/template.js +12 -12
  172. package/dist/esm/feedback/ui.d.ts +14 -6
  173. package/dist/esm/feedback/ui.js +126 -49
  174. package/dist/esm/heatmap/send.js +1 -1
  175. package/dist/esm/heatmap/track.d.ts +1 -1
  176. package/dist/esm/heatmap/track.js +87 -16
  177. package/dist/esm/index.d.ts +17 -63
  178. package/dist/esm/index.js +108 -80
  179. package/dist/esm/lifecycle.d.ts +8 -1
  180. package/dist/esm/lifecycle.js +266 -71
  181. package/dist/esm/remoteconfig/country.d.ts +4 -0
  182. package/dist/esm/remoteconfig/country.js +70 -0
  183. package/dist/esm/remoteconfig/custom.d.ts +7 -7
  184. package/dist/esm/remoteconfig/custom.js +32 -52
  185. package/dist/esm/remoteconfig/evaluate.d.ts +3 -3
  186. package/dist/esm/remoteconfig/evaluate.js +57 -44
  187. package/dist/esm/remoteconfig/fetch.d.ts +3 -3
  188. package/dist/esm/remoteconfig/fetch.js +9 -23
  189. package/dist/esm/remoteconfig/index.d.ts +10 -8
  190. package/dist/esm/remoteconfig/index.js +66 -40
  191. package/dist/esm/remoteconfig/store.js +1 -1
  192. package/dist/esm/remoteconfig/tz-countries.d.ts +8 -0
  193. package/dist/esm/remoteconfig/tz-countries.js +11 -0
  194. package/dist/esm/remotelog/gate.d.ts +2 -11
  195. package/dist/esm/remotelog/gate.js +10 -32
  196. package/dist/esm/remotelog/index.d.ts +4 -21
  197. package/dist/esm/remotelog/logger.d.ts +11 -17
  198. package/dist/esm/remotelog/logger.js +32 -60
  199. package/dist/esm/remotelog/send.js +12 -12
  200. package/dist/esm/remotelogger/index.d.ts +12 -0
  201. package/dist/esm/remotelogger/index.js +13 -0
  202. package/dist/esm/scheduler.js +2 -2
  203. package/dist/esm/types.d.ts +155 -82
  204. package/dist/esm/user/index.js +12 -6
  205. package/dist/feedback.esm.min.js +2 -2
  206. package/dist/feedback.esm.min.js.map +1 -1
  207. package/package.json +14 -16
  208. package/dist/chunks/batch-BU_mTpm1.min.js +0 -3
  209. package/dist/chunks/batch-BU_mTpm1.min.js.map +0 -1
  210. package/dist/chunks/logs-Bea5zUW_.min.js +0 -3
  211. package/dist/chunks/logs-Bea5zUW_.min.js.map +0 -1
  212. package/dist/cjs/heatmap/index.d.ts +0 -16
  213. package/dist/cjs/heatmap/index.js +0 -22
  214. package/dist/cjs/remotelog/index.js +0 -55
  215. package/dist/esm/heatmap/index.d.ts +0 -16
  216. package/dist/esm/heatmap/index.js +0 -17
  217. package/dist/esm/remotelog/index.js +0 -51
  218. package/dist/heatmap.esm.min.js +0 -3
  219. package/dist/heatmap.esm.min.js.map +0 -1
  220. package/dist/style.css +0 -1
@@ -1,68 +1,22 @@
1
- import { AP_FEEDBACK_TYPE, AP_TRACKING_STATUS } from './core/constants.js';
2
- import { init as initImpl, ready as readyImpl, reset as resetImpl } from './lifecycle.js';
3
- import { enableApiTracking as enableApiTrackingImpl } from './engagement/auto-api.js';
4
- import { DefinedEvents } from './engagement/defined-events.js';
5
- import { ApiTrackingBuilder } from './engagement/api-rules.js';
6
- import { enableGlobalErrorHandler as enableGlobalErrorHandlerImpl } from './errors/track.js';
7
- import { getUser as getUserImpl, UserBuilder, users } from './user/index.js';
8
- import { getTrackingStatus as getTrackingStatusImpl, setTrackingStatus as setTrackingStatusImpl } from './core/consent.js';
9
- import { flush as flushImpl } from './scheduler.js';
10
- import { addDiagnosticsInfo as addDiagnosticsInfoImpl, addFeedbackLog as addFeedbackLogImpl } from './feedback/logs.js';
11
- import type { AppticsApi } from './types.js';
12
- import { disableDebug as disableDebugImpl, enableDebug as enableDebugImpl } from './core/debug.js';
13
- import { AppticsLogger } from './remotelog/logger.js';
14
- export type { AppticsLogger as AppticsLoggerApi } from './remotelog/logger.js';
15
- export type { AppticsApi, AppticsConfig, ErrorLike, FeedbackType, Properties, TrackingStatus, UserInfo, UserValidationResult, } from './types.js';
16
- /** Android's Apptics: `Apptics.init(config)` starts the SDK. */
17
- export declare const Apptics: {
18
- /** Starts the SDK. The config object is required; the console snippet supplies it via auto-init. */
19
- init: typeof initImpl;
20
- };
21
- export declare const ready: typeof readyImpl;
22
- /** Android's AppticsEvents: `addEvent(name, group?, properties?)`, or `addEvent(DefinedEvents.X, properties?)`. */
23
- export declare const AppticsEvents: {
24
- addEvent: AppticsApi["AppticsEvents"]["addEvent"];
25
- };
26
- /** Apptics' defined events, as Android's DefinedEvents, to log with AppticsEvents.addEvent. */
27
- export { DefinedEvents };
1
+ import './heatmap/send.js';
2
+ import type { AppticsSdk } from './types.js';
3
+ export type { AppticsSdk, AppticsConfig, ErrorLike, FeedbackType, Properties, TrackingStatus, UserInfo, UserValidationResult, } from './types.js';
4
+ /** Android's Apptics: starting the SDK, and what applies to all of it. */
5
+ export declare const Apptics: AppticsSdk['Apptics'];
6
+ export declare const AppticsEvent: AppticsSdk['AppticsEvent'];
28
7
  export type { DefinedEvent } from './engagement/defined-events.js';
29
8
  /** Android's AppticsScreenTracker: inScreen(name) returns the view's id, outScreen(id) ends it. */
30
- export declare const AppticsScreenTracker: AppticsApi['AppticsScreenTracker'];
9
+ export declare const AppticsScreen: AppticsSdk['AppticsScreen'];
31
10
  /** Android's AppticsApiTracker: startTrackApi / endTrackApi, and configure for the rules. */
32
- export declare const AppticsApiTracker: AppticsApi['AppticsApiTracker'];
33
- export { ApiTrackingBuilder };
11
+ export declare const AppticsApi: AppticsSdk['AppticsApi'];
34
12
  export type { ApiTrackingConfig } from './engagement/api-rules.js';
35
- /** Turns automatic API tracking on or off; the `track_api` config flag is the usual way to set it. */
36
- export declare const enableApiTracking: typeof enableApiTrackingImpl;
37
- /** Reports an error the app caught, or an `error` / `unhandledrejection` event. */
38
- export declare const AppticsTrackError: AppticsApi["AppticsTrackError"];
39
- export declare const enableGlobalErrorHandler: typeof enableGlobalErrorHandlerImpl;
40
- /** Registers the signed-in user; properties may be a plain object or UserBuilder.build(). */
41
- export declare const AppticsSetUser: AppticsApi["AppticsSetUser"];
42
- export declare const getUser: typeof getUserImpl;
43
- export declare const setTrackingStatus: typeof setTrackingStatusImpl;
44
- export declare const getTrackingStatus: typeof getTrackingStatusImpl;
45
- export declare const flush: typeof flushImpl;
46
- /** Records a line for the next feedback submission. Costs nothing until feedback is sent. */
47
- export declare const addFeedbackLog: typeof addFeedbackLogImpl;
48
- /** Records a diagnostics key/value, grouped under `heading`, for the next feedback submission. */
49
- export declare const addDiagnosticsInfo: typeof addDiagnosticsInfoImpl;
50
- /**
51
- * Turns debug mode on; works before init(), and wins over `debug` in init().
52
- *
53
- * On, engagement, exception and log go to their `debug/` twins and the answers carry a request id
54
- * and a link into the server's own logs. It switches itself off after an hour with nothing
55
- * tracked, so a forgotten tab stops tracing on its own.
56
- */
57
- export declare const enableDebug: typeof enableDebugImpl;
58
- /** Turns debug mode off; works before init(), and wins over `debug` in init(). */
59
- export declare const disableDebug: typeof disableDebugImpl;
60
- export declare const reset: typeof resetImpl;
61
- /**
62
- * Android's AppticsLogger, shown on the console's Remote Logger page. Off until
63
- * `AppticsLogger.enable()`; then `AppticsLogger.v / d / i / w / e(tag, message, ...details)`.
64
- */
65
- export { AppticsLogger };
66
- export { AP_FEEDBACK_TYPE, AP_TRACKING_STATUS, UserBuilder, users };
67
- declare const apptics: AppticsApi;
13
+ /** Errors: the ones the app caught, and the switch for the uncaught ones tracked on their own. */
14
+ export declare const AppticsError: AppticsSdk['AppticsError'];
15
+ /** Android's AppticsUser: the signed-in user, and the builder for their properties. */
16
+ export declare const AppticsUser: AppticsSdk['AppticsUser'];
17
+ /** Heatmap capture: AppticsHeatmap.trackHeatmap() starts or stops recording clicks and scrolls. */
18
+ export declare const AppticsHeatmap: AppticsSdk['AppticsHeatmap'];
19
+ /** Android's AppticsSettings: what the SDK may track for this visitor. */
20
+ export declare const AppticsSettings: AppticsSdk['AppticsSettings'];
21
+ declare const apptics: AppticsSdk;
68
22
  export default apptics;
package/dist/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @zoho_apptics/apptics-js-sdk v2.0.0-beta | (c) Zoho Corporation Private Limited | see LICENSE */
1
+ /*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.1 | (c) Zoho Corporation Private Limited | see LICENSE */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -16,30 +16,61 @@ var track$1 = require('./errors/track.js');
16
16
  var index = require('./user/index.js');
17
17
  var consent = require('./core/consent.js');
18
18
  var scheduler = require('./scheduler.js');
19
- var logs = require('./feedback/logs.js');
19
+ var track$2 = require('./heatmap/track.js');
20
+ require('./heatmap/send.js');
20
21
  var autoInit = require('./auto-init.js');
21
22
  var debug = require('./core/debug.js');
22
- var logger = require('./remotelog/logger.js');
23
23
 
24
- /** Android's Apptics: `Apptics.init(config)` starts the SDK. */
24
+ /*
25
+ * Every public call below is a function of its own, with the parameter names the console shows
26
+ * on hover, forwarding to its guard()ed implementation (see forward).
27
+ */
28
+ const initGuarded = guard.guard('Apptics.init', lifecycle.init); // no i18n
29
+ const readyGuarded = guard.guard('Apptics.ready', lifecycle.ready); // no i18n
30
+ const flushGuarded = guard.guard('Apptics.flush', scheduler.flush); // no i18n
31
+ const resetGuarded = guard.guard('Apptics.reset', lifecycle.reset); // no i18n
32
+ /**
33
+ * Debug mode, on or off; works before init(), and wins over `debug` in init(). On, engagement,
34
+ * exception and log go to their `debug/` twins and the answers carry a request id and a link into
35
+ * the server's own logs. It switches itself off after an hour with nothing tracked, so a forgotten
36
+ * tab stops tracing on its own.
37
+ */
38
+ const enableDebugGuarded = guard.guard('Apptics.enableDebug', debug.enableDebug); // no i18n
39
+ const disableDebugGuarded = guard.guard('Apptics.disableDebug', debug.disableDebug); // no i18n
40
+ /** Android's Apptics: starting the SDK, and what applies to all of it. */
25
41
  const Apptics = {
26
42
  /** Starts the SDK. The config object is required; the console snippet supplies it via auto-init. */
27
- init: guard.guard('Apptics.init', lifecycle.init), // no i18n
43
+ init: function init(config) { return guard.forward(initGuarded, arguments); },
44
+ /** Resolves true once the SDK is running, false if it can't start. */
45
+ ready: function ready() { return guard.forward(readyGuarded, arguments); },
46
+ /** Sends stored engagements, errors and heatmap records now. */
47
+ flush: function flush() { return guard.forward(flushGuarded, arguments); },
48
+ /** Clears stored identity, queued data and remote config values, then starts again. */
49
+ reset: function reset() { return guard.forward(resetGuarded, arguments); },
50
+ enableDebug: function enableDebug() { return guard.forward(enableDebugGuarded, arguments); },
51
+ disableDebug: function disableDebug() { return guard.forward(disableDebugGuarded, arguments); },
28
52
  };
29
- const ready = guard.guard('ready', lifecycle.ready); // no i18n
30
- /** Android's AppticsEvents: `addEvent(name, group?, properties?)`, or `addEvent(DefinedEvents.X, properties?)`. */
31
- const AppticsEvents = {
32
- addEvent: guard.guard('AppticsEvents.addEvent', track.trackEvent), // no i18n
53
+ /**
54
+ * Android's AppticsEvents: `addEvent(name, group?, properties?)`, or
55
+ * `addEvent(AppticsEvent.DefinedEvents.X, properties?)`.
56
+ */
57
+ const addEventGuarded = guard.guard('AppticsEvent.addEvent', track.trackEvent); // no i18n
58
+ const AppticsEvent = {
59
+ /** Apptics' defined events, as Android's DefinedEvents, to log with addEvent. */
60
+ DefinedEvents: definedEvents.DefinedEvents,
61
+ addEvent: function addEvent(eventName, groupName, properties) {
62
+ return guard.forward(addEventGuarded, arguments);
63
+ },
33
64
  };
34
- const inScreenGuarded = guard.guard('AppticsScreenTracker.inScreen', track.inScreenAt); // no i18n
35
- const outScreenGuarded = guard.guard('AppticsScreenTracker.outScreen', track.outScreenAt); // no i18n
65
+ const inScreenGuarded = guard.guard('AppticsScreen.inScreen', track.inScreenAt); // no i18n
66
+ const outScreenGuarded = guard.guard('AppticsScreen.outScreen', track.outScreenAt); // no i18n
36
67
  /** Android's AppticsScreenTracker: inScreen(name) returns the view's id, outScreen(id) ends it. */
37
- const AppticsScreenTracker = {
68
+ const AppticsScreen = {
38
69
  /**
39
70
  * Records a screen view and returns its id. The view ends at the next screen, when the page is
40
71
  * hidden or its session ends, or when the id is handed to outScreen. '' for an invalid name.
41
72
  */
42
- inScreen: function (screenName, properties) {
73
+ inScreen: function inScreen(screenName, properties) {
43
74
  if (!validate.validateScreenName(screenName)) {
44
75
  // inScreenAt reports it; the caller still needs an answer now
45
76
  inScreenGuarded(screenName, properties, '', utils.nowMs()); // no i18n
@@ -51,100 +82,81 @@ const AppticsScreenTracker = {
51
82
  return id;
52
83
  },
53
84
  /** Ends the screen view inScreen began, before the next screen would. */
54
- outScreen: function (id) {
85
+ outScreen: function outScreen(id) {
55
86
  outScreenGuarded(id, utils.nowMs());
56
87
  },
57
88
  };
58
- const endTrackApiGuarded = guard.guard('AppticsApiTracker.endTrackApi', track.endTrackApiAt); // no i18n
89
+ const endTrackApiGuarded = guard.guard('AppticsApi.endTrackApi', track.endTrackApiAt); // no i18n
90
+ const startTrackApiGuarded = guard.guard('AppticsApi.startTrackApi', track.startTrackApi); // no i18n
91
+ const configureGuarded = guard.guard('AppticsApi.configure', apiRules.configureApiTracking); // no i18n
92
+ const enableApiTrackingGuarded = guard.guard('AppticsApi.enableApiTracking', autoApi.enableApiTracking); // no i18n
59
93
  /** Android's AppticsApiTracker: startTrackApi / endTrackApi, and configure for the rules. */
60
- const AppticsApiTracker = {
94
+ const AppticsApi = {
61
95
  /** Begins timing one call: returns the id endTrackApi takes. */
62
- startTrackApi: guard.guard('AppticsApiTracker.startTrackApi', track.startTrackApi), // no i18n
96
+ startTrackApi: function startTrackApi(url, method) { return guard.forward(startTrackApiGuarded, arguments); },
63
97
  /** Finishes a call startTrackApi began and records it. */
64
- endTrackApi: function (id, responseCode, responseMessage) {
98
+ endTrackApi: function endTrackApi(id, responseCode, responseMessage) {
65
99
  // the end time now, not when a call made during start-up is replayed
66
100
  endTrackApiGuarded(id, responseCode, responseMessage, utils.nowMs());
67
101
  },
102
+ /** Builds the rules configure takes: `new AppticsApi.ApiTrackingBuilder()…build()`. */
103
+ ApiTrackingBuilder: apiRules.ApiTrackingBuilder,
68
104
  /** The rules API tracking records by, from ApiTrackingBuilder. Works before Apptics.init(). */
69
- configure: guard.guard('AppticsApiTracker.configure', apiRules.configureApiTracking), // no i18n
105
+ configure: function configure(config) { return guard.forward(configureGuarded, arguments); },
106
+ /** Turns automatic API tracking on or off; the `track_api` config flag is the usual way to set it. */
107
+ enableApiTracking: function enableApiTracking(enabled) { return guard.forward(enableApiTrackingGuarded, arguments); },
108
+ };
109
+ const trackErrorGuarded = guard.guard('AppticsError.trackError', track$1.trackError); // no i18n
110
+ const trackGlobalErrorHandlerGuarded = guard.guard('AppticsError.trackGlobalErrorHandler', track$1.trackGlobalErrorHandler); // no i18n
111
+ /** Errors: the ones the app caught, and the switch for the uncaught ones tracked on their own. */
112
+ const AppticsError = {
113
+ /** Reports an error the app caught, or an `error` / `unhandledrejection` event. */
114
+ trackError: function trackError(error, properties) { return guard.forward(trackErrorGuarded, arguments); },
115
+ /** Turns the automatic tracking of uncaught errors and unhandled rejections on or off. */
116
+ trackGlobalErrorHandler: function trackGlobalErrorHandler(enabled) { return guard.forward(trackGlobalErrorHandlerGuarded, arguments); },
117
+ };
118
+ const setUserGuarded = guard.guard('AppticsUser.setUser', index.setUser); // no i18n
119
+ const getUserGuarded = guard.guard('AppticsUser.getUser', index.getUser); // no i18n
120
+ /** Android's AppticsUser: the signed-in user, and the builder for their properties. */
121
+ const AppticsUser = {
122
+ /** Registers the signed-in user; properties may be a plain object or UserBuilder.build(). */
123
+ setUser: function setUser(userid, groupid, properties) { return guard.forward(setUserGuarded, arguments); },
124
+ /** The registered user, or {} when there is none. */
125
+ getUser: function getUser() { return guard.forward(getUserGuarded, arguments); },
126
+ UserBuilder: index.UserBuilder,
127
+ };
128
+ const trackHeatmapGuarded = guard.guard('AppticsHeatmap.trackHeatmap', track$2.trackHeatmap); // no i18n
129
+ /** Heatmap capture: AppticsHeatmap.trackHeatmap() starts or stops recording clicks and scrolls. */
130
+ const AppticsHeatmap = {
131
+ trackHeatmap: function trackHeatmap(on) { return guard.forward(trackHeatmapGuarded, arguments); },
132
+ };
133
+ const setTrackingStatusGuarded = guard.guard('AppticsSettings.setTrackingStatus', consent.setTrackingStatus); // no i18n
134
+ const getTrackingStatusGuarded = guard.guard('AppticsSettings.getTrackingStatus', consent.getTrackingStatus); // no i18n
135
+ /** Android's AppticsSettings: what the SDK may track for this visitor. */
136
+ const AppticsSettings = {
137
+ /** The states setTrackingStatus takes: USAGE_TRACKING_WITH_PII, USAGE_TRACKING_WITHOUT_PII, NO_TRACKING. */
138
+ AP_TRACKING_STATUS: constants.AP_TRACKING_STATUS,
139
+ setTrackingStatus: function setTrackingStatus(status) { return guard.forward(setTrackingStatusGuarded, arguments); },
140
+ getTrackingStatus: function getTrackingStatus() { return guard.forward(getTrackingStatusGuarded, arguments); },
70
141
  };
71
- /** Turns automatic API tracking on or off; the `track_api` config flag is the usual way to set it. */
72
- const enableApiTracking = guard.guard('enableApiTracking', autoApi.enableApiTracking); // no i18n
73
- /** Reports an error the app caught, or an `error` / `unhandledrejection` event. */
74
- const AppticsTrackError = guard.guard('AppticsTrackError', track$1.trackError); // no i18n
75
- const enableGlobalErrorHandler = guard.guard('enableGlobalErrorHandler', track$1.enableGlobalErrorHandler); // no i18n
76
- /** Registers the signed-in user; properties may be a plain object or UserBuilder.build(). */
77
- const AppticsSetUser = guard.guard('AppticsSetUser', index.setUser); // no i18n
78
- const getUser = guard.guard('getUser', index.getUser); // no i18n
79
- const setTrackingStatus = guard.guard('setTrackingStatus', consent.setTrackingStatus); // no i18n
80
- const getTrackingStatus = guard.guard('getTrackingStatus', consent.getTrackingStatus); // no i18n
81
- const flush = guard.guard('flush', scheduler.flush); // no i18n
82
- /** Records a line for the next feedback submission. Costs nothing until feedback is sent. */
83
- const addFeedbackLog = guard.guard('addFeedbackLog', logs.addFeedbackLog); // no i18n
84
- /** Records a diagnostics key/value, grouped under `heading`, for the next feedback submission. */
85
- const addDiagnosticsInfo = guard.guard('addDiagnosticsInfo', logs.addDiagnosticsInfo); // no i18n
86
- /**
87
- * Turns debug mode on; works before init(), and wins over `debug` in init().
88
- *
89
- * On, engagement, exception and log go to their `debug/` twins and the answers carry a request id
90
- * and a link into the server's own logs. It switches itself off after an hour with nothing
91
- * tracked, so a forgotten tab stops tracing on its own.
92
- */
93
- const enableDebug = guard.guard('enableDebug', debug.enableDebug); // no i18n
94
- /** Turns debug mode off; works before init(), and wins over `debug` in init(). */
95
- const disableDebug = guard.guard('disableDebug', debug.disableDebug); // no i18n
96
- const reset = guard.guard('reset', lifecycle.reset); // no i18n
97
142
  const apptics = {
98
143
  Apptics,
99
- AppticsEvents,
100
- AppticsScreenTracker,
101
- AppticsApiTracker,
102
- AppticsLogger: logger.AppticsLogger,
103
- DefinedEvents: definedEvents.DefinedEvents,
104
- ApiTrackingBuilder: apiRules.ApiTrackingBuilder,
105
- ready,
106
- enableDebug,
107
- disableDebug,
108
- enableApiTracking,
109
- AppticsTrackError,
110
- enableGlobalErrorHandler,
111
- AppticsSetUser,
112
- getUser,
113
- users: index.users,
114
- setTrackingStatus,
115
- getTrackingStatus,
116
- flush,
117
- addFeedbackLog,
118
- addDiagnosticsInfo,
119
- reset,
120
- AP_TRACKING_STATUS: constants.AP_TRACKING_STATUS,
121
- AP_FEEDBACK_TYPE: constants.AP_FEEDBACK_TYPE,
144
+ AppticsEvent,
145
+ AppticsScreen,
146
+ AppticsApi,
147
+ AppticsError,
148
+ AppticsUser,
149
+ AppticsSettings,
150
+ AppticsHeatmap,
122
151
  };
123
152
  autoInit.scheduleAutoInit(Apptics);
124
153
 
125
- exports.AP_FEEDBACK_TYPE = constants.AP_FEEDBACK_TYPE;
126
- exports.AP_TRACKING_STATUS = constants.AP_TRACKING_STATUS;
127
- exports.DefinedEvents = definedEvents.DefinedEvents;
128
- exports.ApiTrackingBuilder = apiRules.ApiTrackingBuilder;
129
- exports.UserBuilder = index.UserBuilder;
130
- exports.users = index.users;
131
- exports.AppticsLogger = logger.AppticsLogger;
132
154
  exports.Apptics = Apptics;
133
- exports.AppticsApiTracker = AppticsApiTracker;
134
- exports.AppticsEvents = AppticsEvents;
135
- exports.AppticsScreenTracker = AppticsScreenTracker;
136
- exports.AppticsSetUser = AppticsSetUser;
137
- exports.AppticsTrackError = AppticsTrackError;
138
- exports.addDiagnosticsInfo = addDiagnosticsInfo;
139
- exports.addFeedbackLog = addFeedbackLog;
155
+ exports.AppticsApi = AppticsApi;
156
+ exports.AppticsError = AppticsError;
157
+ exports.AppticsEvent = AppticsEvent;
158
+ exports.AppticsHeatmap = AppticsHeatmap;
159
+ exports.AppticsScreen = AppticsScreen;
160
+ exports.AppticsSettings = AppticsSettings;
161
+ exports.AppticsUser = AppticsUser;
140
162
  exports.default = apptics;
141
- exports.disableDebug = disableDebug;
142
- exports.enableApiTracking = enableApiTracking;
143
- exports.enableDebug = enableDebug;
144
- exports.enableGlobalErrorHandler = enableGlobalErrorHandler;
145
- exports.flush = flush;
146
- exports.getTrackingStatus = getTrackingStatus;
147
- exports.getUser = getUser;
148
- exports.ready = ready;
149
- exports.reset = reset;
150
- exports.setTrackingStatus = setTrackingStatus;
@@ -1,13 +1,20 @@
1
+ import { type ScreenRouteRule } from './core/constants.js';
1
2
  import type { AppticsConfig } from './types.js';
2
3
  /**
3
4
  * Starts the SDK. The config object is required: pass it directly, or let the console snippet
4
5
  * supply it (auto-init reads window.appticssettings._defaultoptions and calls init with it).
5
- * Returns true when the config has serviceUrl, zak, identifier and appversion and start-up has
6
+ * Returns true when the config has base_url, auth_key, app_domain and appversion and start-up has
6
7
  * begun (see ready()), false when it was already running, the config is missing or incomplete, or
7
8
  * there is no browser. Start-up calls app/addversion with those four, which answers with aaid, the
8
9
  * portal and project ids and the rest; then device/add registers the browser, as in 1.x.
9
10
  */
10
11
  export declare function init(config: AppticsConfig): boolean;
12
+ /**
13
+ * screen_routes as init() keeps it: each entry checked, an exact path cleaned up, a regex given as
14
+ * a string compiled. An entry that cannot be used is left out, and said, rather than matching
15
+ * something its author did not mean.
16
+ */
17
+ export declare function screenRouteRules(routes: unknown): ScreenRouteRule[];
11
18
  /** Resolves true once start-up has finished, false if init() refused or storage is unusable. */
12
19
  export declare function ready(): Promise<boolean>;
13
20
  /** Clears stored identity and queues, then starts again from the snippet. */