@structured-id/ui-core 0.1.5

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 (156) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +47 -0
  3. package/dist/browser-vp/index.cjs +349 -0
  4. package/dist/browser-vp/index.d.cts +287 -0
  5. package/dist/browser-vp/index.d.ts +287 -0
  6. package/dist/browser-vp/index.js +349 -0
  7. package/dist/chunk-C3Q766CY.cjs +125 -0
  8. package/dist/chunk-J5YXRXB5.js +125 -0
  9. package/dist/index.cjs +19360 -0
  10. package/dist/index.d.cts +9536 -0
  11. package/dist/index.d.ts +9536 -0
  12. package/dist/index.js +19360 -0
  13. package/dist/storage-4CB2JTLW.cjs +22 -0
  14. package/dist/storage-THRWREZP.js +22 -0
  15. package/package.json +93 -0
  16. package/src/browser-vp/crypto.ts +254 -0
  17. package/src/browser-vp/index.test.ts +10 -0
  18. package/src/browser-vp/index.ts +118 -0
  19. package/src/browser-vp/prf.ts +181 -0
  20. package/src/browser-vp/storage.test.ts +9 -0
  21. package/src/browser-vp/storage.ts +165 -0
  22. package/src/browser-vp/types.ts +97 -0
  23. package/src/browser-vp/vp.test.ts +43 -0
  24. package/src/browser-vp/vp.ts +113 -0
  25. package/src/components/SidAvatar.vue +106 -0
  26. package/src/components/SidConfirmDialog.vue +125 -0
  27. package/src/components/SidStatusBadge.vue +71 -0
  28. package/src/components/index.ts +5 -0
  29. package/src/composables/index.ts +10 -0
  30. package/src/composables/useAuth.ts +40 -0
  31. package/src/composables/useBffAuth.ts +147 -0
  32. package/src/composables/useGrpc.test.ts +196 -0
  33. package/src/composables/useGrpc.ts +120 -0
  34. package/src/composables/useSession.ts +80 -0
  35. package/src/generated/google/api/http.ts +687 -0
  36. package/src/generated/google/protobuf/descriptor.ts +4865 -0
  37. package/src/generated/google/protobuf/duration.ts +230 -0
  38. package/src/generated/google/protobuf/empty.ts +94 -0
  39. package/src/generated/google/protobuf/struct.ts +484 -0
  40. package/src/generated/google/protobuf/timestamp.ts +287 -0
  41. package/src/generated/sid/v1/account/account.client.ts +527 -0
  42. package/src/generated/sid/v1/account/account.ts +3261 -0
  43. package/src/generated/sid/v1/admin/admin.client.ts +136 -0
  44. package/src/generated/sid/v1/admin/admin.ts +846 -0
  45. package/src/generated/sid/v1/admin/admin_roles.client.ts +181 -0
  46. package/src/generated/sid/v1/admin/admin_roles.ts +1606 -0
  47. package/src/generated/sid/v1/admin/analytics.client.ts +106 -0
  48. package/src/generated/sid/v1/admin/analytics.ts +1017 -0
  49. package/src/generated/sid/v1/admin/branding.client.ts +166 -0
  50. package/src/generated/sid/v1/admin/branding.ts +1906 -0
  51. package/src/generated/sid/v1/admin/enrollment.client.ts +165 -0
  52. package/src/generated/sid/v1/admin/enrollment.ts +1704 -0
  53. package/src/generated/sid/v1/admin/events.client.ts +195 -0
  54. package/src/generated/sid/v1/admin/events.ts +1900 -0
  55. package/src/generated/sid/v1/admin/flow.client.ts +183 -0
  56. package/src/generated/sid/v1/admin/flow.ts +1552 -0
  57. package/src/generated/sid/v1/admin/keys.client.ts +107 -0
  58. package/src/generated/sid/v1/admin/keys.ts +931 -0
  59. package/src/generated/sid/v1/admin/login_experience.client.ts +160 -0
  60. package/src/generated/sid/v1/admin/login_experience.ts +1061 -0
  61. package/src/generated/sid/v1/admin/migration.client.ts +127 -0
  62. package/src/generated/sid/v1/admin/migration.ts +1948 -0
  63. package/src/generated/sid/v1/admin/notifications.client.ts +128 -0
  64. package/src/generated/sid/v1/admin/notifications.ts +1332 -0
  65. package/src/generated/sid/v1/admin/operations.client.ts +241 -0
  66. package/src/generated/sid/v1/admin/operations.ts +2648 -0
  67. package/src/generated/sid/v1/admin/organizations.client.ts +57 -0
  68. package/src/generated/sid/v1/admin/organizations.ts +349 -0
  69. package/src/generated/sid/v1/admin/scopes.client.ts +171 -0
  70. package/src/generated/sid/v1/admin/scopes.ts +1324 -0
  71. package/src/generated/sid/v1/admin/security.client.ts +412 -0
  72. package/src/generated/sid/v1/admin/security.ts +4086 -0
  73. package/src/generated/sid/v1/admin/sessions.client.ts +114 -0
  74. package/src/generated/sid/v1/admin/sessions.ts +923 -0
  75. package/src/generated/sid/v1/admin/settings.client.ts +340 -0
  76. package/src/generated/sid/v1/admin/settings.ts +2395 -0
  77. package/src/generated/sid/v1/admin/user_profile.client.ts +57 -0
  78. package/src/generated/sid/v1/admin/user_profile.ts +730 -0
  79. package/src/generated/sid/v1/admin/webhooks.client.ts +269 -0
  80. package/src/generated/sid/v1/admin/webhooks.ts +2804 -0
  81. package/src/generated/sid/v1/attestation/attestation.client.ts +115 -0
  82. package/src/generated/sid/v1/attestation/attestation.ts +813 -0
  83. package/src/generated/sid/v1/authn/auth.client.ts +900 -0
  84. package/src/generated/sid/v1/authn/auth.ts +9287 -0
  85. package/src/generated/sid/v1/authn/flows.client.ts +413 -0
  86. package/src/generated/sid/v1/authn/flows.ts +3217 -0
  87. package/src/generated/sid/v1/authz/authz.client.ts +459 -0
  88. package/src/generated/sid/v1/authz/authz.ts +5343 -0
  89. package/src/generated/sid/v1/authz/governance.client.ts +102 -0
  90. package/src/generated/sid/v1/authz/governance.ts +818 -0
  91. package/src/generated/sid/v1/common/errors.ts +184 -0
  92. package/src/generated/sid/v1/common/pagination.ts +152 -0
  93. package/src/generated/sid/v1/common/transport.ts +227 -0
  94. package/src/generated/sid/v1/common/types.ts +151 -0
  95. package/src/generated/sid/v1/events/event_stream.client.ts +67 -0
  96. package/src/generated/sid/v1/events/event_stream.ts +374 -0
  97. package/src/generated/sid/v1/federation/upstream.client.ts +142 -0
  98. package/src/generated/sid/v1/federation/upstream.ts +1736 -0
  99. package/src/generated/sid/v1/identity/identity.client.ts +467 -0
  100. package/src/generated/sid/v1/identity/identity.ts +5613 -0
  101. package/src/generated/sid/v1/machine/machine_user.client.ts +219 -0
  102. package/src/generated/sid/v1/machine/machine_user.ts +2400 -0
  103. package/src/generated/sid/v1/machine/pat.client.ts +147 -0
  104. package/src/generated/sid/v1/machine/pat.ts +1268 -0
  105. package/src/generated/sid/v1/projects/projects.client.ts +286 -0
  106. package/src/generated/sid/v1/projects/projects.ts +2714 -0
  107. package/src/generated/sid/v1/scim/scim.client.ts +274 -0
  108. package/src/generated/sid/v1/scim/scim.ts +3043 -0
  109. package/src/generated/sid/v1/test/test.client.ts +232 -0
  110. package/src/generated/sid/v1/test/test.ts +1136 -0
  111. package/src/i18n/index.ts +40 -0
  112. package/src/index.ts +157 -0
  113. package/src/profile/auth.ts +15 -0
  114. package/src/profile/components/ConsentManager.vue +88 -0
  115. package/src/profile/components/ProfileEditor.vue +146 -0
  116. package/src/profile/components/SecuritySettings.vue +170 -0
  117. package/src/profile/components/SessionList.vue +100 -0
  118. package/src/profile/components/SidLoginForm.test.ts +80 -0
  119. package/src/profile/components/SidLoginForm.vue +230 -0
  120. package/src/profile/components/SidMfaChallenge.test.ts +127 -0
  121. package/src/profile/components/SidMfaChallenge.vue +243 -0
  122. package/src/profile/components/SidRegistrationForm.test.ts +79 -0
  123. package/src/profile/components/SidRegistrationForm.vue +317 -0
  124. package/src/profile/components/index.ts +11 -0
  125. package/src/profile/composables/index.ts +6 -0
  126. package/src/profile/composables/useAccountApi.ts +203 -0
  127. package/src/profile/composables/useAuthApi.opaque.test.ts +140 -0
  128. package/src/profile/composables/useAuthApi.ts +617 -0
  129. package/src/profile/composables/useIdentityApi.ts +123 -0
  130. package/src/profile/composables/useLoginSuccess.test.ts +112 -0
  131. package/src/profile/composables/useLoginSuccess.ts +65 -0
  132. package/src/profile/composables/useOpaqueAuth.test.ts +290 -0
  133. package/src/profile/composables/useOpaqueAuth.ts +191 -0
  134. package/src/profile/composables/useSecurityLevel.test.ts +198 -0
  135. package/src/profile/composables/useSecurityLevel.ts +324 -0
  136. package/src/profile/index.ts +18 -0
  137. package/src/quasar/SidPrincipalInput.vue +209 -0
  138. package/src/quasar/index.ts +8 -0
  139. package/src/stores/auth.test.ts +83 -0
  140. package/src/stores/auth.ts +92 -0
  141. package/src/stores/index.ts +1 -0
  142. package/src/transport/adaptive.test.ts +728 -0
  143. package/src/transport/adaptive.ts +308 -0
  144. package/src/transport/framing.test.ts +227 -0
  145. package/src/transport/framing.ts +98 -0
  146. package/src/transport/webtransport.test.ts +728 -0
  147. package/src/transport/webtransport.ts +323 -0
  148. package/src/types/auth.ts +58 -0
  149. package/src/types/index.ts +1 -0
  150. package/src/utils/formatters.test.ts +26 -0
  151. package/src/utils/formatters.ts +69 -0
  152. package/src/utils/index.ts +16 -0
  153. package/src/utils/normalizePrincipal.test.ts +188 -0
  154. package/src/utils/normalizePrincipal.ts +159 -0
  155. package/src/utils/validators.test.ts +75 -0
  156. package/src/utils/validators.ts +36 -0
