@timeback/sdk 0.1.6 → 0.1.8
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 +91 -2
- package/dist/chunk-07j8zre9.js +2 -0
- package/dist/chunk-3886xy48.js +8 -0
- package/dist/chunk-9se82640.js +1 -0
- package/dist/chunk-ahy54f2r.js +2 -0
- package/dist/chunk-ewsp6v3b.js +16 -0
- package/dist/chunk-j1xdrfqj.js +2 -0
- package/dist/chunk-qaa129bd.js +2 -0
- package/dist/chunk-qr0bbnsr.js +1 -0
- package/dist/chunk-rgbpvxbv.js +1 -0
- package/dist/chunk-whc53e0y.js +11 -0
- package/dist/client/adapters/react/hooks/types.d.ts +61 -0
- package/dist/client/adapters/react/hooks/types.d.ts.map +1 -0
- package/dist/client/adapters/react/hooks/useTimebackProfile.d.ts +42 -0
- package/dist/client/adapters/react/hooks/useTimebackProfile.d.ts.map +1 -0
- package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts +18 -0
- package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts.map +1 -0
- package/dist/client/adapters/react/index.d.ts +3 -0
- package/dist/client/adapters/react/index.d.ts.map +1 -1
- package/dist/client/adapters/react/index.js +2 -364
- package/dist/client/adapters/solid/index.d.ts +3 -0
- package/dist/client/adapters/solid/index.d.ts.map +1 -1
- package/dist/client/adapters/solid/index.ts +12 -0
- package/dist/client/adapters/solid/primitives/createTimebackProfile.d.ts +58 -0
- package/dist/client/adapters/solid/primitives/createTimebackProfile.d.ts.map +1 -0
- package/dist/client/adapters/solid/primitives/createTimebackProfile.ts +209 -0
- package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts +36 -0
- package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts.map +1 -0
- package/dist/client/adapters/solid/primitives/createTimebackVerification.ts +133 -0
- package/dist/client/adapters/solid/types.d.ts +86 -0
- package/dist/client/adapters/solid/types.d.ts.map +1 -0
- package/dist/client/adapters/solid/types.ts +85 -0
- package/dist/client/adapters/svelte/index.d.ts +2 -1
- package/dist/client/adapters/svelte/index.d.ts.map +1 -1
- package/dist/client/adapters/svelte/index.ts +11 -2
- package/dist/client/adapters/svelte/{stores.d.ts → stores/client.d.ts} +11 -9
- package/dist/client/adapters/svelte/stores/client.d.ts.map +1 -0
- package/dist/client/adapters/svelte/{stores.ts → stores/client.ts} +24 -52
- package/dist/client/adapters/svelte/stores/index.d.ts +10 -0
- package/dist/client/adapters/svelte/stores/index.d.ts.map +1 -0
- package/dist/client/adapters/svelte/stores/index.ts +22 -0
- package/dist/client/adapters/svelte/stores/profile.d.ts +66 -0
- package/dist/client/adapters/svelte/stores/profile.d.ts.map +1 -0
- package/dist/client/adapters/svelte/stores/profile.ts +168 -0
- package/dist/client/adapters/svelte/stores/verification.d.ts +43 -0
- package/dist/client/adapters/svelte/stores/verification.d.ts.map +1 -0
- package/dist/client/adapters/svelte/stores/verification.ts +126 -0
- package/dist/client/adapters/svelte/types.d.ts +35 -0
- package/dist/client/adapters/svelte/types.d.ts.map +1 -0
- package/dist/client/adapters/vue/composables/useTimebackProfile.d.ts +51 -0
- package/dist/client/adapters/vue/composables/useTimebackProfile.d.ts.map +1 -0
- package/dist/client/adapters/vue/composables/useTimebackProfile.ts +186 -0
- package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts +44 -0
- package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts.map +1 -0
- package/dist/client/adapters/vue/composables/useTimebackVerification.ts +128 -0
- package/dist/client/adapters/vue/index.d.ts +3 -0
- package/dist/client/adapters/vue/index.d.ts.map +1 -1
- package/dist/client/adapters/vue/index.ts +12 -1
- package/dist/client/adapters/vue/types.d.ts +86 -0
- package/dist/client/adapters/vue/types.d.ts.map +1 -0
- package/dist/client/adapters/vue/types.ts +85 -0
- package/dist/client/auth/bearer.d.ts +17 -0
- package/dist/client/auth/bearer.d.ts.map +1 -0
- package/dist/client/auth/index.d.ts +3 -0
- package/dist/client/auth/index.d.ts.map +1 -0
- package/dist/client/auth/types.d.ts +39 -0
- package/dist/client/auth/types.d.ts.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/lib/activity/activity.class.d.ts +5 -5
- package/dist/client/lib/activity/activity.class.d.ts.map +1 -1
- package/dist/client/lib/fetch.d.ts +19 -0
- package/dist/client/lib/fetch.d.ts.map +1 -0
- package/dist/client/lib/user-cache.d.ts +39 -0
- package/dist/client/lib/user-cache.d.ts.map +1 -0
- package/dist/client/lib/user-cache.ts +168 -0
- package/dist/client/namespaces/activity.d.ts +2 -3
- package/dist/client/namespaces/activity.d.ts.map +1 -1
- package/dist/client/namespaces/user.d.ts +25 -2
- package/dist/client/namespaces/user.d.ts.map +1 -1
- package/dist/client/timeback-client.class.d.ts +15 -0
- package/dist/client/timeback-client.class.d.ts.map +1 -1
- package/dist/client/timeback-client.d.ts +3 -0
- package/dist/client/timeback-client.d.ts.map +1 -1
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -194
- package/dist/edge.js +1 -1149
- package/dist/identity.js +1 -1019
- package/dist/index.js +22 -104603
- package/dist/server/adapters/express.d.ts.map +1 -1
- package/dist/server/adapters/express.js +1 -85997
- package/dist/server/adapters/native.d.ts.map +1 -1
- package/dist/server/adapters/native.js +2 -190
- package/dist/server/adapters/nextjs.js +1 -202
- package/dist/server/adapters/nuxt.d.ts.map +1 -1
- package/dist/server/adapters/nuxt.js +1 -86066
- package/dist/server/adapters/solid-start.d.ts.map +1 -1
- package/dist/server/adapters/solid-start.js +1 -85965
- package/dist/server/adapters/svelte-kit.d.ts.map +1 -1
- package/dist/server/adapters/svelte-kit.js +1 -243
- package/dist/server/adapters/tanstack-start.d.ts.map +1 -1
- package/dist/server/adapters/tanstack-start.js +1 -85943
- package/dist/server/adapters/utils.d.ts +1 -1
- package/dist/server/adapters/utils.d.ts.map +1 -1
- package/dist/server/handlers/activity/attempts.d.ts +51 -0
- package/dist/server/handlers/activity/attempts.d.ts.map +1 -0
- package/dist/server/handlers/activity/caliper.d.ts +133 -0
- package/dist/server/handlers/activity/caliper.d.ts.map +1 -0
- package/dist/server/handlers/activity/completion.d.ts +43 -0
- package/dist/server/handlers/activity/completion.d.ts.map +1 -0
- package/dist/server/handlers/activity/handler.d.ts +32 -0
- package/dist/server/handlers/activity/handler.d.ts.map +1 -0
- package/dist/server/handlers/activity/index.d.ts +9 -0
- package/dist/server/handlers/activity/index.d.ts.map +1 -0
- package/dist/server/handlers/activity/progress.d.ts +47 -0
- package/dist/server/handlers/activity/progress.d.ts.map +1 -0
- package/dist/server/handlers/activity/resolve.d.ts +39 -0
- package/dist/server/handlers/activity/resolve.d.ts.map +1 -0
- package/dist/server/handlers/activity/schema.d.ts +51 -0
- package/dist/server/handlers/activity/schema.d.ts.map +1 -0
- package/dist/server/handlers/activity/types.d.ts +51 -0
- package/dist/server/handlers/activity/types.d.ts.map +1 -0
- package/dist/server/handlers/identity/handler.d.ts +14 -0
- package/dist/server/handlers/identity/handler.d.ts.map +1 -0
- package/dist/server/handlers/identity/index.d.ts +8 -0
- package/dist/server/handlers/identity/index.d.ts.map +1 -0
- package/dist/server/handlers/identity/oidc.d.ts +43 -0
- package/dist/server/handlers/identity/oidc.d.ts.map +1 -0
- package/dist/server/handlers/identity/types.d.ts +24 -0
- package/dist/server/handlers/identity/types.d.ts.map +1 -0
- package/dist/server/handlers/identity-only/handler.d.ts +15 -0
- package/dist/server/handlers/identity-only/handler.d.ts.map +1 -0
- package/dist/server/handlers/identity-only/index.d.ts +8 -0
- package/dist/server/handlers/identity-only/index.d.ts.map +1 -0
- package/dist/server/handlers/identity-only/oidc.d.ts +26 -0
- package/dist/server/handlers/identity-only/oidc.d.ts.map +1 -0
- package/dist/server/handlers/identity-only/types.d.ts +19 -0
- package/dist/server/handlers/identity-only/types.d.ts.map +1 -0
- package/dist/server/handlers/index.d.ts +5 -2
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/{lib/build-user-profile.d.ts → handlers/user/enrollments.d.ts} +7 -2
- package/dist/server/handlers/user/enrollments.d.ts.map +1 -0
- package/dist/server/handlers/user/handler.d.ts +17 -0
- package/dist/server/handlers/user/handler.d.ts.map +1 -0
- package/dist/server/handlers/user/index.d.ts +10 -0
- package/dist/server/handlers/user/index.d.ts.map +1 -0
- package/dist/server/handlers/user/profile.d.ts +22 -0
- package/dist/server/handlers/user/profile.d.ts.map +1 -0
- package/dist/server/handlers/user/types.d.ts +35 -0
- package/dist/server/handlers/user/types.d.ts.map +1 -0
- package/dist/server/handlers/user/verify.d.ts +25 -0
- package/dist/server/handlers/user/verify.d.ts.map +1 -0
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/lib/index.d.ts +4 -5
- package/dist/server/lib/index.d.ts.map +1 -1
- package/dist/server/lib/resolve.d.ts +4 -42
- package/dist/server/lib/resolve.d.ts.map +1 -1
- package/dist/server/lib/sso.d.ts +86 -0
- package/dist/server/lib/sso.d.ts.map +1 -0
- package/dist/server/lib/utils.d.ts +93 -1
- package/dist/server/lib/utils.d.ts.map +1 -1
- package/dist/server/timeback-identity.d.ts.map +1 -1
- package/dist/server/timeback.d.ts.map +1 -1
- package/dist/server/types.d.ts +23 -10
- package/dist/server/types.d.ts.map +1 -1
- package/dist/shared/constants.d.ts +7 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/types.d.ts +77 -8
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/xp-calculator.d.ts +25 -0
- package/dist/shared/xp-calculator.d.ts.map +1 -0
- package/package.json +8 -2
- package/dist/client/adapters/svelte/stores.d.ts.map +0 -1
- package/dist/server/handlers/activity.d.ts +0 -25
- package/dist/server/handlers/activity.d.ts.map +0 -1
- package/dist/server/handlers/identity-full.d.ts +0 -28
- package/dist/server/handlers/identity-full.d.ts.map +0 -1
- package/dist/server/handlers/identity-only.d.ts +0 -22
- package/dist/server/handlers/identity-only.d.ts.map +0 -1
- package/dist/server/handlers/user.d.ts +0 -31
- package/dist/server/handlers/user.d.ts.map +0 -1
- package/dist/server/lib/build-activity-events.d.ts +0 -67
- package/dist/server/lib/build-activity-events.d.ts.map +0 -1
- package/dist/server/lib/build-user-profile.d.ts.map +0 -1
package/dist/server/types.d.ts
CHANGED
|
@@ -3,13 +3,19 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Configuration and internal types for the server SDK.
|
|
5
5
|
*/
|
|
6
|
-
import type { ActivityCompletedEvent, TimeSpentEvent } from '@timeback/caliper';
|
|
6
|
+
import type { ActivityCompletedEvent, TimebackActivityContext, TimeSpentEvent } from '@timeback/caliper';
|
|
7
7
|
import type { TimebackClient } from '@timeback/core';
|
|
8
8
|
import type { ActivityEndPayload, TimebackAuthUser, TimebackIdentity } from '../shared/types';
|
|
9
9
|
/**
|
|
10
10
|
* Environment configuration.
|
|
11
11
|
*/
|
|
12
12
|
export type Environment = 'local' | 'staging' | 'production';
|
|
13
|
+
/**
|
|
14
|
+
* Environment input type.
|
|
15
|
+
*
|
|
16
|
+
* Allows string inputs while keeping autocomplete for known environments.
|
|
17
|
+
*/
|
|
18
|
+
export type EnvironmentInput = Environment | (string & {});
|
|
13
19
|
/**
|
|
14
20
|
* Error codes for Timeback user resolution failures.
|
|
15
21
|
*/
|
|
@@ -321,8 +327,8 @@ export interface ActivityBeforeSendData {
|
|
|
321
327
|
type: 'TimebackUser';
|
|
322
328
|
email: string;
|
|
323
329
|
};
|
|
324
|
-
/** Caliper context object
|
|
325
|
-
object:
|
|
330
|
+
/** Caliper activity context object */
|
|
331
|
+
object: TimebackActivityContext;
|
|
326
332
|
/** Built events (ActivityEvent + TimeSpentEvent) */
|
|
327
333
|
events: [ActivityCompletedEvent, TimeSpentEvent];
|
|
328
334
|
/** Original payload posted by the client */
|
|
@@ -345,7 +351,7 @@ export interface TimebackConfig<TState = unknown> {
|
|
|
345
351
|
/** Optional path to timeback.config.json (auto-discovered if not provided) */
|
|
346
352
|
configPath?: string;
|
|
347
353
|
/** Environment */
|
|
348
|
-
env:
|
|
354
|
+
env: EnvironmentInput;
|
|
349
355
|
/** API credentials for Timeback API */
|
|
350
356
|
api: ApiCredentials;
|
|
351
357
|
/** Identity configuration */
|
|
@@ -388,6 +394,8 @@ export interface Handlers {
|
|
|
388
394
|
user: {
|
|
389
395
|
/** Get current user profile */
|
|
390
396
|
me: (req: Request) => Promise<Response>;
|
|
397
|
+
/** Verify current user exists in Timeback (lightweight) */
|
|
398
|
+
verify: (req: Request) => Promise<Response>;
|
|
391
399
|
};
|
|
392
400
|
}
|
|
393
401
|
type AppCourseMetadata = {
|
|
@@ -398,6 +406,11 @@ type AppCourseMetadata = {
|
|
|
398
406
|
dailyAccuracy?: number;
|
|
399
407
|
dailyMasteredUnits?: number;
|
|
400
408
|
};
|
|
409
|
+
metrics?: {
|
|
410
|
+
totalXp?: number;
|
|
411
|
+
totalLessons?: number;
|
|
412
|
+
totalGrades?: number;
|
|
413
|
+
};
|
|
401
414
|
};
|
|
402
415
|
type AppCourseBase = {
|
|
403
416
|
subject: string;
|
|
@@ -463,13 +476,13 @@ type AppCourse = (AppCourseBase & {
|
|
|
463
476
|
*
|
|
464
477
|
* Sensor resolution:
|
|
465
478
|
* - Every course must have an effective sensor
|
|
466
|
-
* (`course.overrides[env].sensor ?? course.sensor ?? config.sensor`).
|
|
479
|
+
* (`course.overrides[env].sensor ?? course.sensor ?? config.sensor ?? derivedFromLaunchUrl`).
|
|
480
|
+
* - If no sensor is explicitly set, it's derived from the origin of the effective `launchUrl`.
|
|
467
481
|
* - This is enforced by zod validation at config load time.
|
|
468
482
|
*
|
|
469
|
-
* LaunchUrl
|
|
470
|
-
* -
|
|
471
|
-
*
|
|
472
|
-
* - This is enforced by zod validation at config load time.
|
|
483
|
+
* LaunchUrl (optional):
|
|
484
|
+
* - `launchUrl` is only required when provisioning the interactive Resource (e.g., `timeback resources push`).
|
|
485
|
+
* - Config parsing does not enforce an effective `launchUrl`.
|
|
473
486
|
*/
|
|
474
487
|
export interface AppConfig {
|
|
475
488
|
name: string;
|
|
@@ -513,7 +526,7 @@ export interface TimebackInstance<TState = unknown> {
|
|
|
513
526
|
*/
|
|
514
527
|
export interface IdentityOnlyConfig<TState = unknown> {
|
|
515
528
|
/** Environment */
|
|
516
|
-
env:
|
|
529
|
+
env: EnvironmentInput;
|
|
517
530
|
/** Identity configuration (SSO mode required for identity-only) */
|
|
518
531
|
identity: SsoIdentityConfig<TState, IdentityOnlyCallbackSuccessContext<TState>>;
|
|
519
532
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,13 @@ export declare const ROUTES: {
|
|
|
13
13
|
};
|
|
14
14
|
readonly USER: {
|
|
15
15
|
readonly ME: "/user/me";
|
|
16
|
+
readonly VERIFY: "/user/verify";
|
|
16
17
|
};
|
|
17
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Threshold for treating accuracy as "perfect" (handles floating point precision).
|
|
21
|
+
*
|
|
22
|
+
* Example: `10 / 10` can become `0.9999999999999999` due to IEEE754 rounding.
|
|
23
|
+
*/
|
|
24
|
+
export declare const PERFECT_ACCURACY_THRESHOLD = 0.999999;
|
|
18
25
|
//# 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;;;;;;;;;;;CAWT,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,WAAW,CAAA"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -211,6 +211,65 @@ export interface ActivityMetrics {
|
|
|
211
211
|
/** Number of units mastered */
|
|
212
212
|
masteredUnits?: number;
|
|
213
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Data passed to `Activity.end()` when completing an activity.
|
|
216
|
+
*
|
|
217
|
+
* @example Basic usage
|
|
218
|
+
* ```typescript
|
|
219
|
+
* await activity.end({
|
|
220
|
+
* totalQuestions: 10,
|
|
221
|
+
* correctQuestions: 8,
|
|
222
|
+
* })
|
|
223
|
+
* ```
|
|
224
|
+
*
|
|
225
|
+
* @example With time override
|
|
226
|
+
* ```typescript
|
|
227
|
+
* await activity.end({
|
|
228
|
+
* totalQuestions: 10,
|
|
229
|
+
* correctQuestions: 8,
|
|
230
|
+
* time: { active: 42000, inactive: 3000 },
|
|
231
|
+
* })
|
|
232
|
+
* ```
|
|
233
|
+
*/
|
|
234
|
+
type QuestionCountMetrics = {
|
|
235
|
+
/**
|
|
236
|
+
* Total questions attempted.
|
|
237
|
+
*
|
|
238
|
+
* If provided, `correctQuestions` is required too.
|
|
239
|
+
*/
|
|
240
|
+
totalQuestions: number;
|
|
241
|
+
/**
|
|
242
|
+
* Number of correct answers.
|
|
243
|
+
*
|
|
244
|
+
* Must be provided when `totalQuestions` is provided.
|
|
245
|
+
*/
|
|
246
|
+
correctQuestions: number;
|
|
247
|
+
} | {
|
|
248
|
+
/** Omit question counts entirely. */
|
|
249
|
+
totalQuestions?: undefined;
|
|
250
|
+
/** Omit question counts entirely. */
|
|
251
|
+
correctQuestions?: undefined;
|
|
252
|
+
};
|
|
253
|
+
export type ActivityEndData = QuestionCountMetrics & {
|
|
254
|
+
/** XP earned from this activity */
|
|
255
|
+
xpEarned?: number;
|
|
256
|
+
/** Number of units mastered */
|
|
257
|
+
masteredUnits?: number;
|
|
258
|
+
/**
|
|
259
|
+
* App-reported course progress (0–100). Values outside range are clamped.
|
|
260
|
+
*/
|
|
261
|
+
pctComplete?: number;
|
|
262
|
+
/**
|
|
263
|
+
* Optional time override. When provided, the SDK uses these values instead
|
|
264
|
+
* of the internal timer. Values are clamped to >= 0 and rounded to integers.
|
|
265
|
+
*/
|
|
266
|
+
time?: {
|
|
267
|
+
/** Active time in milliseconds */
|
|
268
|
+
active: number;
|
|
269
|
+
/** Inactive/paused time in milliseconds (defaults to 0) */
|
|
270
|
+
inactive?: number;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
214
273
|
/**
|
|
215
274
|
* Activity state sent to the server when ending.
|
|
216
275
|
*
|
|
@@ -241,12 +300,6 @@ export interface ActivityEndPayload {
|
|
|
241
300
|
pausedMs: number;
|
|
242
301
|
/** Activity metrics */
|
|
243
302
|
metrics: ActivityMetrics;
|
|
244
|
-
/**
|
|
245
|
-
* Attempt number for this activity (1-based).
|
|
246
|
-
*
|
|
247
|
-
* If provided, this is forwarded to Caliper events as `generated.attempt`.
|
|
248
|
-
*/
|
|
249
|
-
attemptNumber?: number;
|
|
250
303
|
/**
|
|
251
304
|
* App-reported course progress (per enrollment), as a percentage from 0–100.
|
|
252
305
|
*
|
|
@@ -254,9 +307,9 @@ export interface ActivityEndPayload {
|
|
|
254
307
|
*
|
|
255
308
|
* @remarks
|
|
256
309
|
* - Scale: 0 to 100 (not 0 to 1)
|
|
257
|
-
* - Values outside 0–100 are clamped
|
|
310
|
+
* - Values outside 0–100 are clamped
|
|
258
311
|
*/
|
|
259
|
-
|
|
312
|
+
pctComplete?: number;
|
|
260
313
|
}
|
|
261
314
|
/**
|
|
262
315
|
* Activity submission response.
|
|
@@ -265,4 +318,20 @@ export interface ActivityResponse {
|
|
|
265
318
|
success: boolean;
|
|
266
319
|
error?: string;
|
|
267
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Result of verifying a user's Timeback status.
|
|
323
|
+
*
|
|
324
|
+
* Used by partner apps to check if a user exists in Timeback before
|
|
325
|
+
* granting access to Timeback-gated features (e.g., free tier for Timeback users).
|
|
326
|
+
*/
|
|
327
|
+
export type TimebackVerifyResult = {
|
|
328
|
+
/** User exists in Timeback */
|
|
329
|
+
verified: true;
|
|
330
|
+
/** Timeback user ID */
|
|
331
|
+
timebackId: string;
|
|
332
|
+
} | {
|
|
333
|
+
/** User does not exist in Timeback */
|
|
334
|
+
verified: false;
|
|
335
|
+
};
|
|
336
|
+
export {};
|
|
268
337
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XP Calculation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Ported from playcademy `packages/timeback` so SDK users get consistent,
|
|
5
|
+
* mastery-based XP behavior.
|
|
6
|
+
*
|
|
7
|
+
* XP is calculated from duration, accuracy, and attempt number:
|
|
8
|
+
*
|
|
9
|
+
* \( baseXp = durationMinutes \)
|
|
10
|
+
* \( xp = baseXp \times accuracyMultiplier \times attemptMultiplier \)
|
|
11
|
+
*
|
|
12
|
+
* - Mastery threshold: 80% accuracy required to earn any XP.
|
|
13
|
+
* - Perfect bonus: ~100% accuracy earns 1.25x multiplier (floating-point safe).
|
|
14
|
+
* - Diminishing returns: attempt 1 = 1.0x, 2 = 0.5x, 3 = 0.25x, 4+ = 0x.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Calculate XP based on duration, accuracy, and attempt number.
|
|
18
|
+
*
|
|
19
|
+
* @param durationSeconds - Total session duration in seconds
|
|
20
|
+
* @param accuracy - Accuracy as decimal (0-1)
|
|
21
|
+
* @param attemptNumber - Which attempt this is (1 = first, 2 = first re-attempt, etc.)
|
|
22
|
+
* @returns Calculated XP, rounded to nearest tenth
|
|
23
|
+
*/
|
|
24
|
+
export declare function calculateXp(durationSeconds: number, accuracy: number, attemptNumber: number): number;
|
|
25
|
+
//# sourceMappingURL=xp-calculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xp-calculator.d.ts","sourceRoot":"","sources":["../../src/shared/xp-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwDH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAC1B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACnB,MAAM,CAkBR"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timeback/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Timeback SDK for frontend and backend integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -74,7 +74,9 @@
|
|
|
74
74
|
],
|
|
75
75
|
"scripts": {
|
|
76
76
|
"build": "bun build.ts",
|
|
77
|
-
"
|
|
77
|
+
"debug:dist-size": "bun scripts/analyze-dist-size.ts",
|
|
78
|
+
"test": "bun test --no-env-file unit.test.ts",
|
|
79
|
+
"test:e2e": "bun test --no-env-file e2e.test.ts"
|
|
78
80
|
},
|
|
79
81
|
"dependencies": {
|
|
80
82
|
"@timeback/core": "0.1.3",
|
|
@@ -83,9 +85,13 @@
|
|
|
83
85
|
},
|
|
84
86
|
"devDependencies": {
|
|
85
87
|
"@timeback/caliper": "0.1.2",
|
|
88
|
+
"@timeback/edubridge": "0.1.2",
|
|
86
89
|
"@timeback/internal-cli-infra": "0.0.0",
|
|
90
|
+
"@timeback/internal-client-infra": "0.0.0",
|
|
87
91
|
"@timeback/internal-logger": "0.0.0",
|
|
92
|
+
"@timeback/internal-test": "0.0.0",
|
|
88
93
|
"@timeback/internal-utils": "0.0.0",
|
|
94
|
+
"@timeback/oneroster": "0.1.4",
|
|
89
95
|
"@timeback/types": "0.0.0",
|
|
90
96
|
"@types/bun": "latest",
|
|
91
97
|
"@types/express": "^5.0.6",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../src/client/adapters/svelte/stores.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;GAIG;AACH,UAAU,QAAQ,CAAC,CAAC;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;CAClD;AAqDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAQ1D;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,cAAc,GAAG,SAAS,CAAe,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Activity Handlers
|
|
3
|
-
*
|
|
4
|
-
* Route handlers for activity tracking.
|
|
5
|
-
*/
|
|
6
|
-
import type { ApiCredentials, AppConfig, Environment, IdentityConfig, TimebackConfig } from '../types';
|
|
7
|
-
/** Configuration for the activity handler. */
|
|
8
|
-
interface ActivityHandlerConfig {
|
|
9
|
-
env: Environment;
|
|
10
|
-
identity: IdentityConfig;
|
|
11
|
-
appConfig: AppConfig;
|
|
12
|
-
api: ApiCredentials;
|
|
13
|
-
hooks?: TimebackConfig['hooks'];
|
|
14
|
-
}
|
|
15
|
-
/** Activity handler type. */
|
|
16
|
-
type ActivityHandler = (req: Request) => Promise<Response>;
|
|
17
|
-
/**
|
|
18
|
-
* Create the activity POST handler.
|
|
19
|
-
*
|
|
20
|
-
* @param config - Handler configuration
|
|
21
|
-
* @returns The activity request handler
|
|
22
|
-
*/
|
|
23
|
-
export declare function createActivityHandler(config: ActivityHandlerConfig): ActivityHandler;
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/activity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,OAAO,KAAK,EAEX,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,EACd,cAAc,EACd,MAAM,UAAU,CAAA;AA4CjB,8CAA8C;AAC9C,UAAU,qBAAqB;IAC9B,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;CAC/B;AAED,6BAA6B;AAC7B,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AA4S1D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAmFpF"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Identity Handlers (full SDK)
|
|
3
|
-
*
|
|
4
|
-
* This module includes Timeback user resolution and therefore depends on Timeback API access.
|
|
5
|
-
*/
|
|
6
|
-
import type { TimebackClient } from '@timeback/core';
|
|
7
|
-
import type { ApiCredentials, Environment, IdentityConfig } from '../types';
|
|
8
|
-
type FullIdentityHandlerParams<TState = unknown> = {
|
|
9
|
-
env: Environment;
|
|
10
|
-
identity: IdentityConfig<TState>;
|
|
11
|
-
api: {
|
|
12
|
-
credentials: ApiCredentials;
|
|
13
|
-
getClient: () => TimebackClient;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Create identity route handlers (full SDK).
|
|
18
|
-
*
|
|
19
|
-
* @param params - Handler configuration
|
|
20
|
-
* @returns Identity handlers
|
|
21
|
-
*/
|
|
22
|
-
export declare function createIdentityHandlers<TState = unknown>(params: FullIdentityHandlerParams<TState>): {
|
|
23
|
-
signIn: (req: Request) => Promise<Response>;
|
|
24
|
-
callback: (req: Request) => Promise<Response>;
|
|
25
|
-
signOut: () => Response;
|
|
26
|
-
};
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=identity-full.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity-full.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/identity-full.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACX,cAAc,EAGd,WAAW,EACX,cAAc,EAEd,MAAM,UAAU,CAAA;AAEjB,KAAK,yBAAyB,CAAC,MAAM,GAAG,OAAO,IAAI;IAClD,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAChC,GAAG,EAAE;QACJ,WAAW,EAAE,cAAc,CAAA;QAC3B,SAAS,EAAE,MAAM,cAAc,CAAA;KAC/B,CAAA;CACD,CAAA;AAwQD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAG,OAAO,EACtD,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC,GACvC;IACF,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7C,OAAO,EAAE,MAAM,QAAQ,CAAA;CACvB,CAQA"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Identity Handlers (identity-only)
|
|
3
|
-
*
|
|
4
|
-
* This module is intentionally minimal and does NOT import Timeback API client code.
|
|
5
|
-
* It is safe to include in edge runtimes (e.g. Cloudflare Workers / workerd).
|
|
6
|
-
*/
|
|
7
|
-
import type { Environment, IdentityOnlyCallbackSuccessContext, SsoIdentityConfig } from '../types';
|
|
8
|
-
/**
|
|
9
|
-
* Create identity route handlers (identity-only mode).
|
|
10
|
-
*
|
|
11
|
-
* @param params - Handler configuration
|
|
12
|
-
* @returns Identity-only handlers
|
|
13
|
-
*/
|
|
14
|
-
export declare function createIdentityOnlyHandlers<TState = unknown>(params: {
|
|
15
|
-
env: Environment;
|
|
16
|
-
identity: SsoIdentityConfig<TState, IdentityOnlyCallbackSuccessContext<TState>>;
|
|
17
|
-
}): {
|
|
18
|
-
signIn: (req: Request) => Promise<Response>;
|
|
19
|
-
callback: (req: Request) => Promise<Response>;
|
|
20
|
-
signOut: () => Response;
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=identity-only.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity-only.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/identity-only.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAEX,WAAW,EACX,kCAAkC,EAClC,iBAAiB,EACjB,MAAM,UAAU,CAAA;AAuPjB;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE;IACpE,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,iBAAiB,CAAC,MAAM,EAAE,kCAAkC,CAAC,MAAM,CAAC,CAAC,CAAA;CAC/E;;;;EAYA"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User Handlers
|
|
3
|
-
*
|
|
4
|
-
* Route handlers for user profile data.
|
|
5
|
-
*/
|
|
6
|
-
import type { ApiCredentials, AppConfig, Environment, IdentityConfig } from '../types';
|
|
7
|
-
/**
|
|
8
|
-
* Configuration for the user handler.
|
|
9
|
-
*/
|
|
10
|
-
interface UserHandlerConfig {
|
|
11
|
-
env: Environment;
|
|
12
|
-
identity: IdentityConfig;
|
|
13
|
-
api: ApiCredentials;
|
|
14
|
-
appConfig: AppConfig;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* User handler type.
|
|
18
|
-
*/
|
|
19
|
-
type UserHandler = (req: Request) => Promise<Response>;
|
|
20
|
-
/**
|
|
21
|
-
* Create the user profile handler.
|
|
22
|
-
*
|
|
23
|
-
* Returns the current user's profile, including identity and enriched data
|
|
24
|
-
* from the Timeback API.
|
|
25
|
-
*
|
|
26
|
-
* @param config - Handler configuration
|
|
27
|
-
* @returns The user profile request handler
|
|
28
|
-
*/
|
|
29
|
-
export declare function createUserHandler(config: UserHandlerConfig): UserHandler;
|
|
30
|
-
export {};
|
|
31
|
-
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/user.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAItF;;GAEG;AACH,UAAU,iBAAiB;IAC1B,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAuGxE"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { ActivityCompletedEvent, TimebackActivityContext, TimebackActivityMetric, TimeSpentEvent, TimeSpentMetric } from '@timeback/caliper';
|
|
2
|
-
import type { TimebackClient } from '@timeback/core';
|
|
3
|
-
import type { ActivityEndPayload, ActivityMetrics } from '../../shared/types';
|
|
4
|
-
import type { AppConfig } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* Error thrown when a course is missing a synced ID for the target environment.
|
|
7
|
-
*/
|
|
8
|
-
export declare class MissingSyncedCourseIdError extends Error {
|
|
9
|
-
readonly course: AppConfig['courses'][number];
|
|
10
|
-
readonly env: 'staging' | 'production';
|
|
11
|
-
constructor(course: AppConfig['courses'][number], env: 'staging' | 'production');
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Error thrown when the sensor URL is invalid.
|
|
15
|
-
*/
|
|
16
|
-
export declare class InvalidSensorUrlError extends Error {
|
|
17
|
-
readonly sensor: string;
|
|
18
|
-
constructor(sensor: string);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Build a Timeback activity context for Caliper events.
|
|
22
|
-
*
|
|
23
|
-
* Handles both grade-based and grade-less courses:
|
|
24
|
-
* - Grade-based: uses subject + grade for IDs
|
|
25
|
-
* - Grade-less: uses code for IDs
|
|
26
|
-
*
|
|
27
|
-
* The `id` field (`object.id` in Caliper) is a canonical URL derived from the
|
|
28
|
-
* sensor, course selector, and activity slug. This enables upstream systems to
|
|
29
|
-
* process the activity as an "external URL" activity without requiring
|
|
30
|
-
* pre-synced OneRoster component resources.
|
|
31
|
-
*
|
|
32
|
-
* The `activity` field contains only the human-readable `name` (no `id`),
|
|
33
|
-
* since the canonical URL in `object.id` serves as the stable identifier.
|
|
34
|
-
*
|
|
35
|
-
* @param payload - Validated activity payload
|
|
36
|
-
* @param course - Matched course config
|
|
37
|
-
* @param appName - Timeback app display name
|
|
38
|
-
* @param apiEnv - Target Timeback API environment
|
|
39
|
-
* @param sensor - Sensor URL for building the canonical activity URL
|
|
40
|
-
* @returns Caliper activity context payload
|
|
41
|
-
*/
|
|
42
|
-
export declare function buildActivityContext(payload: ActivityEndPayload, course: AppConfig['courses'][number], appName: string, apiEnv: 'staging' | 'production', sensor: string): TimebackActivityContext;
|
|
43
|
-
/**
|
|
44
|
-
* Build Caliper activity metrics from the client payload.
|
|
45
|
-
*
|
|
46
|
-
* @param metrics - Activity metrics from the client
|
|
47
|
-
* @returns Normalized Caliper activity metrics
|
|
48
|
-
*/
|
|
49
|
-
export declare function buildActivityMetrics(metrics: ActivityMetrics): TimebackActivityMetric[];
|
|
50
|
-
/**
|
|
51
|
-
* Build Caliper time spent metrics from elapsed and paused times.
|
|
52
|
-
*
|
|
53
|
-
* @param elapsedMs - Active time in milliseconds
|
|
54
|
-
* @param pausedMs - Paused time in milliseconds
|
|
55
|
-
* @returns Normalized Caliper time spent metrics
|
|
56
|
-
*/
|
|
57
|
-
export declare function buildTimeSpentMetrics(elapsedMs: number, pausedMs: number): TimeSpentMetric[];
|
|
58
|
-
/**
|
|
59
|
-
* Send a batch of Caliper events as a single envelope.
|
|
60
|
-
*
|
|
61
|
-
* @param client - Timeback API client
|
|
62
|
-
* @param sensor - Caliper sensor URL
|
|
63
|
-
* @param activityEvent - ActivityEvent payload
|
|
64
|
-
* @param timeSpentEvent - TimeSpentEvent payload
|
|
65
|
-
*/
|
|
66
|
-
export declare function sendCaliperEnvelope(client: TimebackClient, sensor: string, activityEvent: ActivityCompletedEvent, timeSpentEvent: TimeSpentEvent): Promise<void>;
|
|
67
|
-
//# sourceMappingURL=build-activity-events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-activity-events.d.ts","sourceRoot":"","sources":["../../../src/server/lib/build-activity-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EAEtB,cAAc,EACd,eAAe,EACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAqB,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,YAAY,CAAA;IAEtC,YAAY,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAW9E;CACD;AA8CD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,YAAY,MAAM,EAAE,MAAM,EAMzB;CACD;AAiED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,GAAG,YAAY,EAChC,MAAM,EAAE,MAAM,GACZ,uBAAuB,CAYzB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,sBAAsB,EAAE,CAoBvF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAQ5F;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,sBAAsB,EACrC,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-user-profile.d.ts","sourceRoot":"","sources":["../../../src/server/lib/build-user-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,KAAK,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AAErF,KAAK,cAAc,GAAG;IACrB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,eAAe,CAAA;KAAE,CAAA;CACtC,CAAA;AAED,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,eAAe,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC,CAAA;AAEhG;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,MAAM,EAAE,SAAS,GAAG,YAAY,GAC9B,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAW3C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,cAAc,EAAE,EAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GACnD,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUnD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,WAAW,EAAE,cAAc,EAAE,GAC3B,eAAe,GAAG,SAAS,CAE7B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAQrE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CASlD"}
|