@timeback/sdk 0.1.8 → 0.1.10
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.
- package/README.md +6 -6
- package/dist/chunk-3mqpr9vx.js +2 -0
- package/dist/chunk-92nnwa7t.js +2 -0
- package/dist/{chunk-ewsp6v3b.js → chunk-af3xwwsv.js} +5 -5
- package/dist/{chunk-07j8zre9.js → chunk-b8649tw4.js} +1 -1
- package/dist/{chunk-3886xy48.js → chunk-bd09q1fw.js} +6 -6
- package/dist/chunk-js665z11.js +1 -0
- package/dist/chunk-nsr7a2dv.js +2 -0
- package/dist/chunk-sgcwg4j6.js +1 -0
- package/dist/{chunk-9se82640.js → chunk-txwjkpfz.js} +1 -1
- package/dist/client/adapters/react/hooks/types.d.ts +34 -27
- package/dist/client/adapters/react/hooks/types.d.ts.map +1 -1
- package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts +17 -5
- package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts.map +1 -1
- package/dist/client/adapters/react/index.d.ts +1 -1
- package/dist/client/adapters/react/index.d.ts.map +1 -1
- package/dist/client/adapters/react/index.js +2 -2
- package/dist/client/adapters/react/provider.d.ts.map +1 -1
- package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts +3 -1
- package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts.map +1 -1
- package/dist/client/adapters/solid/primitives/createTimebackVerification.ts +55 -15
- package/dist/client/adapters/solid/types.d.ts +25 -29
- package/dist/client/adapters/solid/types.d.ts.map +1 -1
- package/dist/client/adapters/solid/types.ts +27 -18
- package/dist/client/adapters/svelte/stores/client.d.ts.map +1 -1
- package/dist/client/adapters/svelte/stores/client.ts +2 -9
- package/dist/client/adapters/svelte/stores/profile.d.ts +1 -1
- package/dist/client/adapters/svelte/stores/profile.d.ts.map +1 -1
- package/dist/client/adapters/svelte/stores/profile.ts +4 -11
- package/dist/client/adapters/svelte/stores/verification.d.ts +1 -1
- package/dist/client/adapters/svelte/stores/verification.d.ts.map +1 -1
- package/dist/client/adapters/svelte/stores/verification.ts +90 -17
- package/dist/client/adapters/svelte/types.d.ts +1 -29
- package/dist/client/adapters/svelte/types.d.ts.map +1 -1
- package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts +3 -1
- package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts.map +1 -1
- package/dist/client/adapters/vue/composables/useTimebackVerification.ts +59 -18
- package/dist/client/adapters/vue/provider.d.ts.map +1 -1
- package/dist/client/adapters/vue/provider.ts +4 -11
- package/dist/client/adapters/vue/types.d.ts +25 -29
- package/dist/client/adapters/vue/types.d.ts.map +1 -1
- package/dist/client/adapters/vue/types.ts +27 -18
- package/dist/client/auth/types.d.ts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/lib/activity/activity.class.d.ts +130 -22
- package/dist/client/lib/activity/activity.class.d.ts.map +1 -1
- package/dist/client/lib/activity/transport.d.ts +15 -0
- package/dist/client/lib/activity/transport.d.ts.map +1 -0
- package/dist/client/lib/activity/types.d.ts +53 -0
- package/dist/client/lib/activity/types.d.ts.map +1 -0
- package/dist/client/lib/utils.d.ts +33 -0
- package/dist/client/lib/utils.d.ts.map +1 -1
- package/dist/client/lib/utils.ts +109 -0
- package/dist/client/namespaces/activity.d.ts +45 -6
- package/dist/client/namespaces/activity.d.ts.map +1 -1
- package/dist/client/timeback-client.class.d.ts +7 -1
- package/dist/client/timeback-client.class.d.ts.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/edge.js +1 -1
- package/dist/identity.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -22
- package/dist/server/adapters/express.d.ts.map +1 -1
- package/dist/server/adapters/express.js +1 -1
- package/dist/server/adapters/native.d.ts.map +1 -1
- package/dist/server/adapters/native.js +1 -1
- package/dist/server/adapters/nextjs.js +1 -1
- package/dist/server/adapters/nuxt.d.ts.map +1 -1
- package/dist/server/adapters/nuxt.js +1 -1
- package/dist/server/adapters/solid-start.d.ts.map +1 -1
- package/dist/server/adapters/solid-start.js +1 -1
- package/dist/server/adapters/svelte-kit.d.ts.map +1 -1
- package/dist/server/adapters/svelte-kit.js +1 -1
- package/dist/server/adapters/tanstack-start.d.ts.map +1 -1
- package/dist/server/adapters/tanstack-start.js +1 -1
- package/dist/server/adapters/utils.d.ts +1 -1
- package/dist/server/adapters/utils.d.ts.map +1 -1
- package/dist/server/handlers/activity/caliper.d.ts +50 -14
- package/dist/server/handlers/activity/caliper.d.ts.map +1 -1
- package/dist/server/handlers/activity/heartbeat-handler.d.ts +15 -0
- package/dist/server/handlers/activity/heartbeat-handler.d.ts.map +1 -0
- package/dist/server/handlers/activity/index.d.ts +5 -3
- package/dist/server/handlers/activity/index.d.ts.map +1 -1
- package/dist/server/handlers/activity/progress.d.ts +2 -2
- package/dist/server/handlers/activity/progress.d.ts.map +1 -1
- package/dist/server/handlers/activity/schema.d.ts +40 -6
- package/dist/server/handlers/activity/schema.d.ts.map +1 -1
- package/dist/server/handlers/activity/submit-handler.d.ts +29 -0
- package/dist/server/handlers/activity/submit-handler.d.ts.map +1 -0
- package/dist/server/handlers/activity/submit.d.ts +44 -0
- package/dist/server/handlers/activity/submit.d.ts.map +1 -0
- package/dist/server/handlers/activity/types.d.ts +126 -5
- package/dist/server/handlers/activity/types.d.ts.map +1 -1
- package/dist/server/handlers/identity/handler.d.ts +23 -4
- package/dist/server/handlers/identity/handler.d.ts.map +1 -1
- package/dist/server/handlers/identity/index.d.ts +2 -2
- package/dist/server/handlers/identity/index.d.ts.map +1 -1
- package/dist/server/handlers/identity/oidc.d.ts.map +1 -1
- package/dist/server/handlers/identity/types.d.ts +0 -6
- package/dist/server/handlers/identity/types.d.ts.map +1 -1
- package/dist/server/handlers/index.d.ts +3 -3
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/handlers/user/handler.d.ts.map +1 -1
- package/dist/server/handlers/user/profile.d.ts.map +1 -1
- package/dist/server/handlers/user/types.d.ts +3 -0
- package/dist/server/handlers/user/types.d.ts.map +1 -1
- package/dist/server/handlers/user/verify.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/lib/hooks.d.ts +20 -0
- package/dist/server/lib/hooks.d.ts.map +1 -0
- package/dist/server/lib/index.d.ts +4 -2
- package/dist/server/lib/index.d.ts.map +1 -1
- package/dist/server/lib/logger.d.ts +36 -9
- package/dist/server/lib/logger.d.ts.map +1 -1
- package/dist/server/lib/resolve.d.ts +1 -1
- package/dist/server/lib/resolve.d.ts.map +1 -1
- package/dist/server/lib/utils.d.ts +19 -1
- package/dist/server/lib/utils.d.ts.map +1 -1
- package/dist/server/lib/validation.d.ts +55 -0
- package/dist/server/lib/validation.d.ts.map +1 -0
- package/dist/server/namespaces/activity/index.d.ts +8 -0
- package/dist/server/namespaces/activity/index.d.ts.map +1 -0
- package/dist/server/namespaces/activity/record.d.ts +49 -0
- package/dist/server/namespaces/activity/record.d.ts.map +1 -0
- package/dist/server/namespaces/activity/schema.d.ts +50 -0
- package/dist/server/namespaces/activity/schema.d.ts.map +1 -0
- package/dist/server/namespaces/user/get-profile.d.ts +32 -0
- package/dist/server/namespaces/user/get-profile.d.ts.map +1 -0
- package/dist/server/namespaces/user/index.d.ts +8 -0
- package/dist/server/namespaces/user/index.d.ts.map +1 -0
- package/dist/server/namespaces/user/verify.d.ts +28 -0
- package/dist/server/namespaces/user/verify.d.ts.map +1 -0
- package/dist/server/timeback.d.ts +3 -3
- package/dist/server/timeback.d.ts.map +1 -1
- package/dist/server/types.d.ts +394 -12
- package/dist/server/types.d.ts.map +1 -1
- package/dist/shared/constants.d.ts +20 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.ts +51 -0
- package/dist/shared/index.d.ts +9 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/schemas.d.ts +57 -0
- package/dist/shared/schemas.d.ts.map +1 -0
- package/dist/shared/types.d.ts +263 -10
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.ts +620 -0
- package/package.json +5 -5
- package/dist/chunk-ahy54f2r.js +0 -2
- package/dist/chunk-j1xdrfqj.js +0 -2
- package/dist/chunk-qaa129bd.js +0 -2
- package/dist/chunk-qr0bbnsr.js +0 -1
- package/dist/chunk-rgbpvxbv.js +0 -1
- package/dist/server/handlers/activity/handler.d.ts +0 -32
- package/dist/server/handlers/activity/handler.d.ts.map +0 -1
- package/dist/shared/xp-calculator.d.ts +0 -25
- package/dist/shared/xp-calculator.d.ts.map +0 -1
package/dist/server/types.d.ts
CHANGED
|
@@ -1,11 +1,79 @@
|
|
|
1
|
+
import type { ActivityCompletedEvent, TimebackActivityContext, TimeSpentEvent } from '@timeback/caliper';
|
|
2
|
+
import type { TimebackClient } from '@timeback/core';
|
|
3
|
+
import type { ActivityCourseRef, ActivityMetrics, TimebackAuthUser, TimebackIdentity, TimebackProfile, TimebackVerifyResult } from '../shared/types';
|
|
1
4
|
/**
|
|
2
5
|
* Server Types
|
|
3
6
|
*
|
|
4
7
|
* Configuration and internal types for the server SDK.
|
|
5
8
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Minimum log level for SDK output.
|
|
11
|
+
*
|
|
12
|
+
* Levels in ascending severity: `debug`, `info`, `warn`, `error`.
|
|
13
|
+
* Use `'silent'` to suppress all SDK logging.
|
|
14
|
+
*/
|
|
15
|
+
export type SdkLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
16
|
+
/**
|
|
17
|
+
* Logger interface accepted by `createTimeback()`.
|
|
18
|
+
*
|
|
19
|
+
* Compatible with `console`, Pino, Winston, Bunyan, and any logger whose
|
|
20
|
+
* methods accept a string message followed by optional arguments.
|
|
21
|
+
*
|
|
22
|
+
* @example console (zero config)
|
|
23
|
+
* ```typescript
|
|
24
|
+
* createTimeback({ logger: console, ... })
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Pino
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import pino from 'pino'
|
|
30
|
+
* createTimeback({ logger: pino(), ... })
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @example Winston
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import winston from 'winston'
|
|
36
|
+
* createTimeback({ logger: winston.createLogger({ ... }), ... })
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export interface SdkLogger {
|
|
40
|
+
/** Log a debug-level message. */
|
|
41
|
+
debug(message: string, ...args: unknown[]): void;
|
|
42
|
+
/** Log an info-level message. */
|
|
43
|
+
info(message: string, ...args: unknown[]): void;
|
|
44
|
+
/** Log a warn-level message. */
|
|
45
|
+
warn(message: string, ...args: unknown[]): void;
|
|
46
|
+
/** Log an error-level message. */
|
|
47
|
+
error(message: string, ...args: unknown[]): void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Machine-readable error codes returned by SDK HTTP handlers.
|
|
51
|
+
*
|
|
52
|
+
* Consumers can `switch` on these codes for programmatic error handling
|
|
53
|
+
* without relying on human-readable messages.
|
|
54
|
+
*/
|
|
55
|
+
export type ErrorCode = 'UNAUTHORIZED' | 'INVALID_PAYLOAD' | 'UNKNOWN_COURSE' | 'AMBIGUOUS_COURSE_SELECTOR' | 'MISSING_SENSOR' | 'MISSING_SYNCED_COURSE_ID' | 'INVALID_SENSOR_URL' | 'USER_NOT_FOUND' | 'USER_AMBIGUOUS' | 'USER_RESOLUTION_FAILED' | 'INTERNAL_ERROR';
|
|
56
|
+
/**
|
|
57
|
+
* Structured error object in SDK HTTP responses.
|
|
58
|
+
*/
|
|
59
|
+
export interface SdkError {
|
|
60
|
+
/** Machine-readable error code. */
|
|
61
|
+
code: ErrorCode;
|
|
62
|
+
/** Human-readable error message. */
|
|
63
|
+
message: string;
|
|
64
|
+
/** Validation details (present on INVALID_PAYLOAD errors). */
|
|
65
|
+
details?: unknown;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Standard error body returned by all SDK HTTP handlers.
|
|
69
|
+
*
|
|
70
|
+
* Every error response includes a structured `error` object with a stable
|
|
71
|
+
* `code` for programmatic handling and a `message` for display. The HTTP
|
|
72
|
+
* status code signals failure; no `success` field is included.
|
|
73
|
+
*/
|
|
74
|
+
export interface SdkErrorBody {
|
|
75
|
+
error: SdkError;
|
|
76
|
+
}
|
|
9
77
|
/**
|
|
10
78
|
* Environment configuration.
|
|
11
79
|
*/
|
|
@@ -315,7 +383,7 @@ export type IdentityConfig<TState = unknown> = SsoIdentityConfig<TState> | Custo
|
|
|
315
383
|
/**
|
|
316
384
|
* Data provided to `hooks.beforeActivitySend`.
|
|
317
385
|
*
|
|
318
|
-
*
|
|
386
|
+
* Contains the Caliper ActivityCompletedEvent the SDK built plus context.
|
|
319
387
|
* Returning `null` from the hook skips sending.
|
|
320
388
|
*/
|
|
321
389
|
export interface ActivityBeforeSendData {
|
|
@@ -329,10 +397,57 @@ export interface ActivityBeforeSendData {
|
|
|
329
397
|
};
|
|
330
398
|
/** Caliper activity context object */
|
|
331
399
|
object: TimebackActivityContext;
|
|
332
|
-
/** Built
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
payload:
|
|
400
|
+
/** Built ActivityCompletedEvent */
|
|
401
|
+
event: ActivityCompletedEvent;
|
|
402
|
+
/** Effective completion payload (after progress computation) */
|
|
403
|
+
payload: {
|
|
404
|
+
id: string;
|
|
405
|
+
name: string;
|
|
406
|
+
course: ActivityCourseRef;
|
|
407
|
+
endedAt: string;
|
|
408
|
+
metrics: ActivityMetrics;
|
|
409
|
+
pctComplete?: number;
|
|
410
|
+
};
|
|
411
|
+
/** Matched course from `timeback.config.json` */
|
|
412
|
+
course: AppConfig['courses'][number];
|
|
413
|
+
/** App name (from config) */
|
|
414
|
+
appName: string;
|
|
415
|
+
/** API environment used for resolution */
|
|
416
|
+
apiEnv: 'staging' | 'production';
|
|
417
|
+
/** User email */
|
|
418
|
+
email: string;
|
|
419
|
+
/** Canonical Timeback user id */
|
|
420
|
+
timebackId: string;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Data provided to `hooks.beforeTimeSpentSend`.
|
|
424
|
+
*
|
|
425
|
+
* Contains the Caliper TimeSpentEvent the SDK built plus context.
|
|
426
|
+
* Returning `null` from the hook skips sending.
|
|
427
|
+
*/
|
|
428
|
+
export interface TimeSpentBeforeSendData {
|
|
429
|
+
/** Sensor URL selected for the event submission */
|
|
430
|
+
sensor: string;
|
|
431
|
+
/** Actor object used in generated Caliper events */
|
|
432
|
+
actor: {
|
|
433
|
+
id: string;
|
|
434
|
+
type: 'TimebackUser';
|
|
435
|
+
email: string;
|
|
436
|
+
};
|
|
437
|
+
/** Caliper activity context object */
|
|
438
|
+
object: TimebackActivityContext;
|
|
439
|
+
/** Built TimeSpentEvent */
|
|
440
|
+
event: TimeSpentEvent;
|
|
441
|
+
/** Time-spent payload */
|
|
442
|
+
payload: {
|
|
443
|
+
id: string;
|
|
444
|
+
name: string;
|
|
445
|
+
course: ActivityCourseRef;
|
|
446
|
+
startedAt: string;
|
|
447
|
+
endedAt: string;
|
|
448
|
+
elapsedMs: number;
|
|
449
|
+
pausedMs: number;
|
|
450
|
+
};
|
|
336
451
|
/** Matched course from `timeback.config.json` */
|
|
337
452
|
course: AppConfig['courses'][number];
|
|
338
453
|
/** App name (from config) */
|
|
@@ -343,6 +458,34 @@ export interface ActivityBeforeSendData {
|
|
|
343
458
|
email: string;
|
|
344
459
|
/** Canonical Timeback user id */
|
|
345
460
|
timebackId: string;
|
|
461
|
+
/** Correlation ID linking to client-side heartbeats */
|
|
462
|
+
runId?: string;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Handler names for request lifecycle hooks.
|
|
466
|
+
*
|
|
467
|
+
* Matches the shape of `timeback.handle.*` on the instance.
|
|
468
|
+
* `identity.signOut` is excluded because it is a trivial redirect
|
|
469
|
+
* with no request processing.
|
|
470
|
+
*/
|
|
471
|
+
export type HandlerName = 'activity.submit' | 'activity.heartbeat' | 'identity.signIn' | 'identity.callback' | 'user.me' | 'user.verify';
|
|
472
|
+
/**
|
|
473
|
+
* Context passed to `hooks.onRequestStart`.
|
|
474
|
+
*/
|
|
475
|
+
export interface RequestStartContext {
|
|
476
|
+
/** Which handler is processing the request */
|
|
477
|
+
handler: HandlerName;
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Context passed to `hooks.onRequestEnd`.
|
|
481
|
+
*/
|
|
482
|
+
export interface RequestEndContext {
|
|
483
|
+
/** Which handler processed the request */
|
|
484
|
+
handler: HandlerName;
|
|
485
|
+
/** Time taken to process the request in milliseconds */
|
|
486
|
+
durationMs: number;
|
|
487
|
+
/** HTTP status code of the response */
|
|
488
|
+
status: number;
|
|
346
489
|
}
|
|
347
490
|
/**
|
|
348
491
|
* Full Timeback SDK configuration.
|
|
@@ -356,6 +499,35 @@ export interface TimebackConfig<TState = unknown> {
|
|
|
356
499
|
api: ApiCredentials;
|
|
357
500
|
/** Identity configuration */
|
|
358
501
|
identity: IdentityConfig<TState>;
|
|
502
|
+
/**
|
|
503
|
+
* Custom logger for SDK output.
|
|
504
|
+
*
|
|
505
|
+
* When provided, all SDK log calls are routed through this logger.
|
|
506
|
+
* Each message is prefixed with the internal scope (e.g., `[timeback:handlers:user]`).
|
|
507
|
+
*
|
|
508
|
+
* When omitted, the SDK uses its built-in logger (console-based, scoped).
|
|
509
|
+
*
|
|
510
|
+
* @example
|
|
511
|
+
* ```typescript
|
|
512
|
+
* // Route SDK logs through Pino
|
|
513
|
+
* import pino from 'pino'
|
|
514
|
+
* createTimeback({ logger: pino(), ... })
|
|
515
|
+
*
|
|
516
|
+
* // Or just use console
|
|
517
|
+
* createTimeback({ logger: console, ... })
|
|
518
|
+
* ```
|
|
519
|
+
*/
|
|
520
|
+
logger?: SdkLogger;
|
|
521
|
+
/**
|
|
522
|
+
* Minimum log level for SDK output.
|
|
523
|
+
*
|
|
524
|
+
* Controls which messages are emitted by the built-in logger.
|
|
525
|
+
* Ignored when a custom `logger` is provided (the custom logger
|
|
526
|
+
* is responsible for its own level filtering).
|
|
527
|
+
*
|
|
528
|
+
* @default `'warn'` (or `'debug'` when `DEBUG=1`)
|
|
529
|
+
*/
|
|
530
|
+
logLevel?: SdkLogLevel;
|
|
359
531
|
/**
|
|
360
532
|
* Optional hooks for customizing SDK handler behavior.
|
|
361
533
|
*
|
|
@@ -363,7 +535,7 @@ export interface TimebackConfig<TState = unknown> {
|
|
|
363
535
|
*/
|
|
364
536
|
hooks?: {
|
|
365
537
|
/**
|
|
366
|
-
* Called after Caliper
|
|
538
|
+
* Called after Caliper ActivityCompletedEvent is built, right before sending.
|
|
367
539
|
*
|
|
368
540
|
* - Return the (optionally modified) data to proceed with sending
|
|
369
541
|
* - Return `null` to skip sending (handler still returns success)
|
|
@@ -373,14 +545,50 @@ export interface TimebackConfig<TState = unknown> {
|
|
|
373
545
|
* @returns Modified data to send, or null to skip
|
|
374
546
|
*/
|
|
375
547
|
beforeActivitySend?: (data: ActivityBeforeSendData) => ActivityBeforeSendData | null | Promise<ActivityBeforeSendData | null>;
|
|
548
|
+
/**
|
|
549
|
+
* Called after Caliper TimeSpentEvent is built, right before sending.
|
|
550
|
+
*
|
|
551
|
+
* Fires on both the heartbeat path and `timeback.activity.record()` with time data.
|
|
552
|
+
*
|
|
553
|
+
* - Return the (optionally modified) data to proceed with sending
|
|
554
|
+
* - Return `null` to skip sending (handler still returns success)
|
|
555
|
+
* - Throw to fail the request
|
|
556
|
+
*
|
|
557
|
+
* @param data - Built time-spent event + context
|
|
558
|
+
* @returns Modified data to send, or null to skip
|
|
559
|
+
*/
|
|
560
|
+
beforeTimeSpentSend?: (data: TimeSpentBeforeSendData) => TimeSpentBeforeSendData | null | Promise<TimeSpentBeforeSendData | null>;
|
|
561
|
+
/**
|
|
562
|
+
* Called when a request handler starts processing.
|
|
563
|
+
*
|
|
564
|
+
* Fires for `activity.submit`, `activity.heartbeat`, `user.me`, and `user.verify`.
|
|
565
|
+
* Use this to start trace spans, log request entry, or initialize per-request context.
|
|
566
|
+
*
|
|
567
|
+
* @param context - Handler identification
|
|
568
|
+
*/
|
|
569
|
+
onRequestStart?: (context: RequestStartContext) => void | Promise<void>;
|
|
570
|
+
/**
|
|
571
|
+
* Called when a request handler finishes processing.
|
|
572
|
+
*
|
|
573
|
+
* Fires for every request that triggered `onRequestStart`, including failures.
|
|
574
|
+
* Use this to record metrics, close trace spans, or log request completion.
|
|
575
|
+
*
|
|
576
|
+
* @param context - Handler identification, timing, and HTTP status
|
|
577
|
+
*/
|
|
578
|
+
onRequestEnd?: (context: RequestEndContext) => void | Promise<void>;
|
|
376
579
|
};
|
|
377
580
|
}
|
|
378
581
|
/**
|
|
379
582
|
* Request handlers namespace.
|
|
380
583
|
*/
|
|
381
584
|
export interface Handlers {
|
|
382
|
-
/** Activity
|
|
383
|
-
activity:
|
|
585
|
+
/** Activity-related handlers */
|
|
586
|
+
activity: {
|
|
587
|
+
/** Heartbeat handler (time-spent only) */
|
|
588
|
+
heartbeat: (req: Request) => Promise<Response>;
|
|
589
|
+
/** Submit handler (completion only) */
|
|
590
|
+
submit: (req: Request) => Promise<Response>;
|
|
591
|
+
};
|
|
384
592
|
/** Identity-related handlers */
|
|
385
593
|
identity: {
|
|
386
594
|
/** Initiate sign-in (SSO only) */
|
|
@@ -491,13 +699,180 @@ export interface AppConfig {
|
|
|
491
699
|
courses: AppCourse[];
|
|
492
700
|
}
|
|
493
701
|
/**
|
|
494
|
-
*
|
|
702
|
+
* User identity for server-side activity recording.
|
|
703
|
+
*
|
|
704
|
+
* Provide either `email` (the SDK will resolve the timebackId) or `timebackId` directly.
|
|
705
|
+
* If both are provided, `timebackId` takes precedence.
|
|
706
|
+
*/
|
|
707
|
+
export interface ActivityRecordUserInput {
|
|
708
|
+
/** User's email address (used to resolve timebackId if not provided) */
|
|
709
|
+
email: string;
|
|
710
|
+
/** User's Timeback ID (if already known, skips email lookup) */
|
|
711
|
+
timebackId?: string;
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
714
|
+
* Activity identity for server-side activity recording.
|
|
715
|
+
*/
|
|
716
|
+
export interface ActivityRecordActivityInput {
|
|
717
|
+
/** Activity slug (stable identifier) */
|
|
718
|
+
id: string;
|
|
719
|
+
/** Human-readable activity name */
|
|
720
|
+
name: string;
|
|
721
|
+
/** Course selector (must match a course in timeback.config.json) */
|
|
722
|
+
course: import('../shared/types').ActivityCourseRef;
|
|
723
|
+
}
|
|
724
|
+
/** Metrics for server-side activity recording. */
|
|
725
|
+
export interface ActivityRecordMetricsInput {
|
|
726
|
+
/** Total questions attempted */
|
|
727
|
+
totalQuestions?: number;
|
|
728
|
+
/** Number of correct answers */
|
|
729
|
+
correctQuestions?: number;
|
|
730
|
+
/** XP earned */
|
|
731
|
+
xpEarned: number;
|
|
732
|
+
/** Number of units mastered */
|
|
733
|
+
masteredUnits?: number;
|
|
734
|
+
/** App-reported course progress (0-100) */
|
|
735
|
+
pctComplete?: number;
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* Time information for server-side activity recording.
|
|
739
|
+
*
|
|
740
|
+
* When provided, a TimeSpentEvent will be emitted alongside the ActivityCompletedEvent.
|
|
741
|
+
* When omitted, only ActivityCompletedEvent is emitted.
|
|
742
|
+
*/
|
|
743
|
+
export interface ActivityRecordTimeInput {
|
|
744
|
+
/** When the session started (defaults to endedAt - activeMs - inactiveMs, or endedAt if not computable) */
|
|
745
|
+
startedAt?: Date | string;
|
|
746
|
+
/** When the session ended (defaults to now) */
|
|
747
|
+
endedAt?: Date | string;
|
|
748
|
+
/** Active engagement time in milliseconds */
|
|
749
|
+
activeMs?: number;
|
|
750
|
+
/** Inactive/paused time in milliseconds */
|
|
751
|
+
inactiveMs?: number;
|
|
752
|
+
}
|
|
753
|
+
/**
|
|
754
|
+
* Input for `timeback.activity.record()`.
|
|
755
|
+
*
|
|
756
|
+
* Records an activity completion from the server side. Use this for stateful activities
|
|
757
|
+
* where the backend is the source of truth for completion state.
|
|
758
|
+
*
|
|
759
|
+
* @example Completion-only (no time tracking)
|
|
760
|
+
* ```typescript
|
|
761
|
+
* await timeback.activity.record({
|
|
762
|
+
* user: { email: 'student@example.com' },
|
|
763
|
+
* activity: { id: 'lesson-1', name: 'Intro', course: { code: 'MATH-101' } },
|
|
764
|
+
* metrics: { totalQuestions: 20, correctQuestions: 16, xpEarned: 150 },
|
|
765
|
+
* })
|
|
766
|
+
* ```
|
|
767
|
+
*
|
|
768
|
+
* @example With time (emits TimeSpentEvent too)
|
|
769
|
+
* ```typescript
|
|
770
|
+
* await timeback.activity.record({
|
|
771
|
+
* user: { email: 'student@example.com' },
|
|
772
|
+
* activity: { id: 'lesson-1', name: 'Intro', course: { code: 'MATH-101' } },
|
|
773
|
+
* metrics: { totalQuestions: 20, correctQuestions: 16, xpEarned: 150 },
|
|
774
|
+
* time: { activeMs: 900000, inactiveMs: 60000 },
|
|
775
|
+
* })
|
|
776
|
+
* ```
|
|
777
|
+
*/
|
|
778
|
+
export interface ActivityRecordInput {
|
|
779
|
+
/** User identity */
|
|
780
|
+
user: ActivityRecordUserInput;
|
|
781
|
+
/** Activity identity */
|
|
782
|
+
activity: ActivityRecordActivityInput;
|
|
783
|
+
/** Activity metrics */
|
|
784
|
+
metrics: ActivityRecordMetricsInput;
|
|
785
|
+
/** Optional time information (when provided, emits TimeSpentEvent) */
|
|
786
|
+
time?: ActivityRecordTimeInput;
|
|
787
|
+
/** Optional correlation ID linking this completion to client-side heartbeats */
|
|
788
|
+
runId?: string;
|
|
789
|
+
}
|
|
790
|
+
/**
|
|
791
|
+
* Server-side activity namespace.
|
|
792
|
+
*/
|
|
793
|
+
export interface ActivityNamespace {
|
|
794
|
+
/**
|
|
795
|
+
* Record an activity completion from the server.
|
|
796
|
+
*
|
|
797
|
+
* Use this for stateful activities where the backend is the source of truth.
|
|
798
|
+
* When time is provided, both ActivityCompletedEvent and TimeSpentEvent are emitted.
|
|
799
|
+
* When time is omitted, only ActivityCompletedEvent is emitted.
|
|
800
|
+
*
|
|
801
|
+
* @param input - Activity record input
|
|
802
|
+
*/
|
|
803
|
+
record(input: ActivityRecordInput): Promise<void>;
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
* Server-side user namespace.
|
|
807
|
+
*
|
|
808
|
+
* Programmatic equivalents of `/user/verify` and `/user/me` for server-to-server
|
|
809
|
+
* use cases. Both methods accept an email directly rather than a `Request` object.
|
|
810
|
+
*/
|
|
811
|
+
export interface UserNamespace {
|
|
812
|
+
/**
|
|
813
|
+
* Check whether a Timeback user exists for the given email.
|
|
814
|
+
*
|
|
815
|
+
* This is a lightweight check that does not build the full enriched profile.
|
|
816
|
+
* Programmatic equivalent of the `/user/verify` HTTP handler.
|
|
817
|
+
*
|
|
818
|
+
* @param email - User's email address
|
|
819
|
+
* @returns Verification result with timebackId if the user exists
|
|
820
|
+
*
|
|
821
|
+
* @example
|
|
822
|
+
* ```typescript
|
|
823
|
+
* const result = await timeback.user.verify('student@example.com')
|
|
824
|
+
*
|
|
825
|
+
* if (result.verified) {
|
|
826
|
+
* console.log(result.timebackId) // "tb_abc123"
|
|
827
|
+
* }
|
|
828
|
+
* ```
|
|
829
|
+
*/
|
|
830
|
+
verify(email: string): Promise<TimebackVerifyResult>;
|
|
831
|
+
/**
|
|
832
|
+
* Get the full enriched profile for a user by email.
|
|
833
|
+
*
|
|
834
|
+
* Returns identity, enrollments, courses, goals, and XP data.
|
|
835
|
+
* Programmatic equivalent of the `/user/me` HTTP handler.
|
|
836
|
+
*
|
|
837
|
+
* @param email - User's email address
|
|
838
|
+
* @returns Enriched user profile
|
|
839
|
+
* @throws {TimebackUserResolutionError} If the user cannot be resolved
|
|
840
|
+
*
|
|
841
|
+
* @example
|
|
842
|
+
* ```typescript
|
|
843
|
+
* const profile = await timeback.user.getProfile('student@example.com')
|
|
844
|
+
*
|
|
845
|
+
* console.log(profile.xp?.today) // 42
|
|
846
|
+
* console.log(profile.courses) // [{ id, code, name }]
|
|
847
|
+
* console.log(profile.goals) // { dailyXp, dailyLessons, ... }
|
|
848
|
+
* ```
|
|
849
|
+
*/
|
|
850
|
+
getProfile(email: string): Promise<TimebackProfile>;
|
|
851
|
+
}
|
|
852
|
+
/**
|
|
853
|
+
* Timeback SDK instance.
|
|
495
854
|
*/
|
|
496
855
|
export interface TimebackInstance<TState = unknown> {
|
|
497
856
|
/** Configuration */
|
|
498
857
|
config: TimebackConfig<TState>;
|
|
499
858
|
/** Request handlers */
|
|
500
859
|
handle: Handlers;
|
|
860
|
+
/**
|
|
861
|
+
* Server-side activity recording.
|
|
862
|
+
*
|
|
863
|
+
* Use `activity.record()` to submit activity completions from the backend,
|
|
864
|
+
* bypassing the HTTP handler. This is useful for stateful activities where
|
|
865
|
+
* the backend is the source of truth for completion state.
|
|
866
|
+
*/
|
|
867
|
+
activity: ActivityNamespace;
|
|
868
|
+
/**
|
|
869
|
+
* Server-side user operations.
|
|
870
|
+
*
|
|
871
|
+
* Programmatic equivalents of the `/user/me` and `/user/verify` HTTP handlers.
|
|
872
|
+
* Use these when you need user data in server-side logic (webhooks, cron jobs,
|
|
873
|
+
* SSR data loaders, background tasks) without constructing HTTP requests.
|
|
874
|
+
*/
|
|
875
|
+
user: UserNamespace;
|
|
501
876
|
/**
|
|
502
877
|
* Direct access to the Timeback API client.
|
|
503
878
|
*
|
|
@@ -517,6 +892,13 @@ export interface TimebackInstance<TState = unknown> {
|
|
|
517
892
|
* ```
|
|
518
893
|
*/
|
|
519
894
|
api: TimebackClient;
|
|
895
|
+
/**
|
|
896
|
+
* Close the shared API client and release resources.
|
|
897
|
+
*
|
|
898
|
+
* Call this during graceful server shutdown to clean up HTTP connections.
|
|
899
|
+
* After calling `close()`, the client will be re-created on next access.
|
|
900
|
+
*/
|
|
901
|
+
close: () => void;
|
|
520
902
|
}
|
|
521
903
|
/**
|
|
522
904
|
* Identity-only configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,MAAM,iBAAiB,CAAA;AAExB;;;;GAIG;AAMH;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAExE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,SAAS;IACzB,iCAAiC;IACjC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAChD,iCAAiC;IACjC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/C,gCAAgC;IAChC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/C,kCAAkC;IAClC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAChD;AAMD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAClB,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,2BAA2B,GAC3B,gBAAgB,GAChB,0BAA0B,GAC1B,oBAAoB,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,wBAAwB,GACxB,gBAAgB,CAAA;AAEnB;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,mCAAmC;IACnC,IAAI,EAAE,SAAS,CAAA;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,QAAQ,CAAA;CACf;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAA;AAE5D;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAE1D;;GAEG;AACH,MAAM,MAAM,+BAA+B,GACxC,eAAe,GACf,yBAAyB,GACzB,yBAAyB,GACzB,6BAA6B,CAAA;AAEhC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,iCAAiC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACjC,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAA;IAC5C,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,mCAAmC;IACnC,GAAG,EAAE,OAAO,CAAA;IACZ,iDAAiD;IACjD,GAAG,EAAE,GAAG,CAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAA;IAClB,kDAAkD;IAClD,QAAQ,EAAE,YAAY,CAAA;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB,CAAC,MAAM,GAAG,OAAO;IACvD,8DAA8D;IAC9D,IAAI,EAAE,gBAAgB,CAAA;IACtB,wDAAwD;IACxD,GAAG,EAAE,OAAO,CAAA;IACZ,+CAA+C;IAC/C,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAA;IACZ,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAA;IAC1D,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAA;CACtE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC,CAAC,MAAM,GAAG,OAAO;IACnE,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAA;IAClB,kDAAkD;IAClD,IAAI,EAAE,YAAY,CAAA;IAClB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAA;IACZ,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAA;IAC1D,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAA;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO;IACrD,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAA;IACZ,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAA;IAC1D,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAA;CACtE;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,MAAM,GAAG,OAAO;IAC/C,IAAI,EAAE,KAAK,CAAA;IACX,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,MAAM,CAAA;IAE/C;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,CAAC,GAAG,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAEjF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAAA;CAC3F;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB,CACjC,MAAM,GAAG,OAAO,EAChB,eAAe,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAC/C,SAAQ,qBAAqB,CAAC,MAAM,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;CACrE;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,QAAQ,CAAA;IACd;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAA;CACxE;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAA;AAE/F;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,sCAAsC;IACtC,MAAM,EAAE,uBAAuB,CAAA;IAC/B,mCAAmC;IACnC,KAAK,EAAE,sBAAsB,CAAA;IAC7B,gEAAgE;IAChE,OAAO,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,iBAAiB,CAAA;QACzB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,eAAe,CAAA;QACxB,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,iDAAiD;IACjD,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IACpC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,MAAM,EAAE,SAAS,GAAG,YAAY,CAAA;IAChC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACvC,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,sCAAsC;IACtC,MAAM,EAAE,uBAAuB,CAAA;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,cAAc,CAAA;IACrB,yBAAyB;IACzB,OAAO,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,iBAAiB,CAAA;QACzB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,iDAAiD;IACjD,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IACpC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,MAAM,EAAE,SAAS,GAAG,YAAY,CAAA;IAChC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACpB,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,mBAAmB,GACnB,SAAS,GACT,aAAa,CAAA;AAEhB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,WAAW,CAAA;IACpB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;CACd;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,OAAO;IAC/C,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,GAAG,EAAE,gBAAgB,CAAA;IACrB,uCAAuC;IACvC,GAAG,EAAE,cAAc,CAAA;IACnB,6BAA6B;IAC7B,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAChC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACP;;;;;;;;;WASG;QACH,kBAAkB,CAAC,EAAE,CACpB,IAAI,EAAE,sBAAsB,KACxB,sBAAsB,GAAG,IAAI,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAA;QAE3E;;;;;;;;;;;WAWG;QACH,mBAAmB,CAAC,EAAE,CACrB,IAAI,EAAE,uBAAuB,KACzB,uBAAuB,GAAG,IAAI,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;QAE7E;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAEvE;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACnE,CAAA;CACD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,gCAAgC;IAChC,QAAQ,EAAE;QACT,0CAA0C;QAC1C,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,uCAAuC;QACvC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KAC3C,CAAA;IACD,gCAAgC;IAChC,QAAQ,EAAE;QACT,kCAAkC;QAClC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC3C,uCAAuC;QACvC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7C,oBAAoB;QACpB,OAAO,EAAE,MAAM,QAAQ,CAAA;KACvB,CAAA;IACD,2BAA2B;IAC3B,IAAI,EAAE;QACL,+BAA+B;QAC/B,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QACvC,2DAA2D;QAC3D,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KAC3C,CAAA;CACD;AAED,KAAK,iBAAiB,GAAG;IACxB,KAAK,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,OAAO,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACD,CAAA;AAED,KAAK,aAAa,GAAG;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACtD,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QACX,OAAO,CAAC,EAAE;YACT,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;SAC5B,CAAA;QACD,UAAU,CAAC,EAAE;YACZ,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,QAAQ,CAAC,EAAE,iBAAiB,CAAA;SAC5B,CAAA;KACD,CAAA;IACD,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC5B,CAAA;AAED;;;;;;GAMG;AACH,KAAK,SAAS,GACX,CAAC,aAAa,GAAG;IACjB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC,GACF,CAAC,aAAa,GAAG;IACjB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAEL;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,SAAS,EAAE,CAAA;CACpB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACvC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,oEAAoE;IACpE,MAAM,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,CAAA;CACnD;AAED,kDAAkD;AAClD,MAAM,WAAW,0BAA0B;IAC1C,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACvC,2GAA2G;IAC3G,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,mBAAmB;IACnC,oBAAoB;IACpB,IAAI,EAAE,uBAAuB,CAAA;IAC7B,wBAAwB;IACxB,QAAQ,EAAE,2BAA2B,CAAA;IACrC,uBAAuB;IACvB,OAAO,EAAE,0BAA0B,CAAA;IACnC,sEAAsE;IACtE,IAAI,CAAC,EAAE,uBAAuB,CAAA;IAC9B,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAEpD;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,OAAO;IACjD,oBAAoB;IACpB,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC9B,uBAAuB;IACvB,MAAM,EAAE,QAAQ,CAAA;IAChB;;;;;;OAMG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B;;;;;;OAMG;IACH,IAAI,EAAE,aAAa,CAAA;IACnB;;;;;;;;;;;;;;;;;OAiBG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CACjB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,MAAM,GAAG,OAAO;IACnD,kBAAkB;IAClB,GAAG,EAAE,gBAAgB,CAAA;IACrB,mEAAmE;IACnE,QAAQ,EAAE,iBAAiB,CAAC,MAAM,EAAE,kCAAkC,CAAC,MAAM,CAAC,CAAC,CAAA;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,gCAAgC;IAChC,QAAQ,EAAE;QACT,uBAAuB;QACvB,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC3C,4BAA4B;QAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7C,oBAAoB;QACpB,OAAO,EAAE,MAAM,QAAQ,CAAA;KACvB,CAAA;CACD;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO;IACrD,oBAAoB;IACpB,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAClC,uCAAuC;IACvC,MAAM,EAAE,oBAAoB,CAAA;CAC5B"}
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
export declare const DEFAULT_BASE_PATH = "/api/timeback";
|
|
6
6
|
/** API route paths */
|
|
7
7
|
export declare const ROUTES: {
|
|
8
|
+
/** @deprecated Use ACTIVITY_HEARTBEAT and ACTIVITY_SUBMIT instead */
|
|
8
9
|
readonly ACTIVITY: "/activity";
|
|
10
|
+
readonly ACTIVITY_HEARTBEAT: "/activity/heartbeat";
|
|
11
|
+
readonly ACTIVITY_SUBMIT: "/activity/submit";
|
|
9
12
|
readonly IDENTITY: {
|
|
10
13
|
readonly SIGNIN: "/identity/signin";
|
|
11
14
|
readonly SIGNOUT: "/identity/signout";
|
|
@@ -16,10 +19,27 @@ export declare const ROUTES: {
|
|
|
16
19
|
readonly VERIFY: "/user/verify";
|
|
17
20
|
};
|
|
18
21
|
};
|
|
22
|
+
/** Default heartbeat flush interval (15 seconds) */
|
|
23
|
+
export declare const DEFAULT_HEARTBEAT_INTERVAL_MS: number;
|
|
24
|
+
/** Default timeout for hidden tab before stopping heartbeats (10 minutes) */
|
|
25
|
+
export declare const DEFAULT_HIDDEN_TIMEOUT_MS: number;
|
|
19
26
|
/**
|
|
20
27
|
* Threshold for treating accuracy as "perfect" (handles floating point precision).
|
|
21
28
|
*
|
|
22
29
|
* Example: `10 / 10` can become `0.9999999999999999` due to IEEE754 rounding.
|
|
23
30
|
*/
|
|
24
31
|
export declare const PERFECT_ACCURACY_THRESHOLD = 0.999999;
|
|
32
|
+
/**
|
|
33
|
+
* Default number of retry attempts for verification.
|
|
34
|
+
*
|
|
35
|
+
* Retries help handle race conditions where the user may not be
|
|
36
|
+
* fully set up in the backend when verification first runs.
|
|
37
|
+
*/
|
|
38
|
+
export declare const DEFAULT_RETRY_ATTEMPTS = 3;
|
|
39
|
+
/**
|
|
40
|
+
* Default retry delays in milliseconds (exponential backoff).
|
|
41
|
+
*
|
|
42
|
+
* Each index corresponds to the delay before that retry attempt.
|
|
43
|
+
*/
|
|
44
|
+
export declare const DEFAULT_RETRY_DELAYS_MS: readonly [100, 300, 1000];
|
|
25
45
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,kBAAkB,CAAA;AAEhD,sBAAsB;AACtB,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,kBAAkB,CAAA;AAEhD,sBAAsB;AACtB,eAAO,MAAM,MAAM;IAClB,qEAAqE;;;;;;;;;;;;;CAa5D,CAAA;AAEV,oDAAoD;AACpD,eAAO,MAAM,6BAA6B,QAAa,CAAA;AAEvD,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,QAAkB,CAAA;AAExD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,WAAW,CAAA;AAElD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,2BAA4B,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Constants
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/** Default base path for Timeback API routes */
|
|
6
|
+
export const DEFAULT_BASE_PATH = '/api/timeback'
|
|
7
|
+
|
|
8
|
+
/** API route paths */
|
|
9
|
+
export const ROUTES = {
|
|
10
|
+
/** @deprecated Use ACTIVITY_HEARTBEAT and ACTIVITY_SUBMIT instead */
|
|
11
|
+
ACTIVITY: '/activity',
|
|
12
|
+
ACTIVITY_HEARTBEAT: '/activity/heartbeat',
|
|
13
|
+
ACTIVITY_SUBMIT: '/activity/submit',
|
|
14
|
+
IDENTITY: {
|
|
15
|
+
SIGNIN: '/identity/signin',
|
|
16
|
+
SIGNOUT: '/identity/signout',
|
|
17
|
+
CALLBACK: '/identity/callback',
|
|
18
|
+
},
|
|
19
|
+
USER: {
|
|
20
|
+
ME: '/user/me',
|
|
21
|
+
VERIFY: '/user/verify',
|
|
22
|
+
},
|
|
23
|
+
} as const
|
|
24
|
+
|
|
25
|
+
/** Default heartbeat flush interval (15 seconds) */
|
|
26
|
+
export const DEFAULT_HEARTBEAT_INTERVAL_MS = 15 * 1_000
|
|
27
|
+
|
|
28
|
+
/** Default timeout for hidden tab before stopping heartbeats (10 minutes) */
|
|
29
|
+
export const DEFAULT_HIDDEN_TIMEOUT_MS = 10 * 60 * 1_000
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Threshold for treating accuracy as "perfect" (handles floating point precision).
|
|
33
|
+
*
|
|
34
|
+
* Example: `10 / 10` can become `0.9999999999999999` due to IEEE754 rounding.
|
|
35
|
+
*/
|
|
36
|
+
export const PERFECT_ACCURACY_THRESHOLD = 0.999999
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Default number of retry attempts for verification.
|
|
40
|
+
*
|
|
41
|
+
* Retries help handle race conditions where the user may not be
|
|
42
|
+
* fully set up in the backend when verification first runs.
|
|
43
|
+
*/
|
|
44
|
+
export const DEFAULT_RETRY_ATTEMPTS = 3
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Default retry delays in milliseconds (exponential backoff).
|
|
48
|
+
*
|
|
49
|
+
* Each index corresponds to the delay before that retry attempt.
|
|
50
|
+
*/
|
|
51
|
+
export const DEFAULT_RETRY_DELAYS_MS = [100, 300, 1000] as const
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|