sa2kit 1.6.8 → 1.6.9

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 (125) hide show
  1. package/dist/calendar/index.js +10 -8
  2. package/dist/calendar/index.js.map +1 -1
  3. package/dist/calendar/index.mjs +3 -1
  4. package/dist/calendar/index.mjs.map +1 -1
  5. package/dist/calendar/routes/index.js +21 -21
  6. package/dist/calendar/routes/index.mjs +1 -1
  7. package/dist/calendar/server.js +13 -13
  8. package/dist/calendar/server.mjs +2 -2
  9. package/dist/{chunk-VHU2YGRQ.mjs → chunk-4FOBBWXW.mjs} +25 -11
  10. package/dist/chunk-4FOBBWXW.mjs.map +1 -0
  11. package/dist/{chunk-ZDRBMSTS.js → chunk-G6WRJ2H2.js} +25 -11
  12. package/dist/chunk-G6WRJ2H2.js.map +1 -0
  13. package/dist/{chunk-6WXOA4BE.mjs → chunk-GVVS4IMM.mjs} +2 -2
  14. package/dist/chunk-GVVS4IMM.mjs.map +1 -0
  15. package/dist/{chunk-AXP7KROR.js → chunk-WC5QFO3T.js} +2 -2
  16. package/dist/chunk-WC5QFO3T.js.map +1 -0
  17. package/dist/index.js +5 -5
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +2 -2
  20. package/dist/index.mjs.map +1 -1
  21. package/package.json +41 -7
  22. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  23. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  24. package/dist/UniversalFileService-BuHN-jrR.d.ts +0 -515
  25. package/dist/UniversalFileService-CGGzYeeF.d.mts +0 -515
  26. package/dist/analytics/index.d.mts +0 -1084
  27. package/dist/analytics/index.d.ts +0 -1084
  28. package/dist/analytics/server/index.d.mts +0 -499
  29. package/dist/analytics/server/index.d.ts +0 -499
  30. package/dist/api/index.d.mts +0 -248
  31. package/dist/api/index.d.ts +0 -248
  32. package/dist/audioDetection/index.d.mts +0 -449
  33. package/dist/audioDetection/index.d.ts +0 -449
  34. package/dist/auth/client/index.d.mts +0 -153
  35. package/dist/auth/client/index.d.ts +0 -153
  36. package/dist/auth/components/index.d.mts +0 -227
  37. package/dist/auth/components/index.d.ts +0 -227
  38. package/dist/auth/hooks/index.d.mts +0 -31
  39. package/dist/auth/hooks/index.d.ts +0 -31
  40. package/dist/auth/index.d.mts +0 -40
  41. package/dist/auth/index.d.ts +0 -40
  42. package/dist/auth/middleware/index.d.mts +0 -75
  43. package/dist/auth/middleware/index.d.ts +0 -75
  44. package/dist/auth/routes/index.d.mts +0 -261
  45. package/dist/auth/routes/index.d.ts +0 -261
  46. package/dist/auth/schema/index.d.mts +0 -789
  47. package/dist/auth/schema/index.d.ts +0 -789
  48. package/dist/auth/services/index.d.mts +0 -48
  49. package/dist/auth/services/index.d.ts +0 -48
  50. package/dist/calendar/index.d.mts +0 -1197
  51. package/dist/calendar/index.d.ts +0 -1197
  52. package/dist/calendar/routes/index.d.mts +0 -118
  53. package/dist/calendar/routes/index.d.ts +0 -118
  54. package/dist/calendar/server.d.mts +0 -1184
  55. package/dist/calendar/server.d.ts +0 -1184
  56. package/dist/chunk-6WXOA4BE.mjs.map +0 -1
  57. package/dist/chunk-AXP7KROR.js.map +0 -1
  58. package/dist/chunk-VHU2YGRQ.mjs.map +0 -1
  59. package/dist/chunk-ZDRBMSTS.js.map +0 -1
  60. package/dist/config/index.d.mts +0 -64
  61. package/dist/config/index.d.ts +0 -64
  62. package/dist/config/server/index.d.mts +0 -1533
  63. package/dist/config/server/index.d.ts +0 -1533
  64. package/dist/drizzle-auth-service-Bxlovhv8.d.ts +0 -145
  65. package/dist/drizzle-auth-service-DZY2F1sv.d.mts +0 -145
  66. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  67. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  68. package/dist/enums-Dume-V5Y.d.mts +0 -16
  69. package/dist/enums-Dume-V5Y.d.ts +0 -16
  70. package/dist/i18n/index.d.mts +0 -417
  71. package/dist/i18n/index.d.ts +0 -417
  72. package/dist/imageCrop/index.d.mts +0 -165
  73. package/dist/imageCrop/index.d.ts +0 -165
  74. package/dist/index-DSel44Ke.d.mts +0 -93
  75. package/dist/index-DSel44Ke.d.ts +0 -93
  76. package/dist/index.d.mts +0 -693
  77. package/dist/index.d.ts +0 -693
  78. package/dist/logger/index.d.mts +0 -125
  79. package/dist/logger/index.d.ts +0 -125
  80. package/dist/mmd/admin/index.d.mts +0 -487
  81. package/dist/mmd/admin/index.d.ts +0 -487
  82. package/dist/mmd/index.d.mts +0 -599
  83. package/dist/mmd/index.d.ts +0 -599
  84. package/dist/mmd/server/index.d.mts +0 -138
  85. package/dist/mmd/server/index.d.ts +0 -138
  86. package/dist/music/index.d.mts +0 -74
  87. package/dist/music/index.d.ts +0 -74
  88. package/dist/music/server/index.d.mts +0 -1
  89. package/dist/music/server/index.d.ts +0 -1
  90. package/dist/request/index.d.mts +0 -51
  91. package/dist/request/index.d.ts +0 -51
  92. package/dist/storage/index.d.mts +0 -75
  93. package/dist/storage/index.d.ts +0 -75
  94. package/dist/testYourself/admin/index.d.mts +0 -58
  95. package/dist/testYourself/admin/index.d.ts +0 -58
  96. package/dist/testYourself/index.d.mts +0 -53
  97. package/dist/testYourself/index.d.ts +0 -53
  98. package/dist/testYourself/server/index.d.mts +0 -1029
  99. package/dist/testYourself/server/index.d.ts +0 -1029
  100. package/dist/types-B60F7EZZ.d.mts +0 -248
  101. package/dist/types-B60F7EZZ.d.ts +0 -248
  102. package/dist/types-BINlP9MK.d.mts +0 -286
  103. package/dist/types-BINlP9MK.d.ts +0 -286
  104. package/dist/types-BaZccpvk.d.mts +0 -48
  105. package/dist/types-BaZccpvk.d.ts +0 -48
  106. package/dist/types-CK4We_aI.d.mts +0 -270
  107. package/dist/types-CK4We_aI.d.ts +0 -270
  108. package/dist/types-CbTsi9CZ.d.mts +0 -31
  109. package/dist/types-CbTsi9CZ.d.ts +0 -31
  110. package/dist/types-CroexXnI.d.ts +0 -99
  111. package/dist/types-DmsXCWvm.d.mts +0 -99
  112. package/dist/types-Dt0oqeFM.d.mts +0 -70
  113. package/dist/types-zK6kDzDQ.d.ts +0 -70
  114. package/dist/universalExport/index.d.mts +0 -235
  115. package/dist/universalExport/index.d.ts +0 -235
  116. package/dist/universalExport/server/index.d.mts +0 -1270
  117. package/dist/universalExport/server/index.d.ts +0 -1270
  118. package/dist/universalFile/index.d.mts +0 -480
  119. package/dist/universalFile/index.d.ts +0 -480
  120. package/dist/universalFile/server/index.d.mts +0 -4516
  121. package/dist/universalFile/server/index.d.ts +0 -4516
  122. package/dist/useElectronStorage-Dj0rcorG.d.mts +0 -65
  123. package/dist/useElectronStorage-DwnNfIhl.d.ts +0 -65
  124. package/dist/utils/index.d.mts +0 -192
  125. package/dist/utils/index.d.ts +0 -192
@@ -1,499 +0,0 @@
1
- import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
-
3
- /**
4
- * 埋点系统数据库 Schema
5
- * Analytics Database Schema
6
- *
7
- * 使用方式:
8
- * 在 backend/drizzle/migrations/schema.ts 中导入并导出:
9
- * export { analyticsEvents } from '@lyricnote/shared/analytics/server/schema'
10
- */
11
- /**
12
- * 埋点事件表
13
- */
14
- declare const analyticsEvents: drizzle_orm_pg_core.PgTableWithColumns<{
15
- name: "analytics_events";
16
- schema: undefined;
17
- columns: {
18
- id: drizzle_orm_pg_core.PgColumn<{
19
- name: "id";
20
- tableName: "analytics_events";
21
- dataType: "string";
22
- columnType: "PgText";
23
- data: string;
24
- driverParam: string;
25
- notNull: true;
26
- hasDefault: false;
27
- isPrimaryKey: true;
28
- isAutoincrement: false;
29
- hasRuntimeDefault: false;
30
- enumValues: [string, ...string[]];
31
- baseColumn: never;
32
- identity: undefined;
33
- generated: undefined;
34
- }, {}, {}>;
35
- eventType: drizzle_orm_pg_core.PgColumn<{
36
- name: "event_type";
37
- tableName: "analytics_events";
38
- dataType: "string";
39
- columnType: "PgText";
40
- data: string;
41
- driverParam: string;
42
- notNull: true;
43
- hasDefault: false;
44
- isPrimaryKey: false;
45
- isAutoincrement: false;
46
- hasRuntimeDefault: false;
47
- enumValues: [string, ...string[]];
48
- baseColumn: never;
49
- identity: undefined;
50
- generated: undefined;
51
- }, {}, {}>;
52
- eventName: drizzle_orm_pg_core.PgColumn<{
53
- name: "event_name";
54
- tableName: "analytics_events";
55
- dataType: "string";
56
- columnType: "PgText";
57
- data: string;
58
- driverParam: string;
59
- notNull: true;
60
- hasDefault: false;
61
- isPrimaryKey: false;
62
- isAutoincrement: false;
63
- hasRuntimeDefault: false;
64
- enumValues: [string, ...string[]];
65
- baseColumn: never;
66
- identity: undefined;
67
- generated: undefined;
68
- }, {}, {}>;
69
- timestamp: drizzle_orm_pg_core.PgColumn<{
70
- name: "timestamp";
71
- tableName: "analytics_events";
72
- dataType: "string";
73
- columnType: "PgTimestampString";
74
- data: string;
75
- driverParam: string;
76
- notNull: true;
77
- hasDefault: false;
78
- isPrimaryKey: false;
79
- isAutoincrement: false;
80
- hasRuntimeDefault: false;
81
- enumValues: undefined;
82
- baseColumn: never;
83
- identity: undefined;
84
- generated: undefined;
85
- }, {}, {}>;
86
- priority: drizzle_orm_pg_core.PgColumn<{
87
- name: "priority";
88
- tableName: "analytics_events";
89
- dataType: "number";
90
- columnType: "PgInteger";
91
- data: number;
92
- driverParam: string | number;
93
- notNull: true;
94
- hasDefault: false;
95
- isPrimaryKey: false;
96
- isAutoincrement: false;
97
- hasRuntimeDefault: false;
98
- enumValues: undefined;
99
- baseColumn: never;
100
- identity: undefined;
101
- generated: undefined;
102
- }, {}, {}>;
103
- userId: drizzle_orm_pg_core.PgColumn<{
104
- name: "user_id";
105
- tableName: "analytics_events";
106
- dataType: "string";
107
- columnType: "PgText";
108
- data: string;
109
- driverParam: string;
110
- notNull: false;
111
- hasDefault: false;
112
- isPrimaryKey: false;
113
- isAutoincrement: false;
114
- hasRuntimeDefault: false;
115
- enumValues: [string, ...string[]];
116
- baseColumn: never;
117
- identity: undefined;
118
- generated: undefined;
119
- }, {}, {}>;
120
- sessionId: drizzle_orm_pg_core.PgColumn<{
121
- name: "session_id";
122
- tableName: "analytics_events";
123
- dataType: "string";
124
- columnType: "PgText";
125
- data: string;
126
- driverParam: string;
127
- notNull: true;
128
- hasDefault: false;
129
- isPrimaryKey: false;
130
- isAutoincrement: false;
131
- hasRuntimeDefault: false;
132
- enumValues: [string, ...string[]];
133
- baseColumn: never;
134
- identity: undefined;
135
- generated: undefined;
136
- }, {}, {}>;
137
- deviceId: drizzle_orm_pg_core.PgColumn<{
138
- name: "device_id";
139
- tableName: "analytics_events";
140
- dataType: "string";
141
- columnType: "PgText";
142
- data: string;
143
- driverParam: string;
144
- notNull: true;
145
- hasDefault: false;
146
- isPrimaryKey: false;
147
- isAutoincrement: false;
148
- hasRuntimeDefault: false;
149
- enumValues: [string, ...string[]];
150
- baseColumn: never;
151
- identity: undefined;
152
- generated: undefined;
153
- }, {}, {}>;
154
- pageUrl: drizzle_orm_pg_core.PgColumn<{
155
- name: "page_url";
156
- tableName: "analytics_events";
157
- dataType: "string";
158
- columnType: "PgText";
159
- data: string;
160
- driverParam: string;
161
- notNull: false;
162
- hasDefault: false;
163
- isPrimaryKey: false;
164
- isAutoincrement: false;
165
- hasRuntimeDefault: false;
166
- enumValues: [string, ...string[]];
167
- baseColumn: never;
168
- identity: undefined;
169
- generated: undefined;
170
- }, {}, {}>;
171
- pageTitle: drizzle_orm_pg_core.PgColumn<{
172
- name: "page_title";
173
- tableName: "analytics_events";
174
- dataType: "string";
175
- columnType: "PgText";
176
- data: string;
177
- driverParam: string;
178
- notNull: false;
179
- hasDefault: false;
180
- isPrimaryKey: false;
181
- isAutoincrement: false;
182
- hasRuntimeDefault: false;
183
- enumValues: [string, ...string[]];
184
- baseColumn: never;
185
- identity: undefined;
186
- generated: undefined;
187
- }, {}, {}>;
188
- referrer: drizzle_orm_pg_core.PgColumn<{
189
- name: "referrer";
190
- tableName: "analytics_events";
191
- dataType: "string";
192
- columnType: "PgText";
193
- data: string;
194
- driverParam: string;
195
- notNull: false;
196
- hasDefault: false;
197
- isPrimaryKey: false;
198
- isAutoincrement: false;
199
- hasRuntimeDefault: false;
200
- enumValues: [string, ...string[]];
201
- baseColumn: never;
202
- identity: undefined;
203
- generated: undefined;
204
- }, {}, {}>;
205
- properties: drizzle_orm_pg_core.PgColumn<{
206
- name: "properties";
207
- tableName: "analytics_events";
208
- dataType: "json";
209
- columnType: "PgJsonb";
210
- data: unknown;
211
- driverParam: unknown;
212
- notNull: false;
213
- hasDefault: false;
214
- isPrimaryKey: false;
215
- isAutoincrement: false;
216
- hasRuntimeDefault: false;
217
- enumValues: undefined;
218
- baseColumn: never;
219
- identity: undefined;
220
- generated: undefined;
221
- }, {}, {}>;
222
- platform: drizzle_orm_pg_core.PgColumn<{
223
- name: "platform";
224
- tableName: "analytics_events";
225
- dataType: "string";
226
- columnType: "PgText";
227
- data: string;
228
- driverParam: string;
229
- notNull: true;
230
- hasDefault: false;
231
- isPrimaryKey: false;
232
- isAutoincrement: false;
233
- hasRuntimeDefault: false;
234
- enumValues: [string, ...string[]];
235
- baseColumn: never;
236
- identity: undefined;
237
- generated: undefined;
238
- }, {}, {}>;
239
- appVersion: drizzle_orm_pg_core.PgColumn<{
240
- name: "app_version";
241
- tableName: "analytics_events";
242
- dataType: "string";
243
- columnType: "PgText";
244
- data: string;
245
- driverParam: string;
246
- notNull: true;
247
- hasDefault: false;
248
- isPrimaryKey: false;
249
- isAutoincrement: false;
250
- hasRuntimeDefault: false;
251
- enumValues: [string, ...string[]];
252
- baseColumn: never;
253
- identity: undefined;
254
- generated: undefined;
255
- }, {}, {}>;
256
- sdkVersion: drizzle_orm_pg_core.PgColumn<{
257
- name: "sdk_version";
258
- tableName: "analytics_events";
259
- dataType: "string";
260
- columnType: "PgText";
261
- data: string;
262
- driverParam: string;
263
- notNull: true;
264
- hasDefault: false;
265
- isPrimaryKey: false;
266
- isAutoincrement: false;
267
- hasRuntimeDefault: false;
268
- enumValues: [string, ...string[]];
269
- baseColumn: never;
270
- identity: undefined;
271
- generated: undefined;
272
- }, {}, {}>;
273
- createdAt: drizzle_orm_pg_core.PgColumn<{
274
- name: "createdAt";
275
- tableName: "analytics_events";
276
- dataType: "string";
277
- columnType: "PgTimestampString";
278
- data: string;
279
- driverParam: string;
280
- notNull: true;
281
- hasDefault: true;
282
- isPrimaryKey: false;
283
- isAutoincrement: false;
284
- hasRuntimeDefault: false;
285
- enumValues: undefined;
286
- baseColumn: never;
287
- identity: undefined;
288
- generated: undefined;
289
- }, {}, {}>;
290
- };
291
- dialect: "pg";
292
- }>;
293
-
294
- /**
295
- * 服务端类型定义
296
- * Server-side Types
297
- */
298
- interface AnalyticsEvent {
299
- id: string;
300
- eventType: string;
301
- eventName: string;
302
- timestamp: string;
303
- priority: number;
304
- userId?: string | null;
305
- sessionId: string;
306
- deviceId: string;
307
- pageUrl?: string | null;
308
- pageTitle?: string | null;
309
- referrer?: string | null;
310
- properties?: any;
311
- platform: string;
312
- appVersion: string;
313
- sdkVersion: string;
314
- }
315
- interface AnalyticsQueryParams {
316
- startDate?: string;
317
- endDate?: string;
318
- eventType?: string;
319
- eventTypes?: string[];
320
- userId?: string;
321
- platform?: string;
322
- platforms?: string[];
323
- sessionId?: string;
324
- limit?: number;
325
- offset?: number;
326
- orderBy?: 'timestamp' | 'eventType' | 'platform';
327
- orderDirection?: 'asc' | 'desc';
328
- }
329
- interface AnalyticsStats {
330
- totalEvents: number;
331
- uniqueUsers: number;
332
- uniqueSessions: number;
333
- uniqueDevices: number;
334
- eventsByType: {
335
- eventType: string;
336
- count: number;
337
- }[];
338
- eventsByPlatform: {
339
- platform: string;
340
- count: number;
341
- }[];
342
- topPages: {
343
- pageUrl: string;
344
- count: number;
345
- }[];
346
- }
347
- interface UserBehavior {
348
- userId: string;
349
- eventCount: number;
350
- lastActive: string;
351
- platforms: string[];
352
- topEvents: {
353
- eventType: string;
354
- count: number;
355
- }[];
356
- }
357
- interface SessionAnalytics {
358
- sessionId: string;
359
- userId?: string;
360
- deviceId: string;
361
- platform: string;
362
- startTime: string;
363
- endTime: string;
364
- duration: number;
365
- eventCount: number;
366
- events: AnalyticsEvent[];
367
- }
368
- interface DatabaseInstance {
369
- select: (...args: any[]) => any;
370
- insert: (...args: any[]) => any;
371
- delete: (...args: any[]) => any;
372
- }
373
-
374
- /**
375
- * 埋点分析服务
376
- * Analytics Service
377
- *
378
- * 使用方式:
379
- * import { createAnalyticsService } from '@lyricnote/shared/analytics/server'
380
- * const service = createAnalyticsService(db, analyticsEvents, logger)
381
- */
382
-
383
- interface Logger {
384
- info: (message: string, data?: any) => void;
385
- error: (message: string, error: Error) => void;
386
- }
387
- /**
388
- * 创建埋点服务实例
389
- * @param db - Drizzle 数据库实例
390
- * @param analyticsEventsTable - analytics_events 表定义
391
- * @param logger - 日志实例(可选)
392
- */
393
- declare function createAnalyticsService(db: DatabaseInstance, analyticsEventsTable: any, logger?: Logger): {
394
- /**
395
- * 批量插入埋点事件
396
- */
397
- insertAnalyticsEvents(events: AnalyticsEvent[]): Promise<void>;
398
- /**
399
- * 查询埋点事件
400
- */
401
- queryAnalyticsEvents(params: AnalyticsQueryParams): Promise<{
402
- events: AnalyticsEvent[];
403
- total: number;
404
- }>;
405
- /**
406
- * 获取统计数据
407
- */
408
- getAnalyticsStats(startDate?: string, endDate?: string, platform?: string): Promise<AnalyticsStats>;
409
- /**
410
- * 获取用户行为分析
411
- */
412
- getUserBehavior(userId: string, startDate?: string, endDate?: string): Promise<UserBehavior | null>;
413
- /**
414
- * 获取会话分析
415
- */
416
- getSessionAnalytics(sessionId: string): Promise<SessionAnalytics | null>;
417
- /**
418
- * 获取漏斗分析
419
- */
420
- getFunnelAnalysis(steps: string[], startDate?: string, endDate?: string): Promise<{
421
- step: string;
422
- count: number;
423
- conversionRate: number;
424
- }[]>;
425
- /**
426
- * 删除旧数据(数据清理)
427
- */
428
- cleanOldAnalyticsEvents(daysToKeep?: number): Promise<number>;
429
- };
430
-
431
- /**
432
- * 埋点 API 路由处理器
433
- * Analytics API Route Handlers
434
- *
435
- * 使用方式(Next.js):
436
- * import { createAnalyticsHandlers } from '@lyricnote/shared/analytics/server'
437
- * const handlers = createAnalyticsHandlers(analyticsService)
438
- * export const POST = handlers.handleEventsPost
439
- */
440
-
441
- interface AnalyticsService {
442
- insertAnalyticsEvents: (events: AnalyticsEvent[]) => Promise<void>;
443
- queryAnalyticsEvents: (params: AnalyticsQueryParams) => Promise<{
444
- events: AnalyticsEvent[];
445
- total: number;
446
- }>;
447
- getAnalyticsStats: (startDate?: string, endDate?: string, platform?: string) => Promise<any>;
448
- getUserBehavior: (userId: string, startDate?: string, endDate?: string) => Promise<any>;
449
- getSessionAnalytics: (sessionId: string) => Promise<any>;
450
- getFunnelAnalysis: (steps: string[], startDate?: string, endDate?: string) => Promise<any>;
451
- }
452
- interface Request {
453
- json: () => Promise<any>;
454
- url?: string;
455
- nextUrl?: {
456
- searchParams: URLSearchParams;
457
- };
458
- }
459
- /**
460
- * 创建埋点 API 处理器
461
- */
462
- declare function createAnalyticsHandlers(service: AnalyticsService, ResponseClass?: any): {
463
- /**
464
- * POST /api/analytics/events
465
- * 处理事件上报
466
- */
467
- handleEventsPost(request: Request): Promise<any>;
468
- /**
469
- * GET /api/analytics/query
470
- * 查询埋点事件
471
- */
472
- handleQueryGet(request: Request): Promise<any>;
473
- /**
474
- * GET /api/analytics/stats
475
- * 获取统计数据
476
- */
477
- handleStatsGet(request: Request): Promise<any>;
478
- /**
479
- * GET /api/analytics/user/[userId]
480
- * 获取用户行为分析
481
- */
482
- handleUserBehaviorGet(request: Request, params: {
483
- userId: string;
484
- }): Promise<any>;
485
- /**
486
- * GET /api/analytics/session/[sessionId]
487
- * 获取会话分析
488
- */
489
- handleSessionAnalyticsGet(_request: Request, params: {
490
- sessionId: string;
491
- }): Promise<any>;
492
- /**
493
- * POST /api/analytics/funnel
494
- * 漏斗分析
495
- */
496
- handleFunnelPost(request: Request): Promise<any>;
497
- };
498
-
499
- export { type AnalyticsEvent, type AnalyticsQueryParams, type AnalyticsStats, type DatabaseInstance, type SessionAnalytics, type UserBehavior, analyticsEvents, createAnalyticsHandlers, createAnalyticsService };