@timeback/sdk 0.1.7 → 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.
Files changed (109) hide show
  1. package/README.md +91 -2
  2. package/dist/chunk-07j8zre9.js +2 -0
  3. package/dist/chunk-3886xy48.js +8 -0
  4. package/dist/chunk-9se82640.js +1 -0
  5. package/dist/chunk-ahy54f2r.js +2 -0
  6. package/dist/chunk-ewsp6v3b.js +16 -0
  7. package/dist/chunk-j1xdrfqj.js +2 -0
  8. package/dist/chunk-qaa129bd.js +2 -0
  9. package/dist/chunk-qr0bbnsr.js +1 -0
  10. package/dist/chunk-rgbpvxbv.js +1 -0
  11. package/dist/chunk-whc53e0y.js +11 -0
  12. package/dist/client/adapters/react/hooks/types.d.ts +46 -0
  13. package/dist/client/adapters/react/hooks/types.d.ts.map +1 -1
  14. package/dist/client/adapters/react/hooks/useTimebackProfile.d.ts +42 -0
  15. package/dist/client/adapters/react/hooks/useTimebackProfile.d.ts.map +1 -0
  16. package/dist/client/adapters/react/index.d.ts +2 -1
  17. package/dist/client/adapters/react/index.d.ts.map +1 -1
  18. package/dist/client/adapters/react/index.js +2 -494
  19. package/dist/client/adapters/solid/index.d.ts +3 -0
  20. package/dist/client/adapters/solid/index.d.ts.map +1 -1
  21. package/dist/client/adapters/solid/index.ts +12 -0
  22. package/dist/client/adapters/solid/primitives/createTimebackProfile.d.ts +58 -0
  23. package/dist/client/adapters/solid/primitives/createTimebackProfile.d.ts.map +1 -0
  24. package/dist/client/adapters/solid/primitives/createTimebackProfile.ts +209 -0
  25. package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts +36 -0
  26. package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts.map +1 -0
  27. package/dist/client/adapters/solid/primitives/createTimebackVerification.ts +133 -0
  28. package/dist/client/adapters/solid/types.d.ts +86 -0
  29. package/dist/client/adapters/solid/types.d.ts.map +1 -0
  30. package/dist/client/adapters/solid/types.ts +85 -0
  31. package/dist/client/adapters/svelte/index.d.ts +2 -1
  32. package/dist/client/adapters/svelte/index.d.ts.map +1 -1
  33. package/dist/client/adapters/svelte/index.ts +11 -2
  34. package/dist/client/adapters/svelte/{stores.d.ts → stores/client.d.ts} +11 -9
  35. package/dist/client/adapters/svelte/stores/client.d.ts.map +1 -0
  36. package/dist/client/adapters/svelte/{stores.ts → stores/client.ts} +24 -52
  37. package/dist/client/adapters/svelte/stores/index.d.ts +10 -0
  38. package/dist/client/adapters/svelte/stores/index.d.ts.map +1 -0
  39. package/dist/client/adapters/svelte/stores/index.ts +22 -0
  40. package/dist/client/adapters/svelte/stores/profile.d.ts +66 -0
  41. package/dist/client/adapters/svelte/stores/profile.d.ts.map +1 -0
  42. package/dist/client/adapters/svelte/stores/profile.ts +168 -0
  43. package/dist/client/adapters/svelte/stores/verification.d.ts +43 -0
  44. package/dist/client/adapters/svelte/stores/verification.d.ts.map +1 -0
  45. package/dist/client/adapters/svelte/stores/verification.ts +126 -0
  46. package/dist/client/adapters/svelte/types.d.ts +35 -0
  47. package/dist/client/adapters/svelte/types.d.ts.map +1 -0
  48. package/dist/client/adapters/vue/composables/useTimebackProfile.d.ts +51 -0
  49. package/dist/client/adapters/vue/composables/useTimebackProfile.d.ts.map +1 -0
  50. package/dist/client/adapters/vue/composables/useTimebackProfile.ts +186 -0
  51. package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts +44 -0
  52. package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts.map +1 -0
  53. package/dist/client/adapters/vue/composables/useTimebackVerification.ts +128 -0
  54. package/dist/client/adapters/vue/index.d.ts +3 -0
  55. package/dist/client/adapters/vue/index.d.ts.map +1 -1
  56. package/dist/client/adapters/vue/index.ts +12 -1
  57. package/dist/client/adapters/vue/types.d.ts +86 -0
  58. package/dist/client/adapters/vue/types.d.ts.map +1 -0
  59. package/dist/client/adapters/vue/types.ts +85 -0
  60. package/dist/client/lib/activity/activity.class.d.ts +5 -5
  61. package/dist/client/lib/activity/activity.class.d.ts.map +1 -1
  62. package/dist/client/lib/user-cache.d.ts +39 -0
  63. package/dist/client/lib/user-cache.d.ts.map +1 -0
  64. package/dist/client/lib/user-cache.ts +168 -0
  65. package/dist/client/namespaces/activity.d.ts +2 -3
  66. package/dist/client/namespaces/activity.d.ts.map +1 -1
  67. package/dist/client.d.ts +1 -1
  68. package/dist/client.js +1 -257
  69. package/dist/edge.js +1 -86271
  70. package/dist/identity.js +1 -86131
  71. package/dist/index.js +22 -104883
  72. package/dist/server/adapters/express.js +1 -85973
  73. package/dist/server/adapters/native.js +2 -221
  74. package/dist/server/adapters/nextjs.js +1 -233
  75. package/dist/server/adapters/nuxt.js +1 -86046
  76. package/dist/server/adapters/solid-start.js +1 -85945
  77. package/dist/server/adapters/svelte-kit.js +1 -279
  78. package/dist/server/adapters/tanstack-start.js +1 -85918
  79. package/dist/server/handlers/activity/attempts.d.ts +51 -0
  80. package/dist/server/handlers/activity/attempts.d.ts.map +1 -0
  81. package/dist/server/handlers/activity/caliper.d.ts +46 -5
  82. package/dist/server/handlers/activity/caliper.d.ts.map +1 -1
  83. package/dist/server/handlers/activity/completion.d.ts +43 -0
  84. package/dist/server/handlers/activity/completion.d.ts.map +1 -0
  85. package/dist/server/handlers/activity/handler.d.ts +18 -1
  86. package/dist/server/handlers/activity/handler.d.ts.map +1 -1
  87. package/dist/server/handlers/activity/progress.d.ts +47 -0
  88. package/dist/server/handlers/activity/progress.d.ts.map +1 -0
  89. package/dist/server/handlers/activity/schema.d.ts +1 -2
  90. package/dist/server/handlers/activity/schema.d.ts.map +1 -1
  91. package/dist/server/handlers/activity/types.d.ts +1 -2
  92. package/dist/server/handlers/activity/types.d.ts.map +1 -1
  93. package/dist/server/lib/index.d.ts +1 -1
  94. package/dist/server/lib/index.d.ts.map +1 -1
  95. package/dist/server/lib/utils.d.ts +61 -0
  96. package/dist/server/lib/utils.d.ts.map +1 -1
  97. package/dist/server/timeback.d.ts.map +1 -1
  98. package/dist/server/types.d.ts +7 -1
  99. package/dist/server/types.d.ts.map +1 -1
  100. package/dist/shared/constants.d.ts +6 -0
  101. package/dist/shared/constants.d.ts.map +1 -1
  102. package/dist/shared/types.d.ts +62 -8
  103. package/dist/shared/types.d.ts.map +1 -1
  104. package/dist/shared/xp-calculator.d.ts +25 -0
  105. package/dist/shared/xp-calculator.d.ts.map +1 -0
  106. package/package.json +4 -2
  107. package/dist/client/adapters/svelte/stores.d.ts.map +0 -1
  108. package/dist/server/handlers/activity/gradebook.d.ts +0 -56
  109. package/dist/server/handlers/activity/gradebook.d.ts.map +0 -1
