@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.
Files changed (186) 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 +61 -0
  13. package/dist/client/adapters/react/hooks/types.d.ts.map +1 -0
  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/hooks/useTimebackVerification.d.ts +18 -0
  17. package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts.map +1 -0
  18. package/dist/client/adapters/react/index.d.ts +3 -0
  19. package/dist/client/adapters/react/index.d.ts.map +1 -1
  20. package/dist/client/adapters/react/index.js +2 -364
  21. package/dist/client/adapters/solid/index.d.ts +3 -0
  22. package/dist/client/adapters/solid/index.d.ts.map +1 -1
  23. package/dist/client/adapters/solid/index.ts +12 -0
  24. package/dist/client/adapters/solid/primitives/createTimebackProfile.d.ts +58 -0
  25. package/dist/client/adapters/solid/primitives/createTimebackProfile.d.ts.map +1 -0
  26. package/dist/client/adapters/solid/primitives/createTimebackProfile.ts +209 -0
  27. package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts +36 -0
  28. package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts.map +1 -0
  29. package/dist/client/adapters/solid/primitives/createTimebackVerification.ts +133 -0
  30. package/dist/client/adapters/solid/types.d.ts +86 -0
  31. package/dist/client/adapters/solid/types.d.ts.map +1 -0
  32. package/dist/client/adapters/solid/types.ts +85 -0
  33. package/dist/client/adapters/svelte/index.d.ts +2 -1
  34. package/dist/client/adapters/svelte/index.d.ts.map +1 -1
  35. package/dist/client/adapters/svelte/index.ts +11 -2
  36. package/dist/client/adapters/svelte/{stores.d.ts → stores/client.d.ts} +11 -9
  37. package/dist/client/adapters/svelte/stores/client.d.ts.map +1 -0
  38. package/dist/client/adapters/svelte/{stores.ts → stores/client.ts} +24 -52
  39. package/dist/client/adapters/svelte/stores/index.d.ts +10 -0
  40. package/dist/client/adapters/svelte/stores/index.d.ts.map +1 -0
  41. package/dist/client/adapters/svelte/stores/index.ts +22 -0
  42. package/dist/client/adapters/svelte/stores/profile.d.ts +66 -0
  43. package/dist/client/adapters/svelte/stores/profile.d.ts.map +1 -0
  44. package/dist/client/adapters/svelte/stores/profile.ts +168 -0
  45. package/dist/client/adapters/svelte/stores/verification.d.ts +43 -0
  46. package/dist/client/adapters/svelte/stores/verification.d.ts.map +1 -0
  47. package/dist/client/adapters/svelte/stores/verification.ts +126 -0
  48. package/dist/client/adapters/svelte/types.d.ts +35 -0
  49. package/dist/client/adapters/svelte/types.d.ts.map +1 -0
  50. package/dist/client/adapters/vue/composables/useTimebackProfile.d.ts +51 -0
  51. package/dist/client/adapters/vue/composables/useTimebackProfile.d.ts.map +1 -0
  52. package/dist/client/adapters/vue/composables/useTimebackProfile.ts +186 -0
  53. package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts +44 -0
  54. package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts.map +1 -0
  55. package/dist/client/adapters/vue/composables/useTimebackVerification.ts +128 -0
  56. package/dist/client/adapters/vue/index.d.ts +3 -0
  57. package/dist/client/adapters/vue/index.d.ts.map +1 -1
  58. package/dist/client/adapters/vue/index.ts +12 -1
  59. package/dist/client/adapters/vue/types.d.ts +86 -0
  60. package/dist/client/adapters/vue/types.d.ts.map +1 -0
  61. package/dist/client/adapters/vue/types.ts +85 -0
  62. package/dist/client/auth/bearer.d.ts +17 -0
  63. package/dist/client/auth/bearer.d.ts.map +1 -0
  64. package/dist/client/auth/index.d.ts +3 -0
  65. package/dist/client/auth/index.d.ts.map +1 -0
  66. package/dist/client/auth/types.d.ts +39 -0
  67. package/dist/client/auth/types.d.ts.map +1 -0
  68. package/dist/client/index.d.ts +2 -0
  69. package/dist/client/index.d.ts.map +1 -1
  70. package/dist/client/lib/activity/activity.class.d.ts +5 -5
  71. package/dist/client/lib/activity/activity.class.d.ts.map +1 -1
  72. package/dist/client/lib/fetch.d.ts +19 -0
  73. package/dist/client/lib/fetch.d.ts.map +1 -0
  74. package/dist/client/lib/user-cache.d.ts +39 -0
  75. package/dist/client/lib/user-cache.d.ts.map +1 -0
  76. package/dist/client/lib/user-cache.ts +168 -0
  77. package/dist/client/namespaces/activity.d.ts +2 -3
  78. package/dist/client/namespaces/activity.d.ts.map +1 -1
  79. package/dist/client/namespaces/user.d.ts +25 -2
  80. package/dist/client/namespaces/user.d.ts.map +1 -1
  81. package/dist/client/timeback-client.class.d.ts +15 -0
  82. package/dist/client/timeback-client.class.d.ts.map +1 -1
  83. package/dist/client/timeback-client.d.ts +3 -0
  84. package/dist/client/timeback-client.d.ts.map +1 -1
  85. package/dist/client.d.ts +3 -2
  86. package/dist/client.d.ts.map +1 -1
  87. package/dist/client.js +1 -194
  88. package/dist/edge.js +1 -1149
  89. package/dist/identity.js +1 -1019
  90. package/dist/index.js +22 -104603
  91. package/dist/server/adapters/express.d.ts.map +1 -1
  92. package/dist/server/adapters/express.js +1 -85997
  93. package/dist/server/adapters/native.d.ts.map +1 -1
  94. package/dist/server/adapters/native.js +2 -190
  95. package/dist/server/adapters/nextjs.js +1 -202
  96. package/dist/server/adapters/nuxt.d.ts.map +1 -1
  97. package/dist/server/adapters/nuxt.js +1 -86066
  98. package/dist/server/adapters/solid-start.d.ts.map +1 -1
  99. package/dist/server/adapters/solid-start.js +1 -85965
  100. package/dist/server/adapters/svelte-kit.d.ts.map +1 -1
  101. package/dist/server/adapters/svelte-kit.js +1 -243
  102. package/dist/server/adapters/tanstack-start.d.ts.map +1 -1
  103. package/dist/server/adapters/tanstack-start.js +1 -85943
  104. package/dist/server/adapters/utils.d.ts +1 -1
  105. package/dist/server/adapters/utils.d.ts.map +1 -1
  106. package/dist/server/handlers/activity/attempts.d.ts +51 -0
  107. package/dist/server/handlers/activity/attempts.d.ts.map +1 -0
  108. package/dist/server/handlers/activity/caliper.d.ts +133 -0
  109. package/dist/server/handlers/activity/caliper.d.ts.map +1 -0
  110. package/dist/server/handlers/activity/completion.d.ts +43 -0
  111. package/dist/server/handlers/activity/completion.d.ts.map +1 -0
  112. package/dist/server/handlers/activity/handler.d.ts +32 -0
  113. package/dist/server/handlers/activity/handler.d.ts.map +1 -0
  114. package/dist/server/handlers/activity/index.d.ts +9 -0
  115. package/dist/server/handlers/activity/index.d.ts.map +1 -0
  116. package/dist/server/handlers/activity/progress.d.ts +47 -0
  117. package/dist/server/handlers/activity/progress.d.ts.map +1 -0
  118. package/dist/server/handlers/activity/resolve.d.ts +39 -0
  119. package/dist/server/handlers/activity/resolve.d.ts.map +1 -0
  120. package/dist/server/handlers/activity/schema.d.ts +51 -0
  121. package/dist/server/handlers/activity/schema.d.ts.map +1 -0
  122. package/dist/server/handlers/activity/types.d.ts +51 -0
  123. package/dist/server/handlers/activity/types.d.ts.map +1 -0
  124. package/dist/server/handlers/identity/handler.d.ts +14 -0
  125. package/dist/server/handlers/identity/handler.d.ts.map +1 -0
  126. package/dist/server/handlers/identity/index.d.ts +8 -0
  127. package/dist/server/handlers/identity/index.d.ts.map +1 -0
  128. package/dist/server/handlers/identity/oidc.d.ts +43 -0
  129. package/dist/server/handlers/identity/oidc.d.ts.map +1 -0
  130. package/dist/server/handlers/identity/types.d.ts +24 -0
  131. package/dist/server/handlers/identity/types.d.ts.map +1 -0
  132. package/dist/server/handlers/identity-only/handler.d.ts +15 -0
  133. package/dist/server/handlers/identity-only/handler.d.ts.map +1 -0
  134. package/dist/server/handlers/identity-only/index.d.ts +8 -0
  135. package/dist/server/handlers/identity-only/index.d.ts.map +1 -0
  136. package/dist/server/handlers/identity-only/oidc.d.ts +26 -0
  137. package/dist/server/handlers/identity-only/oidc.d.ts.map +1 -0
  138. package/dist/server/handlers/identity-only/types.d.ts +19 -0
  139. package/dist/server/handlers/identity-only/types.d.ts.map +1 -0
  140. package/dist/server/handlers/index.d.ts +5 -2
  141. package/dist/server/handlers/index.d.ts.map +1 -1
  142. package/dist/server/{lib/build-user-profile.d.ts → handlers/user/enrollments.d.ts} +7 -2
  143. package/dist/server/handlers/user/enrollments.d.ts.map +1 -0
  144. package/dist/server/handlers/user/handler.d.ts +17 -0
  145. package/dist/server/handlers/user/handler.d.ts.map +1 -0
  146. package/dist/server/handlers/user/index.d.ts +10 -0
  147. package/dist/server/handlers/user/index.d.ts.map +1 -0
  148. package/dist/server/handlers/user/profile.d.ts +22 -0
  149. package/dist/server/handlers/user/profile.d.ts.map +1 -0
  150. package/dist/server/handlers/user/types.d.ts +35 -0
  151. package/dist/server/handlers/user/types.d.ts.map +1 -0
  152. package/dist/server/handlers/user/verify.d.ts +25 -0
  153. package/dist/server/handlers/user/verify.d.ts.map +1 -0
  154. package/dist/server/index.d.ts +1 -1
  155. package/dist/server/index.d.ts.map +1 -1
  156. package/dist/server/lib/index.d.ts +4 -5
  157. package/dist/server/lib/index.d.ts.map +1 -1
  158. package/dist/server/lib/resolve.d.ts +4 -42
  159. package/dist/server/lib/resolve.d.ts.map +1 -1
  160. package/dist/server/lib/sso.d.ts +86 -0
  161. package/dist/server/lib/sso.d.ts.map +1 -0
  162. package/dist/server/lib/utils.d.ts +93 -1
  163. package/dist/server/lib/utils.d.ts.map +1 -1
  164. package/dist/server/timeback-identity.d.ts.map +1 -1
  165. package/dist/server/timeback.d.ts.map +1 -1
  166. package/dist/server/types.d.ts +23 -10
  167. package/dist/server/types.d.ts.map +1 -1
  168. package/dist/shared/constants.d.ts +7 -0
  169. package/dist/shared/constants.d.ts.map +1 -1
  170. package/dist/shared/types.d.ts +77 -8
  171. package/dist/shared/types.d.ts.map +1 -1
  172. package/dist/shared/xp-calculator.d.ts +25 -0
  173. package/dist/shared/xp-calculator.d.ts.map +1 -0
  174. package/package.json +8 -2
  175. package/dist/client/adapters/svelte/stores.d.ts.map +0 -1
  176. package/dist/server/handlers/activity.d.ts +0 -25
  177. package/dist/server/handlers/activity.d.ts.map +0 -1
  178. package/dist/server/handlers/identity-full.d.ts +0 -28
  179. package/dist/server/handlers/identity-full.d.ts.map +0 -1
  180. package/dist/server/handlers/identity-only.d.ts +0 -22
  181. package/dist/server/handlers/identity-only.d.ts.map +0 -1
  182. package/dist/server/handlers/user.d.ts +0 -31
  183. package/dist/server/handlers/user.d.ts.map +0 -1
  184. package/dist/server/lib/build-activity-events.d.ts +0 -67
  185. package/dist/server/lib/build-activity-events.d.ts.map +0 -1
  186. package/dist/server/lib/build-user-profile.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};