@korajs/auth 0.5.0 → 0.6.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@korajs/auth",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Offline-first authentication for Kora.js",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -27,6 +27,28 @@
27
27
  "default": "./dist/react.cjs"
28
28
  }
29
29
  },
30
+ "./vue": {
31
+ "import": {
32
+ "types": "./dist/vue.d.ts",
33
+ "default": "./dist/vue.js"
34
+ },
35
+ "require": {
36
+ "types": "./dist/vue.d.cts",
37
+ "default": "./dist/vue.cjs"
38
+ }
39
+ },
40
+ "./svelte": {
41
+ "import": {
42
+ "types": "./dist/svelte.d.ts",
43
+ "default": "./dist/svelte.js"
44
+ },
45
+ "require": {
46
+ "types": "./dist/svelte.d.cts",
47
+ "default": "./dist/svelte.cjs"
48
+ }
49
+ },
50
+ "./svelte/AuthProvider.svelte": "./src/svelte/AuthProvider.svelte",
51
+ "./svelte/OrgProvider.svelte": "./src/svelte/OrgProvider.svelte",
30
52
  "./server": {
31
53
  "import": {
32
54
  "types": "./dist/server.d.ts",
@@ -39,24 +61,30 @@
39
61
  }
40
62
  },
41
63
  "files": [
42
- "dist"
64
+ "dist",
65
+ "src/svelte/AuthProvider.svelte",
66
+ "src/svelte/OrgProvider.svelte"
43
67
  ],
44
68
  "dependencies": {
45
- "@korajs/core": "0.5.0"
69
+ "@korajs/core": "0.6.0"
46
70
  },
47
71
  "devDependencies": {
48
72
  "@types/better-sqlite3": "^7.6.13",
49
73
  "@types/node": "^22.0.0",
50
74
  "@types/react": "^18.0.0",
75
+ "svelte": "^5.0.0",
51
76
  "tsup": "^8.0.0",
52
77
  "typescript": "^5.7.0",
53
78
  "vitest": "^3.0.0",
54
- "@korajs/store": "0.5.0",
55
- "@korajs/sync": "0.5.0",
56
- "@korajs/server": "0.5.0"
79
+ "vue": "^3.5.0",
80
+ "@korajs/store": "0.6.0",
81
+ "@korajs/server": "0.6.0",
82
+ "@korajs/sync": "0.6.0"
57
83
  },
58
84
  "peerDependencies": {
59
85
  "react": "^18.0.0 || ^19.0.0",
86
+ "vue": "^3.4.0",
87
+ "svelte": "^4.0.0 || ^5.0.0",
60
88
  "better-sqlite3": "^12.0.0",
61
89
  "postgres": "^3.4.0"
62
90
  },
@@ -64,6 +92,12 @@
64
92
  "react": {
65
93
  "optional": true
66
94
  },
95
+ "vue": {
96
+ "optional": true
97
+ },
98
+ "svelte": {
99
+ "optional": true
100
+ },
67
101
  "better-sqlite3": {
68
102
  "optional": true
69
103
  },
@@ -0,0 +1,37 @@
1
+ <script lang="ts">
2
+ import type { AuthClient } from '../client/auth-client'
3
+ import type { AuthSessionSnapshot } from '../bindings/create-auth-session'
4
+ import { onDestroy } from 'svelte'
5
+ import { destroyAuthProvider, initAuthProvider } from './auth-context'
6
+
7
+ interface Props {
8
+ client: AuthClient
9
+ fallback?: import('svelte').Snippet
10
+ children?: import('svelte').Snippet
11
+ }
12
+
13
+ let { client, fallback, children }: Props = $props()
14
+
15
+ const authContext = initAuthProvider(client)
16
+ let snapshot = $state<AuthSessionSnapshot>(authContext.session.getSnapshot())
17
+
18
+ $effect(() => {
19
+ return authContext.session.subscribe(() => {
20
+ snapshot = authContext.session.getSnapshot()
21
+ })
22
+ })
23
+
24
+ onDestroy(() => {
25
+ destroyAuthProvider(authContext)
26
+ })
27
+ </script>
28
+
29
+ {#if snapshot.initError}
30
+ <div role="alert" style="color: red; padding: 1rem; font-family: monospace;">
31
+ <strong>Kora Auth initialization error: </strong>{snapshot.initError.message}
32
+ </div>
33
+ {:else if snapshot.isLoading && fallback}
34
+ {@render fallback()}
35
+ {:else if children}
36
+ {@render children()}
37
+ {/if}
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import type { OrgClient } from '../client/org-client'
3
+ import { onDestroy } from 'svelte'
4
+ import { destroyOrgProvider, initOrgProvider } from './org-context'
5
+
6
+ interface Props {
7
+ client: OrgClient
8
+ children?: import('svelte').Snippet
9
+ }
10
+
11
+ let { client, children }: Props = $props()
12
+
13
+ const orgContext = initOrgProvider(client)
14
+
15
+ onDestroy(() => {
16
+ destroyOrgProvider(orgContext)
17
+ })
18
+ </script>
19
+
20
+ {#if children}
21
+ {@render children()}
22
+ {/if}