@borisch/snitch 1.0.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.
Files changed (149) hide show
  1. package/README.md +88 -0
  2. package/dist/index.d.ts +20 -0
  3. package/dist/index.js +47 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/packages/common/anonymous-id-store.d.ts +2 -0
  6. package/dist/packages/common/anonymous-id-store.js +27 -0
  7. package/dist/packages/common/anonymous-id-store.js.map +1 -0
  8. package/dist/packages/common/create-unique-id.d.ts +1 -0
  9. package/dist/packages/common/create-unique-id.js +14 -0
  10. package/dist/packages/common/create-unique-id.js.map +1 -0
  11. package/dist/packages/common/plugin-interfaces.d.ts +22 -0
  12. package/dist/packages/common/plugin-interfaces.js +3 -0
  13. package/dist/packages/common/plugin-interfaces.js.map +1 -0
  14. package/dist/packages/common/tmr.d.ts +38 -0
  15. package/dist/packages/common/tmr.js +16 -0
  16. package/dist/packages/common/tmr.js.map +1 -0
  17. package/dist/packages/common/tracker-interfaces.d.ts +8 -0
  18. package/dist/packages/common/tracker-interfaces.js +3 -0
  19. package/dist/packages/common/tracker-interfaces.js.map +1 -0
  20. package/dist/packages/snitch/index.d.ts +2 -0
  21. package/dist/packages/snitch/index.js +8 -0
  22. package/dist/packages/snitch/index.js.map +1 -0
  23. package/dist/packages/snitch/snitch.d.ts +4 -0
  24. package/dist/packages/snitch/snitch.js +20 -0
  25. package/dist/packages/snitch/snitch.js.map +1 -0
  26. package/dist/packages/snitch/use-plugins.d.ts +11 -0
  27. package/dist/packages/snitch/use-plugins.js +40 -0
  28. package/dist/packages/snitch/use-plugins.js.map +1 -0
  29. package/dist/packages/snitch-plugin-beacon-transport/beacon-transport.d.ts +6 -0
  30. package/dist/packages/snitch-plugin-beacon-transport/beacon-transport.js +22 -0
  31. package/dist/packages/snitch-plugin-beacon-transport/beacon-transport.js.map +1 -0
  32. package/dist/packages/snitch-plugin-beacon-transport/index.d.ts +2 -0
  33. package/dist/packages/snitch-plugin-beacon-transport/index.js +8 -0
  34. package/dist/packages/snitch-plugin-beacon-transport/index.js.map +1 -0
  35. package/dist/packages/snitch-plugin-debug-logger/debug-logger.d.ts +2 -0
  36. package/dist/packages/snitch-plugin-debug-logger/debug-logger.js +22 -0
  37. package/dist/packages/snitch-plugin-debug-logger/debug-logger.js.map +1 -0
  38. package/dist/packages/snitch-plugin-debug-logger/index.d.ts +2 -0
  39. package/dist/packages/snitch-plugin-debug-logger/index.js +8 -0
  40. package/dist/packages/snitch-plugin-debug-logger/index.js.map +1 -0
  41. package/dist/packages/snitch-plugin-engagement/engagement.d.ts +4 -0
  42. package/dist/packages/snitch-plugin-engagement/engagement.js +19 -0
  43. package/dist/packages/snitch-plugin-engagement/engagement.js.map +1 -0
  44. package/dist/packages/snitch-plugin-engagement/index.d.ts +2 -0
  45. package/dist/packages/snitch-plugin-engagement/index.js +8 -0
  46. package/dist/packages/snitch-plugin-engagement/index.js.map +1 -0
  47. package/dist/packages/snitch-plugin-exceptions/exceptions.d.ts +2 -0
  48. package/dist/packages/snitch-plugin-exceptions/exceptions.js +31 -0
  49. package/dist/packages/snitch-plugin-exceptions/exceptions.js.map +1 -0
  50. package/dist/packages/snitch-plugin-exceptions/index.d.ts +2 -0
  51. package/dist/packages/snitch-plugin-exceptions/index.js +8 -0
  52. package/dist/packages/snitch-plugin-exceptions/index.js.map +1 -0
  53. package/dist/packages/snitch-plugin-flag/flag-service.d.ts +36 -0
  54. package/dist/packages/snitch-plugin-flag/flag-service.js +37 -0
  55. package/dist/packages/snitch-plugin-flag/flag-service.js.map +1 -0
  56. package/dist/packages/snitch-plugin-flag/flag.d.ts +5 -0
  57. package/dist/packages/snitch-plugin-flag/flag.js +88 -0
  58. package/dist/packages/snitch-plugin-flag/flag.js.map +1 -0
  59. package/dist/packages/snitch-plugin-flag/index.d.ts +2 -0
  60. package/dist/packages/snitch-plugin-flag/index.js +8 -0
  61. package/dist/packages/snitch-plugin-flag/index.js.map +1 -0
  62. package/dist/packages/snitch-plugin-launch/index.d.ts +2 -0
  63. package/dist/packages/snitch-plugin-launch/index.js +8 -0
  64. package/dist/packages/snitch-plugin-launch/index.js.map +1 -0
  65. package/dist/packages/snitch-plugin-launch/launch.d.ts +2 -0
  66. package/dist/packages/snitch-plugin-launch/launch.js +29 -0
  67. package/dist/packages/snitch-plugin-launch/launch.js.map +1 -0
  68. package/dist/packages/snitch-plugin-location/index.d.ts +2 -0
  69. package/dist/packages/snitch-plugin-location/index.js +8 -0
  70. package/dist/packages/snitch-plugin-location/index.js.map +1 -0
  71. package/dist/packages/snitch-plugin-location/listen-for-location-change.d.ts +1 -0
  72. package/dist/packages/snitch-plugin-location/listen-for-location-change.js +18 -0
  73. package/dist/packages/snitch-plugin-location/listen-for-location-change.js.map +1 -0
  74. package/dist/packages/snitch-plugin-location/location.d.ts +7 -0
  75. package/dist/packages/snitch-plugin-location/location.js +36 -0
  76. package/dist/packages/snitch-plugin-location/location.js.map +1 -0
  77. package/dist/packages/snitch-plugin-s2s-transport/index.d.ts +2 -0
  78. package/dist/packages/snitch-plugin-s2s-transport/index.js +8 -0
  79. package/dist/packages/snitch-plugin-s2s-transport/index.js.map +1 -0
  80. package/dist/packages/snitch-plugin-s2s-transport/s2s-transport.d.ts +8 -0
  81. package/dist/packages/snitch-plugin-s2s-transport/s2s-transport.js +27 -0
  82. package/dist/packages/snitch-plugin-s2s-transport/s2s-transport.js.map +1 -0
  83. package/dist/packages/snitch-plugin-screens/index.d.ts +2 -0
  84. package/dist/packages/snitch-plugin-screens/index.js +8 -0
  85. package/dist/packages/snitch-plugin-screens/index.js.map +1 -0
  86. package/dist/packages/snitch-plugin-screens/screens.d.ts +6 -0
  87. package/dist/packages/snitch-plugin-screens/screens.js +31 -0
  88. package/dist/packages/snitch-plugin-screens/screens.js.map +1 -0
  89. package/dist/packages/snitch-plugin-scroll/index.d.ts +2 -0
  90. package/dist/packages/snitch-plugin-scroll/index.js +8 -0
  91. package/dist/packages/snitch-plugin-scroll/index.js.map +1 -0
  92. package/dist/packages/snitch-plugin-scroll/listen-for-scroll-change.d.ts +2 -0
  93. package/dist/packages/snitch-plugin-scroll/listen-for-scroll-change.js +24 -0
  94. package/dist/packages/snitch-plugin-scroll/listen-for-scroll-change.js.map +1 -0
  95. package/dist/packages/snitch-plugin-scroll/scroll.d.ts +2 -0
  96. package/dist/packages/snitch-plugin-scroll/scroll.js +40 -0
  97. package/dist/packages/snitch-plugin-scroll/scroll.js.map +1 -0
  98. package/dist/packages/snitch-plugin-session/index.d.ts +2 -0
  99. package/dist/packages/snitch-plugin-session/index.js +8 -0
  100. package/dist/packages/snitch-plugin-session/index.js.map +1 -0
  101. package/dist/packages/snitch-plugin-session/session.d.ts +14 -0
  102. package/dist/packages/snitch-plugin-session/session.js +99 -0
  103. package/dist/packages/snitch-plugin-session/session.js.map +1 -0
  104. package/dist/packages/snitch-plugin-session/storage.d.ts +11 -0
  105. package/dist/packages/snitch-plugin-session/storage.js +61 -0
  106. package/dist/packages/snitch-plugin-session/storage.js.map +1 -0
  107. package/dist/packages/snitch-plugin-session/utm.d.ts +6 -0
  108. package/dist/packages/snitch-plugin-session/utm.js +25 -0
  109. package/dist/packages/snitch-plugin-session/utm.js.map +1 -0
  110. package/dist/packages/snitch-plugin-topmailru-transport/index.d.ts +2 -0
  111. package/dist/packages/snitch-plugin-topmailru-transport/index.js +8 -0
  112. package/dist/packages/snitch-plugin-topmailru-transport/index.js.map +1 -0
  113. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-counter-mock.d.ts +5 -0
  114. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-counter-mock.js +13 -0
  115. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-counter-mock.js.map +1 -0
  116. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-transport.d.ts +4 -0
  117. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-transport.js +59 -0
  118. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-transport.js.map +1 -0
  119. package/dist/packages/snitch-plugin-useragent/index.d.ts +2 -0
  120. package/dist/packages/snitch-plugin-useragent/index.js +8 -0
  121. package/dist/packages/snitch-plugin-useragent/index.js.map +1 -0
  122. package/dist/packages/snitch-plugin-useragent/useragent.d.ts +2 -0
  123. package/dist/packages/snitch-plugin-useragent/useragent.js +13 -0
  124. package/dist/packages/snitch-plugin-useragent/useragent.js.map +1 -0
  125. package/dist/packages/snitch-plugin-vkbridge-transport/index.d.ts +2 -0
  126. package/dist/packages/snitch-plugin-vkbridge-transport/index.js +8 -0
  127. package/dist/packages/snitch-plugin-vkbridge-transport/index.js.map +1 -0
  128. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-send.d.ts +25 -0
  129. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-send.js +63 -0
  130. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-send.js.map +1 -0
  131. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-transport.d.ts +3 -0
  132. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-transport.js +42 -0
  133. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-transport.js.map +1 -0
  134. package/dist/packages/snitch-plugin-vkma-launch/index.d.ts +2 -0
  135. package/dist/packages/snitch-plugin-vkma-launch/index.js +8 -0
  136. package/dist/packages/snitch-plugin-vkma-launch/index.js.map +1 -0
  137. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch-params.d.ts +9 -0
  138. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch-params.js +28 -0
  139. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch-params.js.map +1 -0
  140. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch.d.ts +2 -0
  141. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch.js +37 -0
  142. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch.js.map +1 -0
  143. package/dist/packages/snitch-plugin-web-vitals/index.d.ts +2 -0
  144. package/dist/packages/snitch-plugin-web-vitals/index.js +8 -0
  145. package/dist/packages/snitch-plugin-web-vitals/index.js.map +1 -0
  146. package/dist/packages/snitch-plugin-web-vitals/web-vitals.d.ts +2 -0
  147. package/dist/packages/snitch-plugin-web-vitals/web-vitals.js +25 -0
  148. package/dist/packages/snitch-plugin-web-vitals/web-vitals.js.map +1 -0
  149. package/package.json +71 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const createParamsReader = (paramsMap) => (href) => {
4
+ const url = new URL(href);
5
+ return Object.entries(paramsMap).reduce((params, [searchStringName, shortName]) => {
6
+ params[shortName] = url.searchParams.get(searchStringName) || '';
7
+ return params;
8
+ }, {});
9
+ };
10
+ const eventProviderParamsMap = {
11
+ vk_user_id: 'mauid',
12
+ vk_app_id: 'maaid',
13
+ vk_language: 'malang',
14
+ vk_client: 'mac',
15
+ vk_platform: 'map',
16
+ vk_ref: 'maref'
17
+ };
18
+ const launchEventParamsMap = {
19
+ vk_are_notifications_enabled: 'maane',
20
+ vk_is_app_user: 'maiau',
21
+ vk_is_favorite: 'maif',
22
+ vk_ts: 'mats'
23
+ };
24
+ exports.default = {
25
+ launchEventParams: createParamsReader(launchEventParamsMap),
26
+ eventProviderParams: createParamsReader(eventProviderParamsMap)
27
+ };
28
+ //# sourceMappingURL=vkma-launch-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vkma-launch-params.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-vkma-launch/vkma-launch-params.ts"],"names":[],"mappings":";;AAAA,MAAM,kBAAkB,GAAG,CAAC,SAAoC,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;IACpF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAAE;QAChF,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAA+B,CAAC,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG;IAC7B,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,OAAO;CAChB,CAAA;AAED,MAAM,oBAAoB,GAAG;IAC3B,4BAA4B,EAAE,OAAO;IACrC,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,MAAM;IACtB,KAAK,EAAE,MAAM;CACd,CAAA;AAED,kBAAe;IACb,iBAAiB,EAAE,kBAAkB,CAAC,oBAAoB,CAAC;IAC3D,mBAAmB,EAAE,kBAAkB,CAAC,sBAAsB,CAAC;CAChE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { EventPayloadParamsProvider, EventSource, InitializationHandler } from '../common/plugin-interfaces';
2
+ export default function VKMALaunchPlugin(): InitializationHandler & EventPayloadParamsProvider & EventSource;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const create_unique_id_1 = __importDefault(require("../common/create-unique-id"));
7
+ const vkma_launch_params_1 = __importDefault(require("./vkma-launch-params"));
8
+ function VKMALaunchPlugin() {
9
+ let captureEvent;
10
+ const launchId = create_unique_id_1.default();
11
+ const referrer = window.document.referrer;
12
+ const miniAppEventProviderParams = vkma_launch_params_1.default.eventProviderParams(location.href);
13
+ return {
14
+ setEventHandler(eventHandler) {
15
+ captureEvent = eventHandler;
16
+ },
17
+ getEventPayloadParams() {
18
+ return {
19
+ lid: launchId,
20
+ ref: referrer,
21
+ ...miniAppEventProviderParams
22
+ };
23
+ },
24
+ onInit() {
25
+ const miniAppLaunchEventParams = vkma_launch_params_1.default.launchEventParams(location.href);
26
+ setTimeout(() => {
27
+ captureEvent('launch', {
28
+ ifr: (window.self !== window.top).toString(),
29
+ ...miniAppLaunchEventParams
30
+ });
31
+ captureEvent('mt_internal_launch');
32
+ }, 0);
33
+ }
34
+ };
35
+ }
36
+ exports.default = VKMALaunchPlugin;
37
+ //# sourceMappingURL=vkma-launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vkma-launch.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-vkma-launch/vkma-launch.ts"],"names":[],"mappings":";;;;;AAAA,kFAAuD;AAOvD,8EAAmD;AAEnD,SAAwB,gBAAgB;IAGtC,IAAI,YAA0B,CAAA;IAC9B,MAAM,QAAQ,GAAG,0BAAc,EAAE,CAAA;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACzC,MAAM,0BAA0B,GAAG,4BAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEtF,OAAO;QACL,eAAe,CAAC,YAA0B;YACxC,YAAY,GAAG,YAAY,CAAA;QAC7B,CAAC;QACD,qBAAqB;YACnB,OAAO;gBACL,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,QAAQ;gBACb,GAAG,0BAA0B;aAC9B,CAAA;QACH,CAAC;QACD,MAAM;YACJ,MAAM,wBAAwB,GAAG,4BAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAElF,UAAU,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,QAAQ,EAAE;oBACrB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;oBAC5C,GAAG,wBAAwB;iBAC5B,CAAC,CAAA;gBACF,YAAY,CAAC,oBAAoB,CAAC,CAAA;YACpC,CAAC,EAAE,CAAC,CAAC,CAAA;QACP,CAAC;KACF,CAAA;AACH,CAAC;AA/BD,mCA+BC"}
@@ -0,0 +1,2 @@
1
+ import webVitalsPlugin from './web-vitals';
2
+ export default webVitalsPlugin;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const web_vitals_1 = __importDefault(require("./web-vitals"));
7
+ exports.default = web_vitals_1.default;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-web-vitals/index.ts"],"names":[],"mappings":";;;;;AAAA,8DAA0C;AAC1C,kBAAe,oBAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { EventSource, InitializationHandler } from '../common/plugin-interfaces';
2
+ export default function exceptionsPlugin(): InitializationHandler & EventSource;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const web_vitals_1 = require("web-vitals");
4
+ function exceptionsPlugin() {
5
+ let captureEvent;
6
+ function reportWebVitalMetric(metric) {
7
+ captureEvent('webVital', {
8
+ name: metric.name,
9
+ value: metric.value,
10
+ delta: metric.delta,
11
+ metricId: metric.id
12
+ });
13
+ }
14
+ const trackedMetricsGetters = [web_vitals_1.getCLS, web_vitals_1.getFID, web_vitals_1.getLCP, web_vitals_1.getTTFB, web_vitals_1.getFCP];
15
+ return {
16
+ setEventHandler(eventHandler) {
17
+ captureEvent = eventHandler;
18
+ },
19
+ onInit() {
20
+ trackedMetricsGetters.forEach(getMetric => getMetric(reportWebVitalMetric));
21
+ }
22
+ };
23
+ }
24
+ exports.default = exceptionsPlugin;
25
+ //# sourceMappingURL=web-vitals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-vitals.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-web-vitals/web-vitals.ts"],"names":[],"mappings":";;AAAA,2CAA4E;AAI5E,SAAwB,gBAAgB;IACtC,IAAI,YAA0B,CAAA;IAE9B,SAAS,oBAAoB,CAAC,MAAc;QAC1C,YAAY,CAAC,UAAU,EAAE;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,qBAAqB,GAAG,CAAC,mBAAM,EAAE,mBAAM,EAAE,mBAAM,EAAE,oBAAO,EAAE,mBAAM,CAAC,CAAA;IAEvE,OAAO;QACL,eAAe,CAAC,YAA0B;YACxC,YAAY,GAAG,YAAY,CAAA;QAC7B,CAAC;QAED,MAAM;YACJ,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC7E,CAAC;KACF,CAAA;AACH,CAAC;AAvBD,mCAuBC"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@borisch/snitch",
3
+ "version": "1.0.0",
4
+ "description": "Modular analytics tracking library with pluggable transports",
5
+ "keywords": [
6
+ "analytics",
7
+ "tracking",
8
+ "plugins",
9
+ "beacon",
10
+ "web-vitals"
11
+ ],
12
+ "main": "dist/index.js",
13
+ "typings": "dist/index.d.ts",
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "author": "Boris Chumichev <borisboha@gmail.com>",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/BorisChumichev/snitch.git"
21
+ },
22
+ "license": "MIT",
23
+ "engines": {
24
+ "node": ">=18.0.0"
25
+ },
26
+ "scripts": {
27
+ "prebuild": "rimraf dist",
28
+ "build": "tsc",
29
+ "test": "jest",
30
+ "test:watch": "jest --coverage --watch"
31
+ },
32
+ "jest": {
33
+ "transform": {
34
+ "^.+\\.[tj]s$": "ts-jest"
35
+ },
36
+ "testEnvironment": "jsdom",
37
+ "testMatch": [
38
+ "**/*.test.ts"
39
+ ],
40
+ "moduleFileExtensions": [
41
+ "ts",
42
+ "js"
43
+ ],
44
+ "coveragePathIgnorePatterns": [
45
+ "/node_modules/"
46
+ ],
47
+ "collectCoverageFrom": [
48
+ "packages/**/*.ts"
49
+ ]
50
+ },
51
+ "prettier": {
52
+ "semi": false,
53
+ "singleQuote": true
54
+ },
55
+ "devDependencies": {
56
+ "@types/jest": "^23.3.2",
57
+ "@types/node": "^10.17.60",
58
+ "delay": "^5.0.0",
59
+ "jest": "^27.0.6",
60
+ "jsdom": "^16.6.0",
61
+ "prettier": "^1.14.3",
62
+ "rimraf": "^2.6.2",
63
+ "ts-jest": "^27.0.3",
64
+ "ts-node": "^7.0.1",
65
+ "tslib": "^2.3.0",
66
+ "typescript": "^4.3.5"
67
+ },
68
+ "dependencies": {
69
+ "web-vitals": "^3.0.4"
70
+ }
71
+ }