package/README.md CHANGED
@@ -212,8 +212,58 @@ function MyComponent() {
212
212
  }
213
213
  ```
214
214
 
215
+ #### Profile Hook
216
+
217
+ Use `useTimebackProfile` to fetch user profile data. Supports manual and auto-fetch modes:
218
+
219
+ ```tsx
220
+ // Manual fetch
221
+ import { useTimebackProfile } from '@timeback/sdk/react'
222
+
223
+ function ProfileButton() {
224
+ const { state, canFetch, fetchProfile } = useTimebackProfile()
225
+
226
+ if (state.status === 'loaded') {
227
+ return <div>XP: {state.profile.xp}</div>
228
+ }
229
+
230
+ return (
231
+ <button onClick={fetchProfile} disabled={!canFetch}>
232
+ {state.status === 'loading' ? 'Loading...' : 'Load Profile'}
233
+ </button>
234
+ )
235
+ }
236
+
237
+ // Auto-fetch when verified
238
+ function AutoProfile() {
239
+ const { state } = useTimebackProfile({ auto: true })
240
+
241
+ if (state.status === 'loading') return <div>Loading...</div>
242
+ if (state.status === 'loaded') return <div>XP: {state.profile.xp}</div>
243
+
244
+ return null
245
+ }
246
+ ```
247
+
215
248
  ### Vue
216
249
 
250
+ #### Profile Composable
251
+
252
+ ```vue
253
+ <script setup>
254
+ import { useTimebackProfile } from '@timeback/sdk/vue'
255
+
256
+ const { state, canFetch, fetchProfile } = useTimebackProfile()
257
+ </script>
258
+
259
+ <template>
260
+ <div v-if="state.status === 'loaded'">XP: {{ state.profile.xp }}</div>
261
+ <button v-else @click="fetchProfile" :disabled="!canFetch">
262
+ {{ state.status === 'loading' ? 'Loading...' : 'Load Profile' }}
263
+ </button>
264
+ </template>
265
+ ```
266
+
217
267
  ```vue