@@ -0,0 +1,1017 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter client_generic,generate_dependencies
2
+ // @generated from protobuf file "sid/v1/admin/analytics.proto" (package "sid.v1.admin", syntax proto3)
3
+ // tslint:disable
4
+ import { ServiceType } from "@protobuf-ts/runtime-rpc";
5
+ import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
6
+ import type { IBinaryWriter } from "@protobuf-ts/runtime";
7
+ import { WireType } from "@protobuf-ts/runtime";
8
+ import type { BinaryReadOptions } from "@protobuf-ts/runtime";
9
+ import type { IBinaryReader } from "@protobuf-ts/runtime";
10
+ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
11
+ import type { PartialMessage } from "@protobuf-ts/runtime";
12
+ import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
+ import { MessageType } from "@protobuf-ts/runtime";
14
+ import { Timestamp } from "../../../google/protobuf/timestamp";
15
+ // ── Overview Cards ──
16
+
17
+ /**
18
+ * @generated from protobuf message sid.v1.admin.GetOverviewMetricsRequest
19
+ */
20
+ export interface GetOverviewMetricsRequest {
21
+ /**
22
+ * Period for sparkline data and trend calculation.
23
+ *
24
+ * @generated from protobuf field: sid.v1.admin.AnalyticsPeriod period = 1
25
+ */
26
+ period: AnalyticsPeriod;
27
+ }
28
+ /**
29
+ * @generated from protobuf message sid.v1.admin.MetricCard
30
+ */
31
+ export interface MetricCard {
32
+ /**
33
+ * @generated from protobuf field: string name = 1
34
+ */
35
+ name: string;
36
+ /**
37
+ * @generated from protobuf field: string label = 2
38
+ */
39
+ label: string;
40
+ /**
41
+ * Current value (e.g., "12,847" or "3,412").
42
+ *
43
+ * @generated from protobuf field: double value = 3
44
+ */
45
+ value: number;
46
+ /**
47
+ * Suffix for display (e.g., "today", "now").
48
+ *
49
+ * @generated from protobuf field: string suffix = 4
50
+ */
51
+ suffix: string;
52
+ /**
53
+ * Trend percentage (positive = up, negative = down).
54
+ *
55
+ * @generated from protobuf field: double trend_percent = 5
56
+ */
57
+ trendPercent: number;
58
+ /**
59
+ * @generated from protobuf field: sid.v1.admin.MetricTrend trend = 6
60
+ */
61
+ trend: MetricTrend;
62
+ /**
63
+ * Sparkline data points (24h by default, one per hour).
64
+ *
65
+ * @generated from protobuf field: repeated double sparkline = 7
66
+ */
67
+ sparkline: number[];
68
+ }
69
+ /**
70
+ * @generated from protobuf message sid.v1.admin.OverviewMetricsResponse
71
+ */
72
+ export interface OverviewMetricsResponse {
73
+ /**
74
+ * @generated from protobuf field: repeated sid.v1.admin.MetricCard cards = 1
75
+ */
76
+ cards: MetricCard[];
77
+ }
78
+ // ── Time Series ──
79
+
80
+ /**
81
+ * @generated from protobuf message sid.v1.admin.TimeSeriesRequest
82
+ */
83
+ export interface TimeSeriesRequest {
84
+ /**
85
+ * @generated from protobuf field: sid.v1.admin.AnalyticsPeriod period = 1
86
+ */
87
+ period: AnalyticsPeriod;
88
+ /**
89
+ * For CUSTOM period.
90
+ *
91
+ * @generated from protobuf field: google.protobuf.Timestamp start = 2
92
+ */
93
+ start?: Timestamp;
94
+ /**
95
+ * @generated from protobuf field: google.protobuf.Timestamp end = 3
96
+ */
97
+ end?: Timestamp;
98
+ }
99
+ /**
100
+ * @generated from protobuf message sid.v1.admin.TimeSeriesPoint
101
+ */
102
+ export interface TimeSeriesPoint {
103
+ /**
104
+ * @generated from protobuf field: google.protobuf.Timestamp timestamp = 1
105
+ */
106
+ timestamp?: Timestamp;
107
+ /**
108
+ * @generated from protobuf field: double value = 2
109
+ */
110
+ value: number;
111
+ }
112
+ /**
113
+ * @generated from protobuf message sid.v1.admin.TimeSeries
114
+ */
115
+ export interface TimeSeries {
116
+ /**
117
+ * @generated from protobuf field: string name = 1
118
+ */
119
+ name: string;
120
+ /**
121
+ * @generated from protobuf field: string label = 2
122
+ */
123
+ label: string;
124
+ /**
125
+ * @generated from protobuf field: string color = 3
126
+ */
127
+ color: string;
128
+ /**
129
+ * "solid", "dashed", "dotted"
130
+ *
131
+ * @generated from protobuf field: string line_style = 4
132
+ */
133
+ lineStyle: string;
134
+ /**
135
+ * @generated from protobuf field: repeated sid.v1.admin.TimeSeriesPoint points = 5
136
+ */
137
+ points: TimeSeriesPoint[];
138
+ }
139
+ /**
140
+ * @generated from protobuf message sid.v1.admin.TimeSeriesResponse
141
+ */
142
+ export interface TimeSeriesResponse {
143
+ /**
144
+ * @generated from protobuf field: repeated sid.v1.admin.TimeSeries series = 1
145
+ */
146
+ series: TimeSeries[];
147
+ }
148
+ // ── Top Applications ──
149
+
150
+ /**
151
+ * @generated from protobuf message sid.v1.admin.TopApplicationsRequest
152
+ */
153
+ export interface TopApplicationsRequest {
154
+ /**
155
+ * @generated from protobuf field: sid.v1.admin.AnalyticsPeriod period = 1
156
+ */
157
+ period: AnalyticsPeriod;
158
+ /**
159
+ * @generated from protobuf field: uint32 limit = 2
160
+ */
161
+ limit: number;
162
+ }
163
+ /**
164
+ * @generated from protobuf message sid.v1.admin.ApplicationMetric
165
+ */
166
+ export interface ApplicationMetric {
167
+ /**
168
+ * @generated from protobuf field: string client_id = 1
169
+ */
170
+ clientId: string;
171
+ /**
172
+ * @generated from protobuf field: string application_name = 2
173
+ */
174
+ applicationName: string;
175
+ /**
176
+ * @generated from protobuf field: uint64 login_count = 3
177
+ */
178
+ loginCount: bigint;
179
+ }
180
+ /**
181
+ * @generated from protobuf message sid.v1.admin.TopApplicationsResponse
182
+ */
183
+ export interface TopApplicationsResponse {
184
+ /**
185
+ * @generated from protobuf field: repeated sid.v1.admin.ApplicationMetric applications = 1
186
+ */
187
+ applications: ApplicationMetric[];
188
+ }
189
+ // ── Distribution (donut/pie) ──
190
+
191
+ /**
192
+ * @generated from protobuf message sid.v1.admin.DistributionSlice
193
+ */
194
+ export interface DistributionSlice {
195
+ /**
196
+ * @generated from protobuf field: string label = 1
197
+ */
198
+ label: string;
199
+ /**
200
+ * @generated from protobuf field: double value = 2
201
+ */
202
+ value: number;
203
+ /**
204
+ * Percentage of total (0.0–100.0).
205
+ *
206
+ * @generated from protobuf field: double percentage = 3
207
+ */
208
+ percentage: number;
209
+ /**
210
+ * @generated from protobuf field: string color = 4
211
+ */
212
+ color: string;
213
+ }
214
+ /**
215
+ * @generated from protobuf message sid.v1.admin.DistributionResponse
216
+ */
217
+ export interface DistributionResponse {
218
+ /**
219
+ * @generated from protobuf field: repeated sid.v1.admin.DistributionSlice slices = 1
220
+ */
221
+ slices: DistributionSlice[];
222
+ /**
223
+ * @generated from protobuf field: double total = 2
224
+ */
225
+ total: number;
226
+ }
227
+ // ── Enums ──
228
+
229
+ /**
230
+ * @generated from protobuf enum sid.v1.admin.AnalyticsPeriod
231
+ */
232
+ export enum AnalyticsPeriod {
233
+ /**
234
+ * @generated from protobuf enum value: ANALYTICS_PERIOD_UNSPECIFIED = 0;
235
+ */
236
+ ANALYTICS_PERIOD_UNSPECIFIED = 0,
237
+ /**
238
+ * @generated from protobuf enum value: ANALYTICS_PERIOD_24H = 1;
239
+ */
240
+ ANALYTICS_PERIOD_24H = 1,
241
+ /**
242
+ * @generated from protobuf enum value: ANALYTICS_PERIOD_7D = 2;
243
+ */
244
+ ANALYTICS_PERIOD_7D = 2,
245
+ /**
246
+ * @generated from protobuf enum value: ANALYTICS_PERIOD_30D = 3;
247
+ */
248
+ ANALYTICS_PERIOD_30D = 3,
249
+ /**
250
+ * @generated from protobuf enum value: ANALYTICS_PERIOD_90D = 4;
251
+ */
252
+ ANALYTICS_PERIOD_90D = 4,
253
+ /**
254
+ * @generated from protobuf enum value: ANALYTICS_PERIOD_CUSTOM = 5;
255
+ */
256
+ ANALYTICS_PERIOD_CUSTOM = 5
257
+ }
258
+ /**
259
+ * @generated from protobuf enum sid.v1.admin.MetricTrend
260
+ */
261
+ export enum MetricTrend {
262
+ /**
263
+ * @generated from protobuf enum value: METRIC_TREND_UNSPECIFIED = 0;
264
+ */
265
+ UNSPECIFIED = 0,
266
+ /**
267
+ * @generated from protobuf enum value: METRIC_TREND_UP = 1;
268
+ */
269
+ UP = 1,
270
+ /**
271
+ * @generated from protobuf enum value: METRIC_TREND_DOWN = 2;
272
+ */
273
+ DOWN = 2,
274
+ /**
275
+ * @generated from protobuf enum value: METRIC_TREND_FLAT = 3;
276
+ */
277
+ FLAT = 3
278
+ }
279
+ // @generated message type with reflection information, may provide speed optimized methods
280
+ class GetOverviewMetricsRequest$Type extends MessageType<GetOverviewMetricsRequest> {
281
+ constructor() {
282
+ super("sid.v1.admin.GetOverviewMetricsRequest", [
283
+ { no: 1, name: "period", kind: "enum", T: () => ["sid.v1.admin.AnalyticsPeriod", AnalyticsPeriod] }
284
+ ]);
285
+ }
286
+ create(value?: PartialMessage<GetOverviewMetricsRequest>): GetOverviewMetricsRequest {
287
+ const message = globalThis.Object.create((this.messagePrototype!));
288
+ message.period = 0;
289
+ if (value !== undefined)
290
+ reflectionMergePartial<GetOverviewMetricsRequest>(this, message, value);
291
+ return message;
292
+ }
293
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetOverviewMetricsRequest): GetOverviewMetricsRequest {
294
+ let message = target ?? this.create(), end = reader.pos + length;
295
+ while (reader.pos < end) {
296
+ let [fieldNo, wireType] = reader.tag();
297
+ switch (fieldNo) {
298
+ case /* sid.v1.admin.AnalyticsPeriod period */ 1:
299
+ message.period = reader.int32();
300
+ break;
301
+ default:
302
+ let u = options.readUnknownField;
303
+ if (u === "throw")
304
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
305
+ let d = reader.skip(wireType);
306
+ if (u !== false)
307
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
308
+ }
309
+ }
310
+ return message;
311
+ }
312
+ internalBinaryWrite(message: GetOverviewMetricsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
313
+ /* sid.v1.admin.AnalyticsPeriod period = 1; */
314
+ if (message.period !== 0)
315
+ writer.tag(1, WireType.Varint).int32(message.period);
316
+ let u = options.writeUnknownFields;
317
+ if (u !== false)
318
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
319
+ return writer;
320
+ }
321
+ }
322
+ /**
323
+ * @generated MessageType for protobuf message sid.v1.admin.GetOverviewMetricsRequest
324
+ */
325
+ export const GetOverviewMetricsRequest = new GetOverviewMetricsRequest$Type();
326
+ // @generated message type with reflection information, may provide speed optimized methods
327
+ class MetricCard$Type extends MessageType<MetricCard> {
328
+ constructor() {
329
+ super("sid.v1.admin.MetricCard", [
330
+ { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
331
+ { no: 2, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
332
+ { no: 3, name: "value", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
333
+ { no: 4, name: "suffix", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
334
+ { no: 5, name: "trend_percent", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
335
+ { no: 6, name: "trend", kind: "enum", T: () => ["sid.v1.admin.MetricTrend", MetricTrend, "METRIC_TREND_"] },
336
+ { no: 7, name: "sparkline", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 1 /*ScalarType.DOUBLE*/ }
337
+ ]);
338
+ }
339
+ create(value?: PartialMessage<MetricCard>): MetricCard {
340
+ const message = globalThis.Object.create((this.messagePrototype!));
341
+ message.name = "";
342
+ message.label = "";
343
+ message.value = 0;
344
+ message.suffix = "";
345
+ message.trendPercent = 0;
346
+ message.trend = 0;
347
+ message.sparkline = [];
348
+ if (value !== undefined)
349
+ reflectionMergePartial<MetricCard>(this, message, value);
350
+ return message;
351
+ }
352
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MetricCard): MetricCard {
353
+ let message = target ?? this.create(), end = reader.pos + length;
354
+ while (reader.pos < end) {
355
+ let [fieldNo, wireType] = reader.tag();
356
+ switch (fieldNo) {
357
+ case /* string name */ 1:
358
+ message.name = reader.string();
359
+ break;
360
+ case /* string label */ 2:
361
+ message.label = reader.string();
362
+ break;
363
+ case /* double value */ 3:
364
+ message.value = reader.double();
365
+ break;
366
+ case /* string suffix */ 4:
367
+ message.suffix = reader.string();
368
+ break;
369
+ case /* double trend_percent */ 5:
370
+ message.trendPercent = reader.double();
371
+ break;
372
+ case /* sid.v1.admin.MetricTrend trend */ 6:
373
+ message.trend = reader.int32();
374
+ break;
375
+ case /* repeated double sparkline */ 7:
376
+ if (wireType === WireType.LengthDelimited)
377
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
378
+ message.sparkline.push(reader.double());
379
+ else
380
+ message.sparkline.push(reader.double());
381
+ break;
382
+ default:
383
+ let u = options.readUnknownField;
384
+ if (u === "throw")
385
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
386
+ let d = reader.skip(wireType);
387
+ if (u !== false)
388
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
389
+ }
390
+ }
391
+ return message;
392
+ }
393
+ internalBinaryWrite(message: MetricCard, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
394
+ /* string name = 1; */
395
+ if (message.name !== "")
396
+ writer.tag(1, WireType.LengthDelimited).string(message.name);
397
+ /* string label = 2; */
398
+ if (message.label !== "")
399
+ writer.tag(2, WireType.LengthDelimited).string(message.label);
400
+ /* double value = 3; */
401
+ if (message.value !== 0)
402
+ writer.tag(3, WireType.Bit64).double(message.value);
403
+ /* string suffix = 4; */
404
+ if (message.suffix !== "")
405
+ writer.tag(4, WireType.LengthDelimited).string(message.suffix);
406
+ /* double trend_percent = 5; */
407
+ if (message.trendPercent !== 0)
408
+ writer.tag(5, WireType.Bit64).double(message.trendPercent);
409
+ /* sid.v1.admin.MetricTrend trend = 6; */
410
+ if (message.trend !== 0)
411
+ writer.tag(6, WireType.Varint).int32(message.trend);
412
+ /* repeated double sparkline = 7; */
413
+ if (message.sparkline.length) {
414
+ writer.tag(7, WireType.LengthDelimited).fork();
415
+ for (let i = 0; i < message.sparkline.length; i++)
416
+ writer.double(message.sparkline[i]);
417
+ writer.join();
418
+ }
419
+ let u = options.writeUnknownFields;
420
+ if (u !== false)
421
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
422
+ return writer;
423
+ }
424
+ }
425
+ /**
426
+ * @generated MessageType for protobuf message sid.v1.admin.MetricCard
427
+ */
428
+ export const MetricCard = new MetricCard$Type();
429
+ // @generated message type with reflection information, may provide speed optimized methods
430
+ class OverviewMetricsResponse$Type extends MessageType<OverviewMetricsResponse> {
431
+ constructor() {
432
+ super("sid.v1.admin.OverviewMetricsResponse", [
433
+ { no: 1, name: "cards", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => MetricCard }
434
+ ]);
435
+ }
436
+ create(value?: PartialMessage<OverviewMetricsResponse>): OverviewMetricsResponse {
437
+ const message = globalThis.Object.create((this.messagePrototype!));
438
+ message.cards = [];
439
+ if (value !== undefined)
440
+ reflectionMergePartial<OverviewMetricsResponse>(this, message, value);
441
+ return message;
442
+ }
443
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OverviewMetricsResponse): OverviewMetricsResponse {
444
+ let message = target ?? this.create(), end = reader.pos + length;
445
+ while (reader.pos < end) {
446
+ let [fieldNo, wireType] = reader.tag();
447
+ switch (fieldNo) {
448
+ case /* repeated sid.v1.admin.MetricCard cards */ 1:
449
+ message.cards.push(MetricCard.internalBinaryRead(reader, reader.uint32(), options));
450
+ break;
451
+ default:
452
+ let u = options.readUnknownField;
453
+ if (u === "throw")
454
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
455
+ let d = reader.skip(wireType);
456
+ if (u !== false)
457
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
458
+ }
459
+ }
460
+ return message;
461
+ }
462
+ internalBinaryWrite(message: OverviewMetricsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
463
+ /* repeated sid.v1.admin.MetricCard cards = 1; */
464
+ for (let i = 0; i < message.cards.length; i++)
465
+ MetricCard.internalBinaryWrite(message.cards[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
466
+ let u = options.writeUnknownFields;
467
+ if (u !== false)
468
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
469
+ return writer;
470
+ }
471
+ }
472
+ /**
473
+ * @generated MessageType for protobuf message sid.v1.admin.OverviewMetricsResponse
474
+ */
475
+ export const OverviewMetricsResponse = new OverviewMetricsResponse$Type();
476
+ // @generated message type with reflection information, may provide speed optimized methods
477
+ class TimeSeriesRequest$Type extends MessageType<TimeSeriesRequest> {
478
+ constructor() {
479
+ super("sid.v1.admin.TimeSeriesRequest", [
480
+ { no: 1, name: "period", kind: "enum", T: () => ["sid.v1.admin.AnalyticsPeriod", AnalyticsPeriod] },
481
+ { no: 2, name: "start", kind: "message", T: () => Timestamp },
482
+ { no: 3, name: "end", kind: "message", T: () => Timestamp }
483
+ ]);
484
+ }
485
+ create(value?: PartialMessage<TimeSeriesRequest>): TimeSeriesRequest {
486
+ const message = globalThis.Object.create((this.messagePrototype!));
487
+ message.period = 0;
488
+ if (value !== undefined)
489
+ reflectionMergePartial<TimeSeriesRequest>(this, message, value);
490
+ return message;
491
+ }
492
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimeSeriesRequest): TimeSeriesRequest {
493
+ let message = target ?? this.create(), end = reader.pos + length;
494
+ while (reader.pos < end) {
495
+ let [fieldNo, wireType] = reader.tag();
496
+ switch (fieldNo) {
497
+ case /* sid.v1.admin.AnalyticsPeriod period */ 1:
498
+ message.period = reader.int32();
499
+ break;
500
+ case /* google.protobuf.Timestamp start */ 2:
501
+ message.start = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.start);
502
+ break;
503
+ case /* google.protobuf.Timestamp end */ 3:
504
+ message.end = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.end);
505
+ break;
506
+ default:
507
+ let u = options.readUnknownField;
508
+ if (u === "throw")
509
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
510
+ let d = reader.skip(wireType);
511
+ if (u !== false)
512
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
513
+ }
514
+ }
515
+ return message;
516
+ }
517
+ internalBinaryWrite(message: TimeSeriesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
518
+ /* sid.v1.admin.AnalyticsPeriod period = 1; */
519
+ if (message.period !== 0)
520
+ writer.tag(1, WireType.Varint).int32(message.period);
521
+ /* google.protobuf.Timestamp start = 2; */
522
+ if (message.start)
523
+ Timestamp.internalBinaryWrite(message.start, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
524
+ /* google.protobuf.Timestamp end = 3; */
525
+ if (message.end)
526
+ Timestamp.internalBinaryWrite(message.end, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
527
+ let u = options.writeUnknownFields;
528
+ if (u !== false)
529
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
530
+ return writer;
531
+ }
532
+ }
533
+ /**
534
+ * @generated MessageType for protobuf message sid.v1.admin.TimeSeriesRequest
535
+ */
536
+ export const TimeSeriesRequest = new TimeSeriesRequest$Type();
537
+ // @generated message type with reflection information, may provide speed optimized methods
538
+ class TimeSeriesPoint$Type extends MessageType<TimeSeriesPoint> {
539
+ constructor() {
540
+ super("sid.v1.admin.TimeSeriesPoint", [
541
+ { no: 1, name: "timestamp", kind: "message", T: () => Timestamp },
542
+ { no: 2, name: "value", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }
543
+ ]);
544
+ }
545
+ create(value?: PartialMessage<TimeSeriesPoint>): TimeSeriesPoint {
546
+ const message = globalThis.Object.create((this.messagePrototype!));
547
+ message.value = 0;
548
+ if (value !== undefined)
549
+ reflectionMergePartial<TimeSeriesPoint>(this, message, value);
550
+ return message;
551
+ }
552
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimeSeriesPoint): TimeSeriesPoint {
553
+ let message = target ?? this.create(), end = reader.pos + length;
554
+ while (reader.pos < end) {
555
+ let [fieldNo, wireType] = reader.tag();
556
+ switch (fieldNo) {
557
+ case /* google.protobuf.Timestamp timestamp */ 1:
558
+ message.timestamp = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.timestamp);
559
+ break;
560
+ case /* double value */ 2:
561
+ message.value = reader.double();
562
+ break;
563
+ default:
564
+ let u = options.readUnknownField;
565
+ if (u === "throw")
566
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
567
+ let d = reader.skip(wireType);
568
+ if (u !== false)
569
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
570
+ }
571
+ }
572
+ return message;
573
+ }
574
+ internalBinaryWrite(message: TimeSeriesPoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
575
+ /* google.protobuf.Timestamp timestamp = 1; */
576
+ if (message.timestamp)
577
+ Timestamp.internalBinaryWrite(message.timestamp, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
578
+ /* double value = 2; */
579
+ if (message.value !== 0)
580
+ writer.tag(2, WireType.Bit64).double(message.value);
581
+ let u = options.writeUnknownFields;
582
+ if (u !== false)
583
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
584
+ return writer;
585
+ }
586
+ }
587
+ /**
588
+ * @generated MessageType for protobuf message sid.v1.admin.TimeSeriesPoint
589
+ */
590
+ export const TimeSeriesPoint = new TimeSeriesPoint$Type();
591
+ // @generated message type with reflection information, may provide speed optimized methods
592
+ class TimeSeries$Type extends MessageType<TimeSeries> {
593
+ constructor() {
594
+ super("sid.v1.admin.TimeSeries", [
595
+ { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
596
+ { no: 2, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
597
+ { no: 3, name: "color", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
598
+ { no: 4, name: "line_style", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
599
+ { no: 5, name: "points", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => TimeSeriesPoint }
600
+ ]);
601
+ }
602
+ create(value?: PartialMessage<TimeSeries>): TimeSeries {
603
+ const message = globalThis.Object.create((this.messagePrototype!));
604
+ message.name = "";
605
+ message.label = "";
606
+ message.color = "";
607
+ message.lineStyle = "";
608
+ message.points = [];
609
+ if (value !== undefined)
610
+ reflectionMergePartial<TimeSeries>(this, message, value);
611
+ return message;
612
+ }
613
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimeSeries): TimeSeries {
614
+ let message = target ?? this.create(), end = reader.pos + length;
615
+ while (reader.pos < end) {
616
+ let [fieldNo, wireType] = reader.tag();
617
+ switch (fieldNo) {
618
+ case /* string name */ 1:
619
+ message.name = reader.string();
620
+ break;
621
+ case /* string label */ 2:
622
+ message.label = reader.string();
623
+ break;
624
+ case /* string color */ 3:
625
+ message.color = reader.string();
626
+ break;
627
+ case /* string line_style */ 4:
628
+ message.lineStyle = reader.string();
629
+ break;
630
+ case /* repeated sid.v1.admin.TimeSeriesPoint points */ 5:
631
+ message.points.push(TimeSeriesPoint.internalBinaryRead(reader, reader.uint32(), options));
632
+ break;
633
+ default:
634
+ let u = options.readUnknownField;
635
+ if (u === "throw")
636
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
637
+ let d = reader.skip(wireType);
638
+ if (u !== false)
639
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
640
+ }
641
+ }
642
+ return message;
643
+ }
644
+ internalBinaryWrite(message: TimeSeries, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
645
+ /* string name = 1; */
646
+ if (message.name !== "")
647
+ writer.tag(1, WireType.LengthDelimited).string(message.name);
648
+ /* string label = 2; */
649
+ if (message.label !== "")
650
+ writer.tag(2, WireType.LengthDelimited).string(message.label);
651
+ /* string color = 3; */
652
+ if (message.color !== "")
653
+ writer.tag(3, WireType.LengthDelimited).string(message.color);
654
+ /* string line_style = 4; */
655
+ if (message.lineStyle !== "")
656
+ writer.tag(4, WireType.LengthDelimited).string(message.lineStyle);
657
+ /* repeated sid.v1.admin.TimeSeriesPoint points = 5; */
658
+ for (let i = 0; i < message.points.length; i++)
659
+ TimeSeriesPoint.internalBinaryWrite(message.points[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();
660
+ let u = options.writeUnknownFields;
661
+ if (u !== false)
662
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
663
+ return writer;
664
+ }
665
+ }
666
+ /**
667
+ * @generated MessageType for protobuf message sid.v1.admin.TimeSeries
668
+ */
669
+ export const TimeSeries = new TimeSeries$Type();
670
+ // @generated message type with reflection information, may provide speed optimized methods
671
+ class TimeSeriesResponse$Type extends MessageType<TimeSeriesResponse> {
672
+ constructor() {
673
+ super("sid.v1.admin.TimeSeriesResponse", [
674
+ { no: 1, name: "series", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => TimeSeries }
675
+ ]);
676
+ }
677
+ create(value?: PartialMessage<TimeSeriesResponse>): TimeSeriesResponse {
678
+ const message = globalThis.Object.create((this.messagePrototype!));
679
+ message.series = [];
680
+ if (value !== undefined)
681
+ reflectionMergePartial<TimeSeriesResponse>(this, message, value);
682
+ return message;
683
+ }
684
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimeSeriesResponse): TimeSeriesResponse {
685
+ let message = target ?? this.create(), end = reader.pos + length;
686
+ while (reader.pos < end) {
687
+ let [fieldNo, wireType] = reader.tag();
688
+ switch (fieldNo) {
689
+ case /* repeated sid.v1.admin.TimeSeries series */ 1:
690
+ message.series.push(TimeSeries.internalBinaryRead(reader, reader.uint32(), options));
691
+ break;
692
+ default:
693
+ let u = options.readUnknownField;
694
+ if (u === "throw")
695
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
696
+ let d = reader.skip(wireType);
697
+ if (u !== false)
698
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
699
+ }
700
+ }
701
+ return message;
702
+ }
703
+ internalBinaryWrite(message: TimeSeriesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
704
+ /* repeated sid.v1.admin.TimeSeries series = 1; */
705
+ for (let i = 0; i < message.series.length; i++)
706
+ TimeSeries.internalBinaryWrite(message.series[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
707
+ let u = options.writeUnknownFields;
708
+ if (u !== false)
709
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
710
+ return writer;
711
+ }
712
+ }
713
+ /**
714
+ * @generated MessageType for protobuf message sid.v1.admin.TimeSeriesResponse
715
+ */
716
+ export const TimeSeriesResponse = new TimeSeriesResponse$Type();
717
+ // @generated message type with reflection information, may provide speed optimized methods
718
+ class TopApplicationsRequest$Type extends MessageType<TopApplicationsRequest> {
719
+ constructor() {
720
+ super("sid.v1.admin.TopApplicationsRequest", [
721
+ { no: 1, name: "period", kind: "enum", T: () => ["sid.v1.admin.AnalyticsPeriod", AnalyticsPeriod] },
722
+ { no: 2, name: "limit", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }
723
+ ]);
724
+ }
725
+ create(value?: PartialMessage<TopApplicationsRequest>): TopApplicationsRequest {
726
+ const message = globalThis.Object.create((this.messagePrototype!));
727
+ message.period = 0;
728
+ message.limit = 0;
729
+ if (value !== undefined)
730
+ reflectionMergePartial<TopApplicationsRequest>(this, message, value);
731
+ return message;
732
+ }
733
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TopApplicationsRequest): TopApplicationsRequest {
734
+ let message = target ?? this.create(), end = reader.pos + length;
735
+ while (reader.pos < end) {
736
+ let [fieldNo, wireType] = reader.tag();
737
+ switch (fieldNo) {
738
+ case /* sid.v1.admin.AnalyticsPeriod period */ 1:
739
+ message.period = reader.int32();
740
+ break;
741
+ case /* uint32 limit */ 2:
742
+ message.limit = reader.uint32();
743
+ break;
744
+ default:
745
+ let u = options.readUnknownField;
746
+ if (u === "throw")
747
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
748
+ let d = reader.skip(wireType);
749
+ if (u !== false)
750
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
751
+ }
752
+ }
753
+ return message;
754
+ }
755
+ internalBinaryWrite(message: TopApplicationsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
756
+ /* sid.v1.admin.AnalyticsPeriod period = 1; */
757
+ if (message.period !== 0)
758
+ writer.tag(1, WireType.Varint).int32(message.period);
759
+ /* uint32 limit = 2; */
760
+ if (message.limit !== 0)
761
+ writer.tag(2, WireType.Varint).uint32(message.limit);
762
+ let u = options.writeUnknownFields;
763
+ if (u !== false)
764
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
765
+ return writer;
766
+ }
767
+ }
768
+ /**
769
+ * @generated MessageType for protobuf message sid.v1.admin.TopApplicationsRequest
770
+ */
771
+ export const TopApplicationsRequest = new TopApplicationsRequest$Type();
772
+ // @generated message type with reflection information, may provide speed optimized methods
773
+ class ApplicationMetric$Type extends MessageType<ApplicationMetric> {
774
+ constructor() {
775
+ super("sid.v1.admin.ApplicationMetric", [
776
+ { no: 1, name: "client_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
777
+ { no: 2, name: "application_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
778
+ { no: 3, name: "login_count", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }
779
+ ]);
780
+ }
781
+ create(value?: PartialMessage<ApplicationMetric>): ApplicationMetric {
782
+ const message = globalThis.Object.create((this.messagePrototype!));
783
+ message.clientId = "";
784
+ message.applicationName = "";
785
+ message.loginCount = 0n;
786
+ if (value !== undefined)
787
+ reflectionMergePartial<ApplicationMetric>(this, message, value);
788
+ return message;
789
+ }
790
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ApplicationMetric): ApplicationMetric {
791
+ let message = target ?? this.create(), end = reader.pos + length;
792
+ while (reader.pos < end) {
793
+ let [fieldNo, wireType] = reader.tag();
794
+ switch (fieldNo) {
795
+ case /* string client_id */ 1:
796
+ message.clientId = reader.string();
797
+ break;
798
+ case /* string application_name */ 2:
799
+ message.applicationName = reader.string();
800
+ break;
801
+ case /* uint64 login_count */ 3:
802
+ message.loginCount = reader.uint64().toBigInt();
803
+ break;
804
+ default:
805
+ let u = options.readUnknownField;
806
+ if (u === "throw")
807
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
808
+ let d = reader.skip(wireType);
809
+ if (u !== false)
810
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
811
+ }
812
+ }
813
+ return message;
814
+ }
815
+ internalBinaryWrite(message: ApplicationMetric, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
816
+ /* string client_id = 1; */
817
+ if (message.clientId !== "")
818
+ writer.tag(1, WireType.LengthDelimited).string(message.clientId);
819
+ /* string application_name = 2; */
820
+ if (message.applicationName !== "")
821
+ writer.tag(2, WireType.LengthDelimited).string(message.applicationName);
822
+ /* uint64 login_count = 3; */
823
+ if (message.loginCount !== 0n)
824
+ writer.tag(3, WireType.Varint).uint64(message.loginCount);
825
+ let u = options.writeUnknownFields;
826
+ if (u !== false)
827
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
828
+ return writer;
829
+ }
830
+ }
831
+ /**
832
+ * @generated MessageType for protobuf message sid.v1.admin.ApplicationMetric
833
+ */
834
+ export const ApplicationMetric = new ApplicationMetric$Type();
835
+ // @generated message type with reflection information, may provide speed optimized methods
836
+ class TopApplicationsResponse$Type extends MessageType<TopApplicationsResponse> {
837
+ constructor() {
838
+ super("sid.v1.admin.TopApplicationsResponse", [
839
+ { no: 1, name: "applications", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => ApplicationMetric }
840
+ ]);
841
+ }
842
+ create(value?: PartialMessage<TopApplicationsResponse>): TopApplicationsResponse {
843
+ const message = globalThis.Object.create((this.messagePrototype!));
844
+ message.applications = [];
845
+ if (value !== undefined)
846
+ reflectionMergePartial<TopApplicationsResponse>(this, message, value);
847
+ return message;
848
+ }
849
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TopApplicationsResponse): TopApplicationsResponse {
850
+ let message = target ?? this.create(), end = reader.pos + length;
851
+ while (reader.pos < end) {
852
+ let [fieldNo, wireType] = reader.tag();
853
+ switch (fieldNo) {
854
+ case /* repeated sid.v1.admin.ApplicationMetric applications */ 1:
855
+ message.applications.push(ApplicationMetric.internalBinaryRead(reader, reader.uint32(), options));
856
+ break;
857
+ default:
858
+ let u = options.readUnknownField;
859
+ if (u === "throw")
860
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
861
+ let d = reader.skip(wireType);
862
+ if (u !== false)
863
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
864
+ }
865
+ }
866
+ return message;
867
+ }
868
+ internalBinaryWrite(message: TopApplicationsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
869
+ /* repeated sid.v1.admin.ApplicationMetric applications = 1; */
870
+ for (let i = 0; i < message.applications.length; i++)
871
+ ApplicationMetric.internalBinaryWrite(message.applications[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
872
+ let u = options.writeUnknownFields;
873
+ if (u !== false)
874
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
875
+ return writer;
876
+ }
877
+ }
878
+ /**
879
+ * @generated MessageType for protobuf message sid.v1.admin.TopApplicationsResponse
880
+ */
881
+ export const TopApplicationsResponse = new TopApplicationsResponse$Type();
882
+ // @generated message type with reflection information, may provide speed optimized methods
883
+ class DistributionSlice$Type extends MessageType<DistributionSlice> {
884
+ constructor() {
885
+ super("sid.v1.admin.DistributionSlice", [
886
+ { no: 1, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
887
+ { no: 2, name: "value", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
888
+ { no: 3, name: "percentage", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
889
+ { no: 4, name: "color", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
890
+ ]);
891
+ }
892
+ create(value?: PartialMessage<DistributionSlice>): DistributionSlice {
893
+ const message = globalThis.Object.create((this.messagePrototype!));
894
+ message.label = "";
895
+ message.value = 0;
896
+ message.percentage = 0;
897
+ message.color = "";
898
+ if (value !== undefined)
899
+ reflectionMergePartial<DistributionSlice>(this, message, value);
900
+ return message;
901
+ }
902
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DistributionSlice): DistributionSlice {
903
+ let message = target ?? this.create(), end = reader.pos + length;
904
+ while (reader.pos < end) {
905
+ let [fieldNo, wireType] = reader.tag();
906
+ switch (fieldNo) {
907
+ case /* string label */ 1:
908
+ message.label = reader.string();
909
+ break;
910
+ case /* double value */ 2:
911
+ message.value = reader.double();
912
+ break;
913
+ case /* double percentage */ 3:
914
+ message.percentage = reader.double();
915
+ break;
916
+ case /* string color */ 4:
917
+ message.color = reader.string();
918
+ break;
919
+ default:
920
+ let u = options.readUnknownField;
921
+ if (u === "throw")
922
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
923
+ let d = reader.skip(wireType);
924
+ if (u !== false)
925
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
926
+ }
927
+ }
928
+ return message;
929
+ }
930
+ internalBinaryWrite(message: DistributionSlice, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
931
+ /* string label = 1; */
932
+ if (message.label !== "")
933
+ writer.tag(1, WireType.LengthDelimited).string(message.label);
934
+ /* double value = 2; */
935
+ if (message.value !== 0)
936
+ writer.tag(2, WireType.Bit64).double(message.value);
937
+ /* double percentage = 3; */
938
+ if (message.percentage !== 0)
939
+ writer.tag(3, WireType.Bit64).double(message.percentage);
940
+ /* string color = 4; */
941
+ if (message.color !== "")
942
+ writer.tag(4, WireType.LengthDelimited).string(message.color);
943
+ let u = options.writeUnknownFields;
944
+ if (u !== false)
945
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
946
+ return writer;
947
+ }
948
+ }
949
+ /**
950
+ * @generated MessageType for protobuf message sid.v1.admin.DistributionSlice
951
+ */
952
+ export const DistributionSlice = new DistributionSlice$Type();
953
+ // @generated message type with reflection information, may provide speed optimized methods
954
+ class DistributionResponse$Type extends MessageType<DistributionResponse> {
955
+ constructor() {
956
+ super("sid.v1.admin.DistributionResponse", [
957
+ { no: 1, name: "slices", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => DistributionSlice },
958
+ { no: 2, name: "total", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }
959
+ ]);
960
+ }
961
+ create(value?: PartialMessage<DistributionResponse>): DistributionResponse {
962
+ const message = globalThis.Object.create((this.messagePrototype!));
963
+ message.slices = [];
964
+ message.total = 0;
965
+ if (value !== undefined)
966
+ reflectionMergePartial<DistributionResponse>(this, message, value);
967
+ return message;
968
+ }
969
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DistributionResponse): DistributionResponse {
970
+ let message = target ?? this.create(), end = reader.pos + length;
971
+ while (reader.pos < end) {
972
+ let [fieldNo, wireType] = reader.tag();
973
+ switch (fieldNo) {
974
+ case /* repeated sid.v1.admin.DistributionSlice slices */ 1:
975
+ message.slices.push(DistributionSlice.internalBinaryRead(reader, reader.uint32(), options));
976
+ break;
977
+ case /* double total */ 2:
978
+ message.total = reader.double();
979
+ break;
980
+ default:
981
+ let u = options.readUnknownField;
982
+ if (u === "throw")
983
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
984
+ let d = reader.skip(wireType);
985
+ if (u !== false)
986
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
987
+ }
988
+ }
989
+ return message;
990
+ }
991
+ internalBinaryWrite(message: DistributionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
992
+ /* repeated sid.v1.admin.DistributionSlice slices = 1; */
993
+ for (let i = 0; i < message.slices.length; i++)
994
+ DistributionSlice.internalBinaryWrite(message.slices[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
995
+ /* double total = 2; */
996
+ if (message.total !== 0)
997
+ writer.tag(2, WireType.Bit64).double(message.total);
998
+ let u = options.writeUnknownFields;
999
+ if (u !== false)
1000
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1001
+ return writer;
1002
+ }
1003
+ }
1004
+ /**
1005
+ * @generated MessageType for protobuf message sid.v1.admin.DistributionResponse
1006
+ */
1007
+ export const DistributionResponse = new DistributionResponse$Type();
1008
+ /**
1009
+ * @generated ServiceType for protobuf service sid.v1.admin.AnalyticsService
1010
+ */
1011
+ export const AnalyticsService = new ServiceType("sid.v1.admin.AnalyticsService", [
1012
+ { name: "GetOverviewMetrics", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/analytics/overview" } }, I: GetOverviewMetricsRequest, O: OverviewMetricsResponse },
1013
+ { name: "GetAuthActivity", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/analytics/auth-activity" } }, I: TimeSeriesRequest, O: TimeSeriesResponse },
1014
+ { name: "GetAuthLatency", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/analytics/auth-latency" } }, I: TimeSeriesRequest, O: TimeSeriesResponse },
1015
+ { name: "GetTopApplications", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/analytics/top-applications" } }, I: TopApplicationsRequest, O: TopApplicationsResponse },
1016
+ { name: "GetAuthMethodDistribution", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/analytics/auth-methods" } }, I: TimeSeriesRequest, O: DistributionResponse }
1017
+ ]);