@hot-updater/plugin-insights 1.0.0-rc.20

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 (85) hide show
  1. package/LICENSE +33 -0
  2. package/README.md +24 -0
  3. package/client/package.json +7 -0
  4. package/dist/client/eventId.cjs +181 -0
  5. package/dist/client/eventId.mjs +179 -0
  6. package/dist/client/index.cjs +234 -0
  7. package/dist/client/index.d.cts +42 -0
  8. package/dist/client/index.d.mts +42 -0
  9. package/dist/client/index.mjs +233 -0
  10. package/dist/client/sender.cjs +103 -0
  11. package/dist/client/sender.mjs +103 -0
  12. package/dist/client/state.cjs +121 -0
  13. package/dist/client/state.mjs +119 -0
  14. package/dist/internal.cjs +9 -0
  15. package/dist/internal.d.cts +5 -0
  16. package/dist/internal.d.mts +5 -0
  17. package/dist/internal.mjs +5 -0
  18. package/dist/server/contract.cjs +193 -0
  19. package/dist/server/contract.mjs +189 -0
  20. package/dist/server/domain.d.cts +149 -0
  21. package/dist/server/domain.d.mts +149 -0
  22. package/dist/server/errors.cjs +15 -0
  23. package/dist/server/errors.d.cts +6 -0
  24. package/dist/server/errors.d.mts +6 -0
  25. package/dist/server/errors.mjs +14 -0
  26. package/dist/server/eventInput.cjs +284 -0
  27. package/dist/server/eventInput.d.cts +6 -0
  28. package/dist/server/eventInput.d.mts +6 -0
  29. package/dist/server/eventInput.mjs +282 -0
  30. package/dist/server/eventRow.cjs +49 -0
  31. package/dist/server/eventRow.d.cts +64 -0
  32. package/dist/server/eventRow.d.mts +64 -0
  33. package/dist/server/eventRow.mjs +47 -0
  34. package/dist/server/index.cjs +128 -0
  35. package/dist/server/index.d.cts +394 -0
  36. package/dist/server/index.d.mts +394 -0
  37. package/dist/server/index.mjs +121 -0
  38. package/dist/server/model.cjs +17 -0
  39. package/dist/server/model.d.cts +10 -0
  40. package/dist/server/model.d.mts +10 -0
  41. package/dist/server/model.mjs +17 -0
  42. package/dist/server/modelTypes.d.cts +176 -0
  43. package/dist/server/modelTypes.d.mts +176 -0
  44. package/dist/server/overview.cjs +109 -0
  45. package/dist/server/overview.d.cts +15 -0
  46. package/dist/server/overview.d.mts +15 -0
  47. package/dist/server/overview.mjs +107 -0
  48. package/dist/server/provider.cjs +375 -0
  49. package/dist/server/provider.d.cts +6 -0
  50. package/dist/server/provider.d.mts +6 -0
  51. package/dist/server/provider.mjs +374 -0
  52. package/dist/server/queryInput.cjs +93 -0
  53. package/dist/server/queryInput.mjs +91 -0
  54. package/dist/server/reads.cjs +681 -0
  55. package/dist/server/reads.d.cts +60 -0
  56. package/dist/server/reads.d.mts +60 -0
  57. package/dist/server/reads.mjs +674 -0
  58. package/dist/server/recordEvent.cjs +319 -0
  59. package/dist/server/recordEvent.d.cts +17 -0
  60. package/dist/server/recordEvent.d.mts +17 -0
  61. package/dist/server/recordEvent.mjs +316 -0
  62. package/dist/server/routes.cjs +96 -0
  63. package/dist/server/routes.d.cts +36 -0
  64. package/dist/server/routes.d.mts +36 -0
  65. package/dist/server/routes.mjs +95 -0
  66. package/dist/server/schema.cjs +489 -0
  67. package/dist/server/schema.d.cts +706 -0
  68. package/dist/server/schema.d.mts +706 -0
  69. package/dist/server/schema.mjs +483 -0
  70. package/dist/server/testing/eventRow.d.mts +64 -0
  71. package/dist/server/testing/expectInsightsIndex.mjs +18 -0
  72. package/dist/server/testing/fixtures.d.mts +8 -0
  73. package/dist/server/testing/fixtures.mjs +25 -0
  74. package/dist/server/testing/index.d.mts +24 -0
  75. package/dist/server/testing/index.mjs +25 -0
  76. package/dist/server/testing/insightsModelTests.mjs +714 -0
  77. package/dist/server/testing/modelTypes.d.mts +176 -0
  78. package/dist/server/testing/setupInsightsHttpTestSuite.d.mts +11 -0
  79. package/dist/server/testing/setupInsightsHttpTestSuite.mjs +107 -0
  80. package/dist/server/testing/setupInsightsModelTestSuite.d.mts +11 -0
  81. package/dist/server/testing/setupInsightsModelTestSuite.mjs +31 -0
  82. package/dist/server/testing/types.d.mts +26 -0
  83. package/dist/server/types.d.cts +33 -0
  84. package/dist/server/types.d.mts +33 -0
  85. package/package.json +68 -0