218
268
  <!-- app.vue -->
219
269
  <script setup>
@@ -290,6 +340,22 @@ onUnmounted(() => activity?.end())
290
340
  <SignInButton size="lg" />
291
341
  ```
292
342
 
343
+ #### Profile Store
344
+
345
+ ```svelte
346
+ <script>
347
+ import { timebackProfile, timebackProfileCanFetch, fetchTimebackProfile } from '@timeback/sdk/svelte'
348
+ </script>
349
+
350
+ <button onclick={fetchTimebackProfile} disabled={!$timebackProfileCanFetch}>
351
+ {$timebackProfile.status === 'loading' ? 'Loading...' : 'Load Profile'}
352
+ </button>
353
+
354
+ {#if $timebackProfile.status === 'loaded'}
355
+ <div>XP: {$timebackProfile.profile.xp}</div>
356
+ {/if}
357
+ ```
358
+
293
359
  ### Solid
294
360
 
295
361
  ```tsx
@@ -331,6 +397,30 @@ function MyComponent() {
331
397
  }
332
398
  ```
333
399
 
400
+ #### Profile Primitive
401
+
402
+ ```tsx
403
+ import { createTimebackProfile } from '@timeback/sdk/solid'
404
+ import { Show } from 'solid-js'
405
+
406
+ function ProfileButton() {
407
+ const { state, canFetch, fetchProfile } = createTimebackProfile()
408
+
409
+ return (
410
+ <Show
411
+ when={state.status === 'loaded'}
412
+ fallback={
413
+ <button onClick={fetchProfile} disabled={!canFetch}>
414
+ {state.status === 'loading' ? 'Loading...' : 'Load Profile'}
415
+ </button>
416
+ }
417
+ >
418
+ <div>XP: {state.profile.xp}</div>
419
+ </Show>
420
+ )
421
+ }
422
+ ```
423
+
334
424
  ## Identity Modes
335
425
 
336
426
  ### SSO Mode
@@ -535,8 +625,7 @@ await activity.end({
535
625
  correctQuestions: 8,
536
626
  xpEarned: 80,
537
627
  masteredUnits: 1, // optional (default: omitted)
538
- attemptNumber: 2, // optional (default: omitted)
539
- pctCompleteApp: 67, // optional (default: omitted; clamped to 0–100 by the SDK server handler if present)
628
+ pctComplete: 67, // optional (default: omitted; clamped to 0–100 by the SDK server handler if present)
540
629
  })
541
630
  ```
542
631
 
@@ -0,0 +1,2 @@
1
+ import{createRequire as k}from"node:module";var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var l=(a,b,c)=>{c=a!=null?g(h(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var m=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var o=k(import.meta.url);
2
+ export{l as M,m as N,o as O};