@crossauth/sveltekit 1.0.1 → 1.1.1

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 (47) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +16 -6181
  4. package/dist/sveltekitadminclientendpoints.d.ts +13 -12
  5. package/dist/sveltekitadminclientendpoints.js +187 -0
  6. package/dist/sveltekitadminendpoints.d.ts +5 -4
  7. package/dist/sveltekitadminendpoints.js +766 -0
  8. package/dist/sveltekitapikey.d.ts +4 -3
  9. package/dist/sveltekitapikey.js +81 -0
  10. package/dist/sveltekitoauthclient.d.ts +6 -4
  11. package/dist/sveltekitoauthclient.js +2309 -0
  12. package/dist/sveltekitoauthserver.d.ts +4 -4
  13. package/dist/sveltekitoauthserver.js +1350 -0
  14. package/dist/sveltekitresserver.d.ts +6 -4
  15. package/dist/sveltekitresserver.js +286 -0
  16. package/dist/sveltekitserver.d.ts +11 -9
  17. package/dist/sveltekitserver.js +393 -0
  18. package/dist/sveltekitsession.d.ts +6 -5
  19. package/dist/sveltekitsession.js +1112 -0
  20. package/dist/sveltekitsessionadapter.d.ts +2 -3
  21. package/dist/sveltekitsessionadapter.js +2 -0
  22. package/dist/sveltekitsharedclientendpoints.d.ts +7 -6
  23. package/dist/sveltekitsharedclientendpoints.js +630 -0
  24. package/dist/sveltekituserclientendpoints.d.ts +13 -12
  25. package/dist/sveltekituserclientendpoints.js +270 -0
  26. package/dist/sveltekituserendpoints.d.ts +6 -5
  27. package/dist/sveltekituserendpoints.js +1813 -0
  28. package/dist/tests/sveltekitadminclientendpoints.test.js +330 -0
  29. package/dist/tests/sveltekitadminendpoints.test.js +242 -0
  30. package/dist/tests/sveltekitapikeyserver.test.js +44 -0
  31. package/dist/tests/sveltekitoauthclient.test.d.ts +5 -5
  32. package/dist/tests/sveltekitoauthclient.test.js +1016 -0
  33. package/dist/tests/sveltekitoauthresserver.test.d.ts +4 -4
  34. package/dist/tests/sveltekitoauthresserver.test.js +185 -0
  35. package/dist/tests/sveltekitoauthserver.test.js +673 -0
  36. package/dist/tests/sveltekituserclientendpoints.test.js +244 -0
  37. package/dist/tests/sveltekituserendpoints.test.js +152 -0
  38. package/dist/tests/sveltemock.test.js +36 -0
  39. package/dist/tests/sveltemocks.d.ts +22 -8
  40. package/dist/tests/sveltemocks.js +114 -0
  41. package/dist/tests/sveltesessionhooks.test.js +224 -0
  42. package/dist/tests/testshared.d.ts +8 -8
  43. package/dist/tests/testshared.js +344 -0
  44. package/dist/utils.d.ts +1 -2
  45. package/dist/utils.js +123 -0
  46. package/package.json +23 -15
  47. package/dist/index.cjs +0 -1