@@ -0,0 +1,60 @@
1
+ import "./eventRow.cjs";
2
+ import { InsightsCoverage, InsightsTimeRange } from "./modelTypes.cjs";
3
+ import { HotUpdaterDatabase } from "@hot-updater/plugin-core/server-plugin";
4
+ //#region src/server/reads.d.ts
5
+ interface InsightsUpdateFailuresInput {
6
+ readonly platform: "ios" | "android";
7
+ readonly channel: string;
8
+ /** A release's failures; without it, the channel's, which need a time range. */
9
+ readonly releaseId?: string;
10
+ /** Without it, a release's failures since its first report. */
11
+ readonly timeRange?: InsightsTimeRange;
12
+ }
13
+ /** Update failures of one stage and reason, and what else their clients knew. */
14
+ interface InsightsFailureBreakdown {
15
+ readonly stage: string;
16
+ readonly reason: string;
17
+ readonly events: number;
18
+ /** By resource, HTTP status, origin code, and transport, most first. */
19
+ readonly details: readonly {
20
+ readonly resource: string | null;
21
+ readonly httpStatus: number | null;
22
+ readonly originCode: string | null;
23
+ readonly transport: string | null;
24
+ readonly events: number;
25
+ }[];
26
+ }
27
+ interface InsightsUpdateFailures {
28
+ readonly coverage: InsightsCoverage;
29
+ readonly measuredAtMs: number;
30
+ /** Update failures other than failed checks: each client reports one at most once a UTC day. */
31
+ readonly failedUpdates: number;
32
+ /** Installations with such a failure, estimated. */
33
+ readonly failedInstallations: number;
34
+ /** Download reports: each installation reports a bundle's download once. */
35
+ readonly downloads: number;
36
+ /** Downloads a patch delivered, and those that fell back from a patch to files or the archive. */
37
+ readonly patchDownloads: number;
38
+ readonly patchFallbacks: number;
39
+ /** A channel's failed update checks, installations with one, and its active installations, estimated. */
40
+ readonly checks?: {
41
+ readonly failures: number;
42
+ readonly failedInstallations: number;
43
+ readonly activeInstallations: number;
44
+ };
45
+ /** Over a time range: failures by stage and reason, most first. */
46
+ readonly breakdown?: readonly InsightsFailureBreakdown[];
47
+ /**
48
+ * Over a time range: failed launches, and the recoveries whose crashed
49
+ * process exited for a reason Android 11+ reported, by reason, most first.
50
+ */
51
+ readonly recoveries?: {
52
+ readonly failedLaunches: number;
53
+ readonly byExitReason: readonly {
54
+ readonly exitReason: string;
55
+ readonly events: number;
56
+ }[];
57
+ };
58
+ }
59
+ //#endregion
60
+ export { InsightsFailureBreakdown, InsightsUpdateFailures, InsightsUpdateFailuresInput };
@@ -0,0 +1,60 @@
1
+ import "./eventRow.mjs";
2
+ import { InsightsCoverage, InsightsTimeRange } from "./modelTypes.mjs";
3
+ import { HotUpdaterDatabase } from "@hot-updater/plugin-core/server-plugin";
4
+ //#region src/server/reads.d.ts
5
+ interface InsightsUpdateFailuresInput {
6
+ readonly platform: "ios" | "android";
7
+ readonly channel: string;
8
+ /** A release's failures; without it, the channel's, which need a time range. */
9
+ readonly releaseId?: string;
10
+ /** Without it, a release's failures since its first report. */
11
+ readonly timeRange?: InsightsTimeRange;
12
+ }
13
+ /** Update failures of one stage and reason, and what else their clients knew. */
14
+ interface InsightsFailureBreakdown {
15
+ readonly stage: string;
16
+ readonly reason: string;
17
+ readonly events: number;
18
+ /** By resource, HTTP status, origin code, and transport, most first. */
19
+ readonly details: readonly {
20
+ readonly resource: string | null;
21
+ readonly httpStatus: number | null;
22
+ readonly originCode: string | null;
23
+ readonly transport: string | null;
24
+ readonly events: number;
25
+ }[];
26
+ }
27
+ interface InsightsUpdateFailures {
28
+ readonly coverage: InsightsCoverage;
29
+ readonly measuredAtMs: number;
30
+ /** Update failures other than failed checks: each client reports one at most once a UTC day. */
31
+ readonly failedUpdates: number;
32
+ /** Installations with such a failure, estimated. */
33
+ readonly failedInstallations: number;
34
+ /** Download reports: each installation reports a bundle's download once. */
35
+ readonly downloads: number;
36
+ /** Downloads a patch delivered, and those that fell back from a patch to files or the archive. */
37
+ readonly patchDownloads: number;
38
+ readonly patchFallbacks: number;
39
+ /** A channel's failed update checks, installations with one, and its active installations, estimated. */
40
+ readonly checks?: {
41
+ readonly failures: number;
42
+ readonly failedInstallations: number;
43
+ readonly activeInstallations: number;
44
+ };
45
+ /** Over a time range: failures by stage and reason, most first. */
46
+ readonly breakdown?: readonly InsightsFailureBreakdown[];
47
+ /**
48
+ * Over a time range: failed launches, and the recoveries whose crashed
49
+ * process exited for a reason Android 11+ reported, by reason, most first.
50
+ */
51
+ readonly recoveries?: {
52
+ readonly failedLaunches: number;
53
+ readonly byExitReason: readonly {
54
+ readonly exitReason: string;
55
+ readonly events: number;
56
+ }[];
57
+ };
58
+ }
59
+ //#endregion
60
+ export { InsightsFailureBreakdown, InsightsUpdateFailures, InsightsUpdateFailuresInput };