package/dist/utils.js ADDED
@@ -0,0 +1,123 @@
1
+ import { CrossauthError, ErrorCode } from '@crossauth/common';
2
+ export class ObjectIterator {
3
+ values = [];
4
+ keys = [];
5
+ i = 0;
6
+ constructor(values) {
7
+ for (let key in values) {
8
+ this.keys.push(key);
9
+ this.values.push(values[key]);
10
+ }
11
+ }
12
+ next() {
13
+ if (this.i == this.values.length) {
14
+ return { done: true, value: ["", ""] };
15
+ }
16
+ ;
17
+ const ret = [this.keys[this.i], this.values[this.i]];
18
+ this.i++;
19
+ return { done: false, value: [ret[0], ret[1]] };
20
+ }
21
+ [Symbol.iterator]() {
22
+ return this;
23
+ }
24
+ }
25
+ export class KeyIterator {
26
+ values = [];
27
+ keys = [];
28
+ i = 0;
29
+ constructor(values) {
30
+ for (let key in values) {
31
+ this.keys.push(key);
32
+ this.values.push(values[key]);
33
+ }
34
+ }
35
+ next() {
36
+ if (this.i == this.values.length) {
37
+ return { done: true, value: ["", ""] };
38
+ }
39
+ ;
40
+ const ret = [this.keys[this.i], this.values[this.i]];
41
+ this.i++;
42
+ return { done: false, value: ret[0] };
43
+ }
44
+ [Symbol.iterator]() {
45
+ return this;
46
+ }
47
+ }
48
+ export class JsonOrFormData {
49
+ formData;
50
+ jsonData;
51
+ clone;
52
+ constructor(clone = true) {
53
+ this.clone = clone;
54
+ }
55
+ async loadData(event) {
56
+ if (!event.request?.body) {
57
+ return;
58
+ }
59
+ const contentType = event.request.headers.get("content-type");
60
+ if (contentType == "application/json") {
61
+ this.jsonData = this.clone ? await event.request?.clone()?.json() :
62
+ await event.request?.json();
63
+ }
64
+ else if (contentType == "application/x-www-form-urlencoded" || contentType?.startsWith("multipart/form-data")) {
65
+ this.formData = this.clone ? await event.request.clone().formData() :
66
+ await event.request.formData();
67
+ }
68
+ }
69
+ get(param) {
70
+ if (this.jsonData)
71
+ return this.jsonData[param];
72
+ if (this.formData) {
73
+ const formValue = this.formData.get(param);
74
+ if (formValue && typeof formValue == "string")
75
+ return formValue;
76
+ }
77
+ return undefined;
78
+ }
79
+ getAsString(param) {
80
+ return this.get(param);
81
+ }
82
+ getAsBoolean(param) {
83
+ const val = this.get(param);
84
+ if (val == undefined)
85
+ return undefined;
86
+ const l = val.toLowerCase();
87
+ return l == "t" || l == "true" || l == "1" || l == "y" || l == "yes" || l == "on";
88
+ }
89
+ getAsNumber(param) {
90
+ const val = this.get(param);
91
+ if (val == undefined)
92
+ return undefined;
93
+ try {
94
+ return Number(val);
95
+ }
96
+ catch (e) {
97
+ throw new CrossauthError(ErrorCode.FormEntry, "Value for " + param + " is not a number");
98
+ }
99
+ }
100
+ has(param) {
101
+ return ((this.jsonData && param in this.jsonData)
102
+ || this.formData && this.formData.has(param)) ?? false;
103
+ }
104
+ keys() {
105
+ if (this.jsonData)
106
+ return new KeyIterator(this.jsonData);
107
+ if (this.formData)
108
+ return this.formData.keys();
109
+ return new KeyIterator({});
110
+ }
111
+ toObject() {
112
+ if (this.jsonData)
113
+ return this.jsonData;
114
+ if (this.formData) {
115
+ let data = {};
116
+ for (let pair of this.formData.entries()) {
117
+ data[pair[0]] = pair[1]?.toString() ?? "";
118
+ }
119
+ return data;
120
+ }
121
+ return {};
122
+ }
123
+ }
package/package.json CHANGED
@@ -1,28 +1,35 @@
1
1
  {
2
2
  "name": "@crossauth/sveltekit",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "license": "Apache-2.0",
5
+ "description": "Sveltekit adapter for Crossauth authentication package",
5
6
  "private": false,
6
7
  "type": "module",
7
- "main": "./dist/index.cjs",
8
- "module": "./dist/index.js",
9
- "typings": "./dist/index.d.ts",
8
+ "svelte": "./dist/index.js",
10
9
  "types": "./dist/index.d.ts",
10
+ "files": [
11
+ "dist/*",
12
+ "!dist/**/*.test.*",
13
+ "!dist/**/*.spec.*"
14
+ ],
11
15
  "exports": {
12
16
  ".": {
13
17
  "types": "./dist/index.d.ts",
14
- "require": "./dist/index.cjs",
15
- "import": "./dist/index.js",
16
- "default": "./dist/index.js"
18
+ "svelte": "./dist/index.js"
17
19
  }
18
20
  },
19
- "files": [
20
- "dist/*"
21
+ "peerDependencies": {
22
+ "svelte": ">=4.0.0"
23
+ },
24
+ "sideEffects": [
25
+ "**/*.css"
21
26
  ],
22
27
  "devDependencies": {
23
28
  "@sveltejs/adapter-auto": "^3.0.0",
24
29
  "@sveltejs/kit": "^2.5.22",
30
+ "@sveltejs/package": "^2.5.7",
25
31
  "@sveltejs/vite-plugin-svelte": "^3.0.0",
32
+ "@types/node": "^25.0.3",
26
33
  "@types/web": "^0.0.154",
27
34
  "autoprefixer": "^10.4.18",
28
35
  "daisyui": "^4.7.2",
@@ -34,7 +41,8 @@
34
41
  "tsx": "^4.7.0",
35
42
  "typescript": "^5.0.0 <=5.3.3",
36
43
  "vite": "^5.0.3",
37
- "vitest": "^1.2.0",
44
+ "vite-plugin-dts": "^3.6.4",
45
+ "vitest": "^1.6.1",
38
46
  "vitest-fetch-mock": "^0.2.2"
39
47
  },
40
48
  "dependencies": {
@@ -44,19 +52,19 @@
44
52
  "formidable": "^3.5.1",
45
53
  "jwt-decode": "^4.0.0",
46
54
  "minimatch": "^10.0.1",
55
+ "publint": "0.3.15",
47
56
  "qrcode": "^1.5.4",
48
- "vite-plugin-dts": "^3.6.4",
49
- "@crossauth/backend": "^1.0.1",
50
- "@crossauth/common": "^1.0.1"
57
+ "@crossauth/backend": "^1.1.1",
58
+ "@crossauth/common": "^1.1.1"
51
59
  },
52
60
  "scripts": {
53
61
  "preparex": "svelte-kit sync",
54
62
  "dev": "vite dev",
55
- "build": "vite build",
63
+ "build": "vite build && npm run prepack",
56
64
  "preview": "vite preview",
57
65
  "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
58
66
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
59
- "test": "dotenv -e .env.unittest vitest",
67
+ "test": "dotenv -e .env.unittest vitest --exclude src/demo.spec.ts",
60
68
  "testonce": "dotenv -e .env.unittest vitest run"
61
69
  }
62
70
